Correlación del cuerpo de mensajes con y desde el formato IBM MQ

La cabecera (MQRFH2) y el descriptor (MQMD) de mensaje IBM MQ pueden contener información sobre el formato del cuerpo de mensaje IBM MQ. La integración de servicios utiliza la información contenida en la MQRFH2 y en el MQMD al convertir un mensaje desde el formato IBM MQ, y coloca la información en la MQRFH2 y en el MQMD al convertir un mensaje al formato IBM MQ.

Intercambio de mensajes entre los programas JMS a través de la integración de servicios y IBM MQ

Normalmente, no tiene que saber la conversación entre los formatos de mensaje para intercambiar mensajes JMS entre la integración de servicios y IBM MQ, porque la integración de servicios realiza la conversación apropiada automáticamente, incluida la codificación de caracteres y numérica. Sin embargo, es posible que tenga que obtener más información sobre la conversión de mensajes si las aplicaciones JMS no se comportan como se espera, o si la configuración de la integración de servicios incluye programas o mediaciones JMS que procesan mensajes procedentes o con destino de programas IBM MQ no JMS.

Si las aplicaciones de la integración de servicios intercambian objetos MapMessage con aplicaciones IBM MQ, es posible que tenga que especificar un formato de codificación de mensajes MAP no predeterminado.

Carga útil de mensaje IBM MQ: indicaciones de formato

El mensaje con el formato IBM MQ contiene las dos siguientes indicaciones de formato de carga útil:

Carpeta MQRFH2 <mcd>, campo Msd
Este campo puede contener información sobre el formato de carga útil. Es la información de "formato JMS".
  • Cuando la integración de servicios convierte un mensaje al formato IBM MQ, establece automáticamente el valor apropiado para la clase de mensaje JMS.
  • Cuando la integración de servicios convierte un mensaje desde el formato IBM MQ, utiliza el valor de este campo (si hay una MQRFH2 que contiene el campo) para establecer la clase de mensaje JMS.
Clase de mensaje JMS Carpeta MQRFH2 <mcd>, campo Msd ("formato JMS")
TextMessage jms_text
BytesMessage jms_bytes
StreamMessage jms_stream
MapMessage jms_map
ObjectMessage jms_object
Mensaje jms_none

Si la información de "formato JMS" no está disponible, por ejemplo si no hay ninguna MQRFH2, la integración de servicios establece la clase de mensaje JMS en función del "formato MQ".

Para obtener más información sobre la carpeta MQRFH2 <mcd>, consulte la documentación de IBM MQ sobre la utilización de Java.

Campo de formato de MQRFH2 (o MQMD)

El campo de formato de MQRFH2 (o de MQMD si no hay ninguna MQRFH2) contiene información acerca del formato de carga útil. Se trata de la información de "formato MQ". Normalmente contiene MQFMT_STRING, que indica que la carga útil son datos de tipo carácter (y pueden convertirse a una página de códigos distinta mediante IBM MQ), o MQFMT_NONE, que indica que la carga útil no son datos de tipo carácter. Estos valores son adecuados para la mayoría de mensajes JMS, y cuando la integración de servicios convierte un mensaje al formato IBM MQ establece automáticamente este campo en uno de los siguientes valores:

Clase de mensaje JMS Campo de formato de MQRFH2 (o MQMD) ("formato MQ")
TextMessage MQFMT_STRING
BytesMessage MQFMT_NONE
StreamMessage MQFMT_STRING
MapMessage MQFMT_STRING
ObjectMessage MQFMT_NONE
Mensaje MQFMT_NONE

Si su aplicación construye mensajes para una aplicación IBM MQ que requiere un valor de formato distinto, puede alterar temporalmente el valor de la tabla anterior estableciendo la propiedad JMS_IBM_Format en el valor necesario. Un ejemplo concreto es cuando la aplicación IBM MQ requiere una cabecera adicional (por ejemplo, la cabecera MQCIH para una aplicación de puente CICS). Su aplicación construye un objeto BytesMessage que contiene la cabecera seguida de otros datos del mensaje y luego sustituye el "formato MQ" predeterminado (MQFMT_NONE) estableciendo la propiedad JMS_IBM_Format en el valor apropiado para la cabecera (por ejemplo, MQFMT_CICS para una cabecera MQCIH).

Cuando la integración de servicios convierte un mensaje desde el formato IBM MQ, establece la propiedad JMS_IBM_Format en el valor del campo "Formato MQ" field. Si el "formato JMS" no está disponible, por ejemplo si no hay ninguna MQRFH2, la integración de servicios establece la clase de mensaje JMS en TextMessage si el "formato MQ" es MQFMT_STRING y en BytesMessage en caso contrario.

Para obtener más información sobre el campo de formato MQRFH2 (o MQMD), consulte la publicación IBM MQ Application Programming Reference.

Carga útil de mensaje IBM MQ: codificación de caracteres y numérica

Además del campo de formato, la MQRFH2 (o el MQMD si no hay ninguna MQRFH2) contiene campos que identifican la codificación de caracteres y la codificación numérica para la carga útil del mensaje.

Cuando la integración de servicios convierte un mensaje al formato IBM MQ format, selecciona automáticamente los valores predeterminados (codificación de caracteres UTF-8 y codificación numérica big-endian) que son adecuados para la mayoría de mensajes JMS. Si su aplicación construye mensajes para una aplicación IBM MQ que requiere otra codificación de caracteres o numérica, puede alterar temporalmente el valor de codificación de caracteres estableciendo la propiedad JMS_IBM_Character_Set en el ID de conjunto de caracteres codificados (CCSID) necesario, o la propiedad JMS_IBM_Encoding en el formato numérico necesario, o ambas. Para obtener información sobre los valores que puede utilizar para las propiedades JMS_IBM_Character_Set y JMS_IBM_Encoding, consulte la documentación de la biblioteca de IBM MQ.

Cuando el mensaje JMS tiene un cuerpo que está codificado como datos de tipo carácter en IBM MQ (TextMessage, StreamMessage o MapMessage), establecer JMS_IBM_Character_Set hace que la integración de servicios convierta el texto en dicho conjunto de caracteres codificado en el cuerpo del mensaje IBM MQ.

Cuando el mensaje JMS tiene un cuerpo que son datos de tipo carácter (BytesMessage u ObjectMessage), establecer JMS_IBM_Character_Set no hace que la integración de servicios convierta los bytes; indica a IBM MQ que los datos de tipo carácter del cuerpo del mensaje ya están codificados con el conjunto de caracteres codificados especificado. Si el valor de JMS_IBM_Format es un formato que IBM MQ reconoce, puede convertir dichos datos de tipo carácter al conjunto de caracteres codificados que necesita la aplicación de recepción.

Cuando la integración de servicios convierte un mensaje desde el formato IBM MQ, establece las propiedades JMS_IBM_Character_Set y JMS_IBM_Encoding de los campos en MQRFH2 (o MQMD, si no hay ningún MQRFH2). Si el mensaje JMS es un TextMessage, StreamMessage, MapMessage u ObjectMessage, la aplicación no utiliza los valores de las propiedades JMS_IBM_Character_Set y JMS_IBM_Encoding. Si el mensaje JMS es un BytesMessage, el cuerpo del mensaje JMS son datos binarios. En este caso, la aplicación debe conocer los valores de las propiedades JMS_IBM_Character_Set y JMS_IBM_Encoding, ya que indican que la codificación de los datos de tipo carácter o de los datos numéricos que están incluidos dentro de los datos binarios del mensaje.


Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rjc0005_
File name: rjc0005_.html