Estrutura MQRFH2

O cabeçalho MQRFH2 contém informações sobre a estrutura de uma mensagem e seus consumidores pretendidos, para permitir a um intermediário processar a mensagem e entregá-la ou publicá-la a outros consumidores.

O valor 'MQRFH2  ' deve ser colocado no campo de Format do cabeçalho anterior (geralmente, o MQMD). A constante MQFMT_RF_HEADER_2 é definida com este valor.

Para a linguagem de programação C, a constante MQFMT_RF_HEADER_2_ARRAY também é definida. Essa constante possui o mesmo valor que MQFMT_RF_HEADER_2, mas é uma matriz de caracteres, não uma cadeia de caracteres.

O conjunto de caracteres e da codificação dos campos no cabeçalho MQRFH2 são os seguintes:

O cabeçalho MQRFH2 contém os seguintes campos:

Nome do Campo Descrição Detalhes
StrucId Identificador de estrutura

O valor deve serMQRFH_STRUC_ID, o identificado para as regras e estrutura de cabeçalho de formatação.

Para a linguagem de programação C, a constante MQRFH_STRUC_ID_ARRAY também é definida; essa constante possui o mesmo valor que o MQRFH_STRUC_ID, mas é uma matriz de caracteres, não uma cadeia de caracteres.

Versão Número da versão da estrutura

O valor deve serMQRFH_VERSION_2, ou seja, as regras e estrutura do cabeçalho de formatação da Versão-2.

Struclength Comprimento total de MQRFH2 (incluindo NameValueData)

O valor inicial deste campo é MQRFH_STRUC_LENGTH_FIXED_2, o comprimento da parte fixa da estrutura de cabeçalho do MQRFH2.

Este é o comprimento em bytes da estrutura de cabeçalho do MQRFH2, incluindo quaisquer campos NameValueLength e NameValueData no final da estrutura.

Pode haver mais que um par desses campos no final da estrutura, na seqüência: comprimento1, dados1, comprimento2, dados2, ....... O comprimento de quaisquer dados do usuário que seguem o último campo NameValueData no final da estrutura não estão inclusos em StrucLength.

Nota: Se Struclength não for um múltiplo de quatro, poderão ocorrer problemas com a conversão de dados do usuário em alguns ambientes de sistema operacional.
Codificação Codificação numérica de dados que segue NameValueData

O valor inicial deste campo é MQENC_NATIVE.

Este campo especifica como são representados valores numéricos em quaisquer dados após o último campo NameValueData. Isso se aplica a dados inteiros binários, dados inteiros decimais compactados e dados de ponto flutuante.

CodedCharSetId Identificador de conjunto de caracteres de dados que segue NameValueData

O valor inicial deste campo é MQCCSI_INHERIT, que significa que o identificador do conjunto de caracteres é o mesmo que a estrutura atual.

Este campo identifica o conjunto de caracteres codificado para quaisquer cadeias de caracteres após o último campo NameValueData.

Formato Nome do formato de dados que segue NameValueData

O valor inicial deste campo é MQFMT_NONE.

Este campo especifica o nome do formato de quaisquer dados que seguem o último campo NameValueData. O nome deve ser preenchido com espaços em branco para o comprimento do campo.

Nota: Não utilize um caractere nulo para terminar o nome antes do final do campo. O gerenciador de filas não é alterado para um caractere em branco, o caractere nulo, ou nenhum caractere que siga o caractere nulo, no cabeçalho MQRFH2.
Nota: Não especifique um nome com caracteres em branco principais ou incluídos.
Sinalizadores Flags

O valor inicial deste campo éMQRFH_NONE, que significa que não existem sinalizadores.

NameValueCCSID Identificador do conjunto de caracteres de NameValueData

O valor inicial desse campo é 1208, o que significa que o conjunto de caracteres codificado UTF-8 é utilizado.

Este campo identifica o conjunto de caracteres codificados para dados no campo NameValueData. Isto é deferente do conjunto de caracteres para outras cadeias de caracteres na estrutura de cabeçalhos do MQRFH2, e pode ser diferente do conjunto de caracteres de quaisquer dados de caracteres que seguem o último campo NameValueData.

NameValueCCSID deve ter um dos seguintes valores:

1200: UCS-2 ilimitado

1208: UTF-8

13488: subconjunto de UCS-2 2.0

17584: subconjunto de UCS-2 2.1 (inclui o símbolo do euro €)

Para os conjunto de caracteres UCS-2, a codificação(ordem dos bytes) do campo NameValueData deve ser a mesma da codificação de outros campos na estrutura de cabeçalhos MQRFH2.

Nota: Os caracteres substitutos (X'D800' a X'DFFF') não são suportados.

Os dois campos a seguir são opcionais, mas se presentes devem ocorrer como um par. Eles podem ser repetidos como um par tantas vezes quantas necessárias.

Se esses campos ocorrerem mais de uma vez, eles devem ocorrer na seqüência ..... comprimento1, dados1, comprimento2, dados2, .......

NameValueLength Comprimento de NameValueData

Esse campo especifica o comprimento, em bytes, do campo NameValueData que segue esse campo.

Nota: Se NameValueLength não for um múltiplo de quatro, poderá haver um problema com a conversão dos dados que seguem o campo NameValueData.
NameValueData Esta é uma cadeia de caracteres de comprimento variável, contendo dados que são codificados utilizando uma estrutura semelhante a XML

O comprimento, em bytes, dessa cadeia é dado pelo campo NameValueLength que precede este campo NameValueData.

Para evitar o problema descrito na nota que acompanha a descrição do campo NameValueLength estenda esse campo com espaços em branco para que seu comprimento seja um múltiplo de quatro ou termine o campo com um caractere nulo.

Definição na Linguagem de Programação C

A estrutura a seguir está definida no arquivo de cabeçalhocmqc.h, fornecido com o WebSphere MQ. As constantes utilizadas dentro do campo NameValueData estão definidas no arquivo de cabeçalho BipRfc.h fornecido com o WebSphere Message Broker.
typedef struct tagMQRFH2 {
  MQCHAR4  StrucId;         /*  Identificador da estrutura                  */
  MQLONG   Version;         /*  Número da versão da estrutura               */
  MQLONG   StrucLength;     /*  Comprimento total de MQRFH2, incluindo
                                 NameValueData                              */
  MQLONG   Encoding;        /*  Codificação numérica dos dados que seguem
                                 NameValueData                              */
  MQLONG   CodedCharSetId;  /*  Identificador do conjunto de caracteres de dados que                                 
                                seguem NameValueData                      */
  MQCHAR8  Format;          /*  Nome do formato dos dados que seguem
                                 NameValueData                              */
  MQLONG   Flags;           /*  Sinalizadores                               */
  MQLONG   NameValueCCSID;  /*  Identificador de conjunto de caracteres de NameValueData   */
 } MQRFH2;
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
aq06930_