Exécution de l’exemple d’accès à la propriété d’en-tête à partir d’une orchestration
Cette partie de l’exemple montre comment esb promeut les métadonnées d’en-tête JMS dans les propriétés de contexte de message, auxquelles le code et les composants des orchestrations dans Microsoft BizTalk peuvent accéder. L’exemple inclut un pipeline de réception qui contient un instance du composant ESB JMS qui promeut les métadonnées d’en-tête JMS dans les propriétés de contexte de message.
Le port de réception transmet le message à une orchestration nommée JMSRouter qui récupère le nom de file d’attente attribué par l’utilitaire RfhUtil (et envoyé dans les métadonnées d’en-tête) à partir des propriétés de contexte du message. L’orchestration attribue ce nom de file d’attente à un port d’envoi dynamique et envoie le message à ce port.
Un pipeline d’envoi pour le port contient une instance du composant ESB JMS qui rétrograde les propriétés de contexte de message dans les métadonnées d’en-tête JMS.
Pour exécuter l’exemple d’accès à la propriété d’en-tête
Si l’application GlobalBank.ESB n’est pas déjà en cours d’exécution, utilisez la console d’administration BizTalk pour la démarrer.
Exécutez l’utilitaire IBM RfhUtil ; sélectionnez le gestionnaire de files d’attente nommé ESB. JMS. Sample.QueueManager dans la première liste déroulante pour se connecter à ce gestionnaire de files d’attente, comme dans la partie 1 de cet exemple.
Dans la deuxième liste déroulante, sélectionnez la file d’attente sortante cible nommée ESB. JMS. ÉCHANTILLON. SENDTOBIZTALK.
Cliquez sur le bouton ReadFile dans l’utilitaire RfhUtil, puis accédez au fichier de message de test nommé TEST-000128. JMS situé dans le sous-dossier nommé \Source\Samples\JMS\Test\Data\Load\. Ce fichier contient un lot de 128 messages de test, mais l’utilitaire charge uniquement le premier.
Cliquez sur l’onglet RFH, puis assurez-vous que seule la zone case activée JMS est sélectionnée.
Cliquez sur l’onglet jms , puis assurez-vous que la file d’attente Répondre à sélectionnée est ESB. JMS. ÉCHANTILLON. REPLY et que la file d’attente de destination sélectionnée est ESB. JMS. ÉCHANTILLON. DYNAMICQ2.
Cliquez sur l’onglet Principal , puis sur le bouton Écrire Q pour écrire le message dans la file d’attente.
Après un délai pendant l’exécution de l’application, le message de sortie ESB s’affiche dans l’ESB. JMS. ÉCHANTILLON. DYNAMICQ2 file d’attente. Ouvrez le Explorer file d’attente WebSphere et parcourez les files d’attente pour le confirmer.
Fonctionnement de l’exemple
À l’intérieur de l’orchestration, le code peut accéder aux valeurs qui se trouvaient dans les en-têtes JMS en chargeant le message dans un instance XmlDocument, comme indiqué dans le code suivant.
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);
}
}
}
En outre, le code peut accéder à toutes les propriétés de contexte MQMD du message.