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:
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           
}
 

 



Postar um comentário