Esecuzione dell'accesso alle proprietà di intestazione da un campione di orchestrazione
Questa parte dell'esempio illustra come ESB promuove i metadati dell'intestazione JMS nelle proprietà del contesto del messaggio, quali codice e componenti nelle orchestrazioni all'interno di Microsoft BizTalk possono accedere. L'esempio include una pipeline di ricezione contenente un'istanza del componente JMS ESB che promuove i metadati dell'intestazione JMS nelle proprietà del contesto del messaggio.
La porta di ricezione passa il messaggio a un'orchestrazione denominata JMSRouter che recupera il nome della coda assegnato dall'utilità RfhUtil (e inviati nei metadati dell'intestazione) dalle proprietà di contesto del messaggio. L'orchestrazione assegna questo nome della coda a una porta di trasmissione dinamica e invia il messaggio a tale porta.
Una pipeline di invio per la porta contiene un'istanza del componente JMS ESB che demole le proprietà del contesto del messaggio nei metadati dell'intestazione JMS.
Per eseguire l'esempio Di accesso alla proprietà intestazione
Se l'applicazione GlobalBank.ESB non è già in esecuzione, usare la console di amministrazione BizTalk per avviarla.
Eseguire l'utilità IBM RfhUtil; selezionare gestione code denominata ESB. JMS. Sample.QueueManager nel primo elenco a discesa per connettersi a questo gestore code, come nella parte 1 di questo esempio.
Nel secondo elenco a discesa selezionare la coda in uscita di destinazione denominata ESB. JMS. ESEMPIO. SENDTOBIZTALK.
Fare clic sul pulsante ReadFile nell'utilità RfhUtil e quindi passare al file di messaggio di test denominato TEST-000128. JMS situato nella sottocartella denominata \Source\Samples\JMS\Test\Data\Load\. Questo file contiene un batch di 128 messaggi di test, ma l'utilità carica solo la prima.
Fare clic sulla scheda RFH e quindi assicurarsi che sia selezionata solo la casella di controllo JMS .
Fare clic sulla scheda jms e quindi assicurarsi che la coda Rispondi alla coda selezionata sia ESB. JMS. ESEMPIO. REPLY e che la coda di destinazione selezionata è ESB. JMS. ESEMPIO. DYNAMICQ2.
Fare clic sulla scheda Main e quindi sul pulsante Write Q (Scrivi Q ) per scrivere il messaggio nella coda.
Dopo un ritardo durante l'esecuzione dell'applicazione, il messaggio di output ESB viene visualizzato nel ESB. JMS. ESEMPIO. DYNAMICQ2 coda. Aprire WebSphere Queue Explorer e esplorare le code per confermarlo.
Funzionamento dell'esempio
All'interno dell'orchestrazione, il codice può accedere ai valori presenti nelle intestazioni JMS caricando il messaggio in un'istanza xmlDocument , come illustrato nel codice seguente.
if (null != InboundMsg(
Microsoft.Practices.ESB.JMS.Schemas.Property.MQRFH2_NameValueData))
{
jmsInfo.LoadXml(InboundMsg(
Microsoft.Practices.ESB.JMS.Schemas.Property.MQRFH2_NameValueData));
if (null != jmsInfo)
{
if (null != jmsInfo.SelectSingleNode("//Dst"))
{
xElement = jmsInfo.SelectSingleNode("//Dst");
destinationQueue = xElement.InnerText.ToUpper(
System.Globalization.CultureInfo.CurrentCulture);
}
if (null != jmsInfo.SelectSingleNode("//Rto"))
{
xElement = jmsInfo.SelectSingleNode("//Rto");
replyToQueue = xElement.InnerText.ToUpper(
System.Globalization.CultureInfo.CurrentCulture);
}
}
}
Inoltre, il codice può accedere a tutte le proprietà del contesto MQMD del messaggio.