Arpalesa Blogs

Categorieën

Op datum

Uitgelicht

Receive poorten met alle subscriptions achterhalen

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

 

 

Categories: BizTalk
You need to login in order to comment