Найти запущенные экземпляры службы для приложения BizTalk для разных состояний

У меня есть приведенный ниже сценарий PowerShell, чтобы узнать все различные состояния BizTalk:

  • Экземпляры готовы к запуску
  • Активные экземпляры
  • Обезвоженные экземпляры
  • Экземпляры в точке останова
  • Приостановленные оркестровки
  • Приостановленные сообщения
  • Ошибки маршрутизации
  • Изолированные сбои адаптера

Сценарий PowerShell

# SQL Settings

$BTSSQLInstance = get-wmiobject MSBTS_GroupSetting -namespace root\MicrosoftBizTalkServer | select-object -expand MgmtDbServerName
$BizTalkManagementDb = get-wmiobject MSBTS_GroupSetting -namespace root\MicrosoftBizTalkServer | select-object -expand MgmtDbName

# Connect the BizTalk Management database

[void] [System.reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM")
$BTSCatalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer
$BTSCatalog.ConnectionString = "SERVER=$BTSSQLInstance;DATABASE=$BizTalkManagementDb;Integrated Security=SSPI"

# Get BizTalk Service Instance Information
[ARRAY]$readyToRun = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceStatus = 1)' -ErrorAction SilentlyContinue
[ARRAY]$active = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceStatus = 2) and not(ServiceClass = 16)' -ErrorAction SilentlyContinue
[ARRAY]$dehydrated = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceStatus = 8)' -ErrorAction SilentlyContinue
[ARRAY]$breakpoint = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceStatus = 64)' -ErrorAction SilentlyContinue
[ARRAY]$suspendedOrchs = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceClass = 1) and (ServiceStatus = 4 or ServiceStatus = 32)' -ErrorAction SilentlyContinue
[ARRAY]$suspendedMessages = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceClass = 4) and (ServiceStatus = 4 or ServiceStatus = 32)' -ErrorAction SilentlyContinue
[ARRAY]$suspendedRouting = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceClass = 64)' -ErrorAction SilentlyContinue
[ARRAY]$suspendedIsolated = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceClass = 32) and (ServiceStatus = 4 or ServiceStatus = 32)' -ErrorAction SilentlyContinue

# Display BizTalk Service Instance Information

Write-Host "`nService Instance Information" -fore DarkGray
Write-Host "Instances Ready to Run:" $readyToRun.Count
Write-Host "Active Instances:" $active.Count
Write-Host "Dehydrated Instances:" $dehydrated.Count
Write-Host "Instances in Breakpoint:" $breakpoint.Count
Write-Host "Suspended Orchestrations:" $suspendedOrchs.count
Write-Host "Suspended Messages:" $suspendedMessages.count
Write-Host "Routing Failures:" $suspendedRouting.count
Write-Host "Isolated Adapter Failures:" $suspendedIsolated.count

Есть ли какой-либо объект WMI для объединения связанных действий, выполняющих экземпляры для приложения BizTalk?

Нравится Application name = Microsoft.Practices.ESB, а сколько сейчас активных запущенных экземпляров? Если больше 20, пришлите мне уведомление по электронной почте.

Пожалуйста, посоветуйте мне, как мы можем достичь этого функционально с помощью PowerShell. Я также видел, что MSBTS_ServiceInstance wmiobject не предоставляет свойство BizTalk Application.

Ссылка - Сценарий PowerShell для проверки работоспособности BizTalk Server


person Dipen Patel    schedule 16.08.2017    source источник


Ответы (2)


Думаю, это то, что вам нужно. Получить Biztalk Сведения о serviceInstance с Powershell

Уловка фильтруется по имени сборки с использованием подстановочных знаков:

Get-WmiObject -Class "MSBTS_ServiceInstance" -Namespace  'root\MicrosoftBizTalkServer' | Where-Object {  $_.ServiceClass -eq "1" -and ($_.ServiceStatus -eq "4" -or $_.ServiceStatus -eq "32") -and $_.AssemblyName -like "*BizTalkMassCopy*" } | measure
person felixmondelo    schedule 17.08.2017
comment
Большое спасибо, а также я обновлю последний скрипт для всего цикла приложения BizTalk через каждый экземпляр службы @felixmondelo !! - person Dipen Patel; 17.08.2017

Этот скрипт выдаст вам результаты для всех состояний вашего приложения Active, ReadytoRun и Dehydrated service Instances:

# SQL Settings     

 $BTSSQLInstance = get-wmiobject MSBTS_GroupSetting -namespace root\MicrosoftBizTalkServer | select-object -expand MgmtDbServerName
 $BizTalkManagementDb = get-wmiobject MSBTS_GroupSetting -namespace root\MicrosoftBizTalkServer | select-object -expand MgmtDbName

# Connect the BizTalk Management database

[void] [System.reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM")
$BTSCatalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer
$BTSCatalog.ConnectionString = "SERVER=$BTSSQLInstance;DATABASE=$BizTalkManagementDb;Integrated Security=SSPI"

# Get BizTalk Application Information

$applications = $BTSCatalog.Applications

# Display BizTalk Application Information

Write-Host "`nBizTalk Applications ("$applications.Count")" -fore DarkGray

Foreach ($application in $applications) {

if ($application.Status -eq "Started") {


[ARRAY]$readyToRun = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceStatus = 1)' -ErrorAction SilentlyContinue | Where-Object { $_.AssemblyName -like $application.Name }
[ARRAY]$active = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceStatus = 2) and not(ServiceClass = 16)' -ErrorAction SilentlyContinue | Where-Object { $_.AssemblyName -like $application.Name }
[ARRAY]$dehydrated = get-wmiobject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter '(ServiceStatus = 8)' -ErrorAction SilentlyContinue | Where-Object { $_.AssemblyName -like $application.Name }

Write-Host "`nService Instance Information for" $application.Name -fore DarkGray
Write-Host "Instances Ready to Run:" $readyToRun.Count
Write-Host "Active Instances:" $active.Count
Write-Host "Dehydrated Instances:" $dehydrated.Count

}

}
person Dipen Patel    schedule 17.08.2017
comment
Вы задали вопрос, и кто-то указал вам правильное направление. Вместо того, чтобы принять его / ее ответ, вы создали свой собственный ответ, а затем приняли его. Извините, но я сделаю то, что могу: проголосовать за ваш ответ и проголосовать за правильный. - person Zee; 21.08.2017
comment
Эй!!! Прежде чем разместить свой сценарий, я отмечаю его ответ. позже он или кто-то удалил это как ответ, поэтому я отмечаю свой ответ, чтобы указать другим, что вопросы были решены. В любом случае я не борюсь ни с чем за очки или какой-либо статус .. удачи с твоим решением .. Спасибо - person Dipen Patel; 21.08.2017
comment
@Zee также посмотрите ???? чем отличаются оба сценария, и почувствуйте разницу. - person Dipen Patel; 21.08.2017