Mapeando o corpo da mensagem para e a partir do formato do IBM MQ

O descritor (MQMD) e cabeçalho da mensagem (MQRFH2) do IBM MQ podem conter informações sobre o formato do corpo da mensagem do IBM MQ. A integração de serviço usa as informações contidas no MQRFH2 e no MQMD ao converter uma mensagem a partir do formato do IBM MQ e coloca as informações no MQRFH2 e MQMD ao converter uma mensagem para o formato do IBM MQ.

Trocando Mensagens entre Programas JMS Utilizando a Integração de Serviços e o IBM MQ

Geralmente, não é preciso estar ciente da conversão entre os formatos de mensagens para a troca de mensagens JMS entre a integração de serviço e o IBM MQ, pois a integração de serviço executa a conversão apropriada automaticamente, incluindo a codificação de caracteres e numérica. Entretanto, você poderá ter que aprender sobre conversão de mensagens se os aplicativos JMS não se comportarem como esperado ou se a configuração da integração de serviços contiver programas ou mediações do JMS que processe mensagens de/para programas IBM MQ não JMS.

Se os aplicativos da integração de serviços trocarem objetos MapMessage com aplicativos do IBM MQ, você poderá ter de especificar um formato de codificação de mensagens de mapa não padrão.

Carga Útil da Mensagem do IBM MQ: Indicações de Formato

A mensagem de formato do IBM MQ contém as seguintes duas indicações de formato de carga útil:

Pasta MQRFH2 <mcd>, campo Msd
Este campo pode conter informações sobre o formato da carga útil. Estas são as informações de "formato JMS".
  • Quando a integração de serviço converte uma mensagem para o formato do IBM MQ, ela configura automaticamente o valor apropriado para a classe da mensagem JMS.
  • Quando a integração de serviço converte uma mensagem a partir do formato a partir do IBM MQ, ela usa o valor neste campo (se houver um MQRFH2 que contém o campo) para configurar a classe da mensagem JMS.
Classe da mensagem JMS Pasta MQRFH2 <mcd>, campo Msd ("formato JMS")
TextMessage jms_text
BytesMessage jms_bytes
StreamMessage jms_stream
MapMessage jms_map
ObjectMessage jms_object
Mensagem de e-mail jms_none

Se as informações no "formato JMS" não estiverem disponíveis, por exemplo, se não houver nenhum MQRFH2, a integração de serviço configurará a classe de mensagem JMS com base no "formato MQ".

Para obter mais informações sobre a pasta <mcd> do MQRFH2, consulte a Documentação do IBM MQ ao usar Java.

Campo de formato MQRFH2 (ou MQMD)

O campo de formato MQRFH2 (ou o MQMD se não houver nenhum MQRFH2) contém informações sobre o formato da carga útil. Estas são as informações de "formato MQ". Geralmente elas contêm MQFMT_STRING, que indica que a carga útil é dados de caractere (e pode ser convertida em uma página de códigos diferente pelo IBM MQ), ou MQFMT_NONE, que indica que a carga útil não é dados de caractere. Esses valores são adequados para a maioria das mensagens JMS e quando a integração de serviço converte uma mensagem para o formato do IBM MQ, este campo é configurado automaticamente para um dos seguintes valores:

Classe da mensagem JMS campo de formato MQRFH2 (ou MQMD) ("formato MQ")
TextMessage MQFMT_STRING
BytesMessage MQFMT_NONE
StreamMessage MQFMT_STRING
MapMessage MQFMT_STRING
ObjectMessage MQFMT_NONE
Mensagem de e-mail MQFMT_NONE

Se seu aplicativo criar mensagens para um aplicativo do IBM MQ que requer um valor de formato diferente, será possível substituir o valor da tabela anterior ao configurar a propriedade JMS_IBM_Format para o valor necessário. Um exemplo específico é quando o aplicativo do IBM MQ requer um cabeçalho adicional (por exemplo, o cabeçalho MQCIH para um aplicativo de ligação CICS). Seu aplicativo cria um objeto BytesMessage que contém o cabeçalho seguido por quaisquer outros dados de mensagem e, em seguida, substitui o "formato MQ" padrão (MQFMT_NONE) ao configurar a propriedade JMS_IBM_Format para o valor adequado de cabeçalho (por exemplo, MQFMT_CICS para um cabeçalho MQCIH).

Quando a integração de serviço converte uma mensagem a partir do formato do IBM MQ, a propriedade JMS_IBM_Format é configurada para o valor no campo "formato MQ". Se o "formato JMS" não estiver disponível, por exemplo, se não houver nenhum MQRFH2, a integração de serviço configurará a classe de mensagem JMS como TextMessage se o "formato MQ" for MQFMT_STRING e, caso contrário, como BytesMessage .

Para obter mais informações sobre o campo de formato MQRFH2 (ou MQMD), consulte a Referência de Programação de Aplicativo do IBM MQ.

Carga Útil da Mensagem do IBM MQ: Codificação de Caractere e Numérica

Além do campo de formato, o MQRFH2 (ou o MQMD, se não houver MQRFH2) contém campos que identificam a codificação de caracteres e numérica para a carga útil da mensagem.

Quando a integração de serviço converter uma mensagem no formato do IBM MQ , ela selecionará automaticamente os valores padrão (codificação de caractere UTF-8 e codificação numérica big endian) que são adequados para a maioria das mensagens JMS. Se seu aplicativo criar mensagens para um aplicativo IBM MQ que requer uma codificação de caractere ou numérica diferente, você poderá substituir o valor de codificação de caractere configurando a propriedade JMS_IBM_Character_Set para o ID do conjunto de caracteres codificados requerido (CCSID) ou a propriedade JMS_IBM_Encoding para o formato numérico requerido, ou ambos. Para obter informações sobre os valores que podem ser usados para o JMS_IBM_Character_Set e para o JMS_IBM_Encoding, consulte a documentação na Biblioteca do IBM MQ.

Quando a mensagem JMS tem um corpo que é codificado como dados de caractere no IBM MQ (TextMessage, StreamMessage ou MapMessage), configurar JMS_IBM_Character_Set fará com que a integração de serviço converta o texto para o conjunto de caracteres codificado no corpo da mensagem do IBM MQ.

Quando a mensagem JMS tem um corpo que não dados de caractere (BytesMessage ou ObjectMessage), configurar JMS_IBM_Character_Set não fará com que a integração de serviço converta os bytes, e sim, indicará para o IBM MQ que todos os dados de caracteres no corpo da mensagem já foram codificados usando o conjunto de caracteres codificados especificado. Se o valor de JMS_IBM_Format for um formato que o IBM MQ reconhece, ele poderá converter esses dados de caractere para o conjunto de caracteres codificados que o aplicativo de recebimento requer.

Quando a integração de serviço converter uma mensagem do formato do IBM MQ , ele configurará as propriedades JMS_IBM_Character_Set e JMS_IBM_Encoding a partir dos campos no MQRFH2 (ou o MQMD se não houver nenhum MQRFH2). Se a mensagem JMS for TextMessage, StreamMessage, MapMessage ou ObjectMessage, seu aplicativo não fará uso dos valores das propriedades JMS_IBM_Character_Set e JMS_IBM_Encoding. Se a mensagem JMS for BytesMessage, o corpo da mensagem JMS será um dado binário. Neste caso, seu aplicativo deve conhecer os valores das propriedades JMS_IBM_Character_Set e JMS_IBM_Encoding, pois elas indicam a codificação de todos os dados de caracteres que estão integrados nos dados binários da mensagem.


Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rjc0005_
Nome do arquivo: rjc0005_.html