In BizTalk kan een receivepoort en of vele receive locations hebben. Die pakken met een adaptor berichten op van een willekeurige locatie (bestand, ftp, sql, service, sap, message queue, etc.). Het bestand kan worden aangepast of verrijkt door een mapping of de pipeline, maar hoe weet je nou wat hier vervolgens mee gebeurd?
Er moet een subscription zitten op de receive poort, "iets" wat nog weer wat gaat doen met data dat daar op binnen komt. Dit kan een send poort of send poort groep zijn met een filter op de receive poort maar het kan ook een orchestration zijn die de send poort als bron heeft staan.
Onderstaande SQL kan je uitvoeren op de BizTalk management database (BizTalkMgmtDb). Het geeft je vervolgens een lijst gesorteerd op applicatie. Voor elke applicatie zie je eerst de naam van de receivepoort en vervolgens de receive location onder die receive poort. Daarna of de receive location enabled staat en wat de bron locatie (URL) van de receive location is. Vervolgens zie je de naam van de send poort als er een send poort aan is gekoppeld, de naam van een send poort group als dat is gekoppeld of de naam van de orchestration als die de receive poort als bron heeft staan.
Op die manier kan je makkelijk en snel een lijst achterhalen van welke locaties er naar bepaalde bronnen kijken en welke "subscriber" daar dan vervolgens weer wat mee doet. Deze SQL is in elk geval getest op BizTalk 2010.
SELECT
APP.nvcName AS [Application]
,RP.nvcName AS ReceivePort
,RL.Name AS ReceiveLocation
,case when RL.[Disabled] = 1 then 'Disabled' else 'Enabled' end as ReceiveLocationStatus
,RL.InboundTransportURL AS ReceiveLocationURL
,SP.nvcName as BoundSendPort
,SPG.nvcName as BoundSendPortGroup
,O.nvcName as BoundOrchestration
FROM
BizTalkMgmtDb.dbo.adm_ReceiveLocation AS RL WITH(READPAST, ROWLOCK)
INNER JOIN
BizTalkMgmtDb.dbo.bts_receiveport AS RP WITH(READPAST, ROWLOCK)
ON
RL.ReceivePortId = RP.nID
INNER JOIN
BizTalkMgmtDb.dbo.bts_application AS APP WITH(READPAST, ROWLOCK)
ON
RP.nApplicationID = APP.nID
LEFT JOIN
BizTalkMgmtDb.dbo.bts_sendport AS SP WITH(READPAST, ROWLOCK)
ON
SP.nvcFilter like '%' + RP.nvcName+ '%'
LEFT JOIN
BizTalkMgmtDb.dbo.bts_sendportgroup AS SPG WITH(READPAST, ROWLOCK)
ON
SPG.nvcFilter like '%' + RP.nvcName+ '%'
LEFT JOIN
BizTalkMgmtDb.dbo.bts_orchestration_port_binding AS OPB WITH(READPAST, ROWLOCK)
ON
OPB.nreceiveportId = RP.nID
LEFT JOIN
BizTalkMgmtDb.dbo.bts_orchestration_port AS OP WITH(READPAST, ROWLOCK)
ON
OP.nID = OPB.norcPortID
LEFT JOIN
BizTalkMgmtDb.dbo.bts_orchestration AS O WITH(READPAST, ROWLOCK)
ON
O.nID = OP.nOrchestrationID
ORDER BY
APP.nvcName, RP.NvcName, RL.Name