Como determinar o Id do processo das Host Instances do BizTalk com PowerShell

Podemos fazer debug a partir do Visual Studio por exemplo a: DLL’s externas, que são invocadas por processos de BizTalk; ou componentes das pipelines em run-time. E à semelhança do que outras linguagens, no Visual Studio teremos de colocar breakpoints no nosso código. Para fazer debug deveremos associar o código. Net. que queremos analisar ao processo de BizTalk que o mesmo será executado.

No entanto, se tivermos mais de uma Host Instance configurada, quando abrimos a janela de debug para escolhe-mos o processo que queremos associar, aparecem todos os processos de BizTalk com o mesmo nome ("BTSNTSvc.exe"), como exemplo:

attachtoprocess

Desta forma, se nós não quisermos associar o código que queremos fazer debug a todos os processos de BizTalk, precisamos de determinar qual o processo a que queremos associar.

Podemos efetuar esta operação de várias maneiras:

· Você pode usar o comando tasklist para consultar os processos, executando o seguinte comando na janela de linha de comandos (cmd.exe)
  - TASKLIST /FI “USERNAME ne NT AUTHORITYSYSTEM” /FI “IMAGENAME eq BTSNTSvc.exe” /SVC

· Utilizar código C#

· Ou usando PowerShell

Construindo o exemplo

O script pode ser baixado e executado no powershell: arraste o arquivo HostInstancesProcessID.ps1 para a janela do PowerShell e de seguida carregue em “Enter”.

$machineName = hostname 
$query = "root\MicrosoftBizTalkServer", "Select * from MSBTS_HostInstance where HostType = 1 and ServiceState = 4 and RunningServer = '$machineName'" 
$hostInstanceSearch = new-object system.management.managementObjectsearcher($query) 
 
$hostInstanceList = $hostInstanceSearch.get() 
 
foreach ($hostInstanceItem in $hostInstanceList)  

    $processName = $hostInstanceItem.HostName 
    $perfCounter = New-Object System.Diagnostics.PerformanceCounter("BizTalk:Messaging", "ID Process", $processName) 
    $processID  = $perfCounter.NextValue() 
 
    Write-Host  
    Write-Host "HostName: " -foregroundcolor yellow -NoNewLine  
    Write-Host $hostInstanceItem.HostName -foregroundcolor white  
    Write-Host "Process Id: " -foregroundcolor yellow -NoNewLine 
    Write-Host $processID   -foregroundcolor white 
    Write-Host          
}

Seja o primeiro a comentar ;)

Postar um comentário

BizTalk 360

Visitas

Arquivo do blog