Ejecución del ejemplo de acceso a la propiedad de encabezado desde una orquestación
En esta parte del ejemplo se muestra cómo el ESB promueve los metadatos del encabezado JMS en propiedades de contexto de mensaje, a qué código y componentes de orquestaciones de Microsoft BizTalk puede acceder. El ejemplo incluye una canalización de recepción que contiene una instancia del componente JMS de ESB que promueve metadatos de encabezado de JMS en propiedades de contexto de mensaje.
El puerto de recepción pasa el mensaje a una orquestación denominada JMSRouter que recupera el nombre de la cola asignado por la utilidad RfhUtil (y se envía en los metadatos del encabezado) de las propiedades de contexto del mensaje. La orquestación asigna este nombre de cola a un puerto de envío dinámico y envía el mensaje a ese puerto.
Una canalización de envío para el puerto contiene una instancia del componente JMS de ESB que desvía las propiedades de contexto del mensaje en los metadatos del encabezado JMS.
Para ejecutar el ejemplo de acceso a la propiedad Header
Si la aplicación GlobalBank.ESB aún no se está ejecutando, use la Consola de administración de BizTalk para iniciarla.
Ejecute la utilidad IBM RfhUtil; seleccione el administrador de colas denominado ESB. JMS. Sample.QueueManager en la primera lista desplegable para conectarse a este administrador de colas, como en la parte 1 de este ejemplo.
En la segunda lista desplegable, seleccione la cola de salida de destino denominada ESB. JMS. MUESTRA. SENDTOBIZTALK.
Haga clic en el botón ReadFile de la utilidad RfhUtil y vaya al archivo de mensaje de prueba denominado TEST-000128. JMS ubicado en la subcarpeta denominada \Source\Samples\JMS\Test\Data\Load\. Este archivo contiene un lote de 128 mensajes de prueba, pero la utilidad solo carga la primera.
Haga clic en la pestaña RFH y asegúrese de que solo esté activada la casilla JMS .
Haga clic en la pestaña jms y, a continuación, asegúrese de que la cola de respuesta a seleccionada es ESB. JMS. MUESTRA. REPLY y que la cola de destino seleccionada es ESB. JMS. MUESTRA. DYNAMICQ2.
Haga clic en la pestaña Principal y, a continuación, haga clic en el botón Escribir Q para escribir el mensaje en la cola.
Después de un retraso mientras se ejecuta la aplicación, el mensaje de salida de ESB aparece en el ESB. JMS. MUESTRA. DYNAMICQ2 cola. Abra WebSphere Queue Explorer y examine las colas para confirmarlo.
Cómo funciona el ejemplo
Dentro de la orquestación, el código puede acceder a los valores que estaban en los encabezados JMS cargando el mensaje en una instancia de XmlDocument , como se muestra en el código siguiente.
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);
}
}
}
Además, el código puede acceder a todas las propiedades de contexto MQMD del mensaje.