Ausführen des Beispiels „Zugreifen auf Headereigenschaften über eine Orchestrierung“
In diesem Teil des Beispiels wird veranschaulicht, wie der ESB JMS-Headermetadaten in Nachrichtenkontexteigenschaften heraufstuft, auf die Code und Komponenten in Orchestrierungen in Microsoft BizTalk zugreifen können. Das Beispiel enthält eine Empfangspipeline, die eine instance der ESB-JMS-Komponente enthält, die JMS-Headermetadaten in Nachrichtenkontexteigenschaften höherstufen.
Der Empfangsport übergibt die Nachricht an eine Orchestrierung namens JMSRouter, die den vom RfhUtil-Hilfsprogramm zugewiesenen Warteschlangennamen (und in den Headermetadaten gesendet) aus den Kontexteigenschaften der Nachricht abruft. Die Orchestrierung weist diesen Warteschlangennamen einem dynamischen Sendeport zu und sendet die Nachricht an diesen Port.
Eine Sendepipeline für den Port enthält eine instance der ESB-JMS-Komponente, die die Nachrichtenkontexteigenschaften in die JMS-Headermetadaten demodiert.
So führen Sie das Beispiel für den Headereigenschaftenzugriff aus
Wenn die GlobalBank.ESB-Anwendung noch nicht ausgeführt wird, verwenden Sie die BizTalk-Verwaltungskonsole, um sie zu starten.
Führen Sie das IBM RfhUtil-Hilfsprogramm aus. Wählen Sie den Warteschlangenmanager ESB aus. JMS. Sample.QueueManager in der ersten Dropdownliste, um eine Verbindung mit diesem Warteschlangen-Manager herzustellen, wie in Teil 1 dieses Beispiels beschrieben.
Wählen Sie in der zweiten Dropdownliste die Ausgehende Zielwarteschlange mit dem Namen ESB aus. JMS. BEISPIEL. SENDTOBIZTALK.
Klicken Sie im Hilfsprogramm RfhUtil auf die Schaltfläche Datei lesen , und navigieren Sie dann zur Testmeldungsdatei TEST-000128. JMS befindet sich im Unterordner \Source\Samples\JMS\Test\Data\Load\. Diese Datei enthält einen Batch mit 128 Testmeldungen, aber das Hilfsprogramm lädt nur die erste.
Klicken Sie auf die Registerkarte RFH , und stellen Sie sicher, dass nur das Kontrollkästchen JMS aktiviert ist.
Klicken Sie auf die Registerkarte jms , und stellen Sie dann sicher, dass die ausgewählte Antwortwarteschlange ESB ist. JMS. BEISPIEL. ANTWORTEN, und dass die ausgewählte Zielwarteschlange ESB ist. JMS. BEISPIEL. DYNAMICQ2.
Klicken Sie auf die Registerkarte Haupt , und klicken Sie dann auf die Schaltfläche Q schreiben , um die Nachricht in die Warteschlange zu schreiben.
Nach einer Verzögerung während der Ausführung der Anwendung wird die ESB-Ausgabemeldung im ESB angezeigt. JMS. BEISPIEL. DYNAMICQ2 Warteschlange. Öffnen Sie die WebSphere Queue-Explorer, und durchsuchen Sie die Warteschlangen, um dies zu bestätigen.
Funktionsweise des Beispiels
Innerhalb der Orchestrierung kann Code auf die Werte zugreifen, die sich in den JMS-Headern befanden, indem die Nachricht in ein XmlDocument-instance geladen wird, wie im folgenden Code gezeigt.
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);
}
}
}
Darüber hinaus kann der Code auf alle MQMD-Kontexteigenschaften der Nachricht zugreifen.