Estructura de MQRFH2

La cabecera MQRFH2 contiene información acerca de la estructura de un mensaje y de los destinatarios previstos para que el intermediario de mensajes pueda procesar el mensaje y entregarlo o publicarlo para dichos destinatarios.

El valor 'MQRFH2' ha de colocarse en el campo Format de la cabecera precedente (normalmente MQMD). La constante MQFMT_RF_HEADER_2 se define con ese valor.

Para el lenguaje de programación C, también se define la constante la constante MQFMT_RF_HEADER_2_ARRAY. Dicha constante tiene el mismo valor que MQFMT_RF_HEADER_2, pero es una matriz de caracteres, no una serie de caracteres.

El juego de caracteres y la codificación son los siguientes:

La cabecera MQRFH2 contiene los siguientes campos:

Nombre de campo Descripción Detalles
StrucId Identificador de la estructura

El valor ha de ser MQRFH_STRUC_ID, que es el identificador de la estructura de normas y formato de la cabecera.

Para el lenguaje de programación C, también se define la constante MQRFH_STRUC_ID_ARRAY; esta constante tiene el mismo valor que MQRFH_STRUC_ID, pero es una matriz de caracteres, no una serie de caracteres.

Version Número de versión de la estructura

El valor ha de ser MQRFH_VERSION_2, que es la estructura de normas y formato de la cabecera, en la Versión 2.

Struclength Longitud total de MQRFH2 (incluidos los NameValueData)

El valor inicial de este campo es MQRFH_STRUC_LENGTH_FIXED_2, que es la longitud de la parte fija de la estructura de la cabecera MQRFH2.

Es la longitud en bytes de la estructura de la cabecera MQRFH2, incluidos los campos NameValueLength y NameValueData que haya, al final de la estructura.

Puede haber más de un par de estos campos al final de la estructura, en la secuencia: longitud1, datos1, longitud2, datos2, ....... La longitud de cualquier dato de usuario que siga al último campo NameValueData al final de la estructura, no se incluirá en StrucLength.

Nota: Si StrucLength no es un múltiplo de cuatro, pueden producirse problemas con la conversión de datos del usuario en algunos entornos de sistemas operativos.
Encoding Codificación numérica de datos que sigue a NameValueData

El valor inicial de este campo es MQENC_NATIVE.

Este campo especifica cómo se representan los valores numéricos de cualquier dato que siga al último campo NameValueData. Esto se aplica a datos enteros binarios, datos enteros decimales empaquetados y datos de coma flotante.

CodedCharSetId Identificador del juego de caracteres de los datos que siguen a NameValueData

El valor inicial de este campo es MQCCSI_INHERIT, que indica que el identificador del juego de caracteres es el mismo que el de la estructura actual.

Este campo identifica el juego de caracteres codificado de cualquier serie de caracteres de los datos que siguen al último campo NameValueData.

Format Nombre de formato de los datos que siguen a NameValueData

El valor inicial de este campo es MQFMT_NONE.

Este campo especifica el nombre del formato de cualquier dato que siga al último campo NameValueData. El nombre ha de rellenarse con blancos hasta que tenga la longitud del campo.

Nota: No utilice ningún carácter nulo para terminar el nombre antes del final del campo; el gestor de colas no cambia por un carácter en blanco el carácter nulo ni ninguno de los caracteres que sigan al carácter nulo en la cabecera MQRFH2.
Nota: No especifique nombres con caracteres en blanco al principio o incorporados.
Indicadores Indicadores

El valor inicial de este campo es MQRFH_NONE, que indica que no hay indicadores.

NameValueCCSID Identificador del juego de caracteres de NameValueData

El valor inicial de este campo es 1208, que indica que se utiliza el juego de caracteres codificado UTF-8.

Este campo identifica el juego de caracteres codificado establecido para los datos en el campo NameValueData. Esto es distinto del juego de caracteres de las demás series de caracteres de la estructura de la cabecera MQRFH2 y puede ser distinto del juego de caracteres para cualquier dato de tipo carácter que siga al último campo NameValueData.

NameValueCCSID ha de tener uno de los siguientes valores:

1200: UCS-2 con final abierto

1208: UTF-8

13488: subconjunto UCS-2 2.0

17584: subconjunto UCS-2 2.1 (incluye el símbolo de Euro €)

Para los juegos de caracteres UCS-2, la codificación (orden de bytes) del campo NameValueData ha de ser igual que la codificación de los demás campos de la estructura de la cabecera MQRFH2.

Nota: Los caracteres sustitutos (X'D800' a X'DFFF') no están soportados.

Los dos campos siguientes son opcionales, pero si existen, han de estar por pares. Pueden repetirse como pares tantas veces como sea necesario.

Si estos campos se producen más de una vez, ha de hacerlo con la secuencia ..... longitud1, datos1, longitud2, datos2, .......

NameValueLength Longitud de NameValueData

Este campo especifica la longitud, en bytes, del campo NameValueData que sigue a este campo.

Nota: Si NameValueLength no es múltiplo de cuatro, puede haber un problema en la conversión de los datos que sigan al campo NameValueData.
NameValueData Es una serie de caracteres de longitud variable que contiene datos codificados utilizando un estructura de tipo XML.

La longitud, en bytes, de esa serie de caracteres la proporciona el campo NameValueLength que precede a este campo NameValueData.

Para evitar el problema que se indica en la nota que acompaña a la descripción del campo NameValueLength, expanda el campo con blanco para que su longitud sea múltiplo de cuatro, o termine el campo con un carácter nulo.

Definición de lenguaje de programación C

La siguiente estructura se define en el archivo de cabecera cmqc.h que se entrega con WebSphere MQ. Las constantes utilizadas dentro del campo NameValueData están definidas en el archivo de cabecera BipRfc.h que se entrega con WebSphere Message Broker.
typedef struct tagMQRFH2 {
  MQCHAR4  StrucId;         /*  Identificador de estructura                 */
  MQLONG   Version;         /*  Número de versión de estructura             */
  MQLONG   StrucLength;     /*  Longitud total de MQRFH2 incluidos los
                                 NameValueData */
  MQLONG   Encoding;        /*  Codificación numérica de datos que sigue
                                 NameValueData */
  MQLONG   CodedCharSetId;  /*  Identificador de juego de caracteres de los
                                 datos que siguen a NameValueData        */
  MQCHAR8  Format;          /*  Nombre de formato de los datos que siguen a
                                 NameValueData */
  MQLONG   Flags;           /*  Identificadores                             */
  MQLONG   NameValueCCSID;  /*  Identificador de juego de caracteres de
                                                           NameValueData   */
 } MQRFH2;
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
aq06930_