Список всех приложений, оркестровок, если таковые имеются, отправлять порты и получать порты для BizTalk 2010? - PullRequest
1 голос
/ 29 июня 2011

Мне нужно перечислить все приложения, оркестровки, если таковые имеются, отправлять порты и получать порты для BizTalk 2010. Я пытаюсь написать SQL-запрос и получить много дубликатов. Кто-нибудь может мне помочь?

SELECT
     APP.nvcName 
    ,APP.nvcName as [Application]
    ,A.nvcName AssemblyName
    ,O.nvcFullName OrchestrationFullName
    ,O.nvcName Orchestration
    ,'Send Port' as [PortType]
    ,S.nvcName as [PortName]
    ,S.bTwoWay as [SendType]
    ,'' --S.nvcName [ReceiveLocation]
    ,Adp.Name [AdapterType]
    ,RP.FullyQualifiedName [ReceivePipeline]
    ,SP.FullyQualifiedName [SendPipeline]
    ,S.nvcEncryptionCert [EncryptionCert]
FROM dbo.bts_application as APP
LEFT OUTER JOIN dbo.bts_sendport as S ON APP.nID = S.nApplicationID
LEFT OUTER JOIN  dbo.bts_sendport_transport as ST ON S.nID = ST.nSendPortID
LEFT OUTER JOIN  dbo.bts_assembly as A on A.nApplicationId = APP.nId
LEFT OUTER JOIN  dbo.bts_orchestration as O ON O.nAssemblyID = A.nId
LEFT OUTER JOIN  dbo.bts_orchestration_port AS OP ON OP.nOrchestrationID = O.nID
LEFT OUTER JOIN  dbo.bts_orchestration_port_binding as OPB ON PB.nOrcPortID = OP.nID --and OPB.nSendPortID = S.nID
LEFT OUTER JOIN  dbo.adm_Adapter as Adp ON ST.nTransportTypeId = Adp.Id
LEFT OUTER JOIN  dbo.bts_pipeline as RP on RP.Id = S.nReceivePipelineId
LEFT OUTER JOIN  dbo.bts_pipeline as SP on SP.Id = S.nSendPipelineId
WHERE S.nApplicationID is not null AND Adp.Name IS NOT NULL

Ответы [ 3 ]

5 голосов
/ 29 июня 2011

Работать напрямую с нижележащим SQL, как правило, труднее в правильном понимании (и не поддерживается), чем работать с чем-то вроде класса BizTalkCatalogExplorer.

MSDN имеет отличный скрипт Powershell, который использует BizTalkCatalogExplorer, доступный по адресу http://msdn.microsoft.com/en-us/library/dd257590(v=bts.70).aspx. Из коробки он покажет вам все, что вы упомянули (а затем и некоторые), за исключением фактических портов отправки / получения.

Чтобы получить подробную информацию о портах отправки, вы можете сделать что-то вроде этого (этоpowershell, на основе примера, указанного выше):

#=== Make sure the ExplorerOM assembly is loaded ===#
[void] [System.reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM")
#=== Connect to the BizTalk Management database ===#
$Catalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer
$Catalog.ConnectionString = "SERVER=.;DATABASE=BizTalkMgmtDb;Integrated Security=SSPI"
foreach($port in $catalog.SendPorts)
{
    Write-Host $port.Name
    Write-Host "`tSendPipeline: "$port.SendPipeline.FullName
    if($port.IsTwoWay)
    {
        Write-Host "`tReceivePipeline: "$port.ReceivePipeline.FullName
    }
    Write-Host "`tPrimaryTransportType: "$port.PrimaryTransport.TransportType.Name
    Write-Host "`tPrimaryTransportAddress: "$port.PrimaryTransport.Address
    Write-Host "`tPrimaryTransportTypeData: "$port.PrimaryTransport.TransportTypeData
    # $port.PrimaryTransport <--uncomment to see all of the properties of $port.PrimaryTransport
}

Обратите внимание, что результатом $port.PrimaryTransport.TransportTypeData будет фрагмент кода XML, содержащий свойства, настраиваемые для типа транспорта.Внутри этого XML вы найдете поля вашего пароля.Вам придется разобрать это.Когда я запускал это локально, чтобы проверить его, он фактически распечатал и пароли, поэтому будьте осторожны как вы используете это.

3 голосов
/ 30 июня 2011

Вы можете использовать dll ExplorerOM и использовать открываемый API для получения нужной вам информации.

http://msdn.microsoft.com/en-us/library/microsoft.biztalk.explorerom(v=bts.20).aspx

0 голосов
/ 04 июля 2017

Вы можете использовать PowerShell для просмотра списка всех приложений, оркестровок, получения и отправки портов

# Get BizTalk Application Information

$applications = $BizTalkOM.Applications



# Display BizTalk Application Information

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



Foreach ($application in $applications) {

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

        Write-Host $application.Name "- " -NoNewline

        Write-Host $application.Status -fore Green

    }

    elseif ($application.Status -eq "Stopped") {

        Write-Host $application.Name "- " -NoNewline

        Write-Host $application.Status -fore Red

    }

    else {

        Write-Host $application.Name "- " -NoNewline

        Write-Host $application.Status -fore DarkYellow

    }

}
$trackingRecPorts = get-wmiobject MSBTS_ReceivePort -namespace 'root\MicrosoftBizTalkServer' | Where-Object {$_.Tracking -gt 0 }


$orchs = Get-WmiObject MSBTS_Orchestration -namespace 'root\MicrosoftBizTalkServer' | Where-Object {$_.OrchestrationStatus -ne 4 }
...