Mappage du corps du message vers et depuis le format IBM MQ

L'en-tête (MQRFH2) et le descripteur (MQMD) des messages IBM MQ peuvent contenir des informations sur le format du corps du message IBM MQ. L'intégration de services utilise les information contenues dans MQRFH2 et MQMD lorsqu'elle convertit un message depuis le format IBM MQ et place des informations dans MQRFH2 et MQMD lorsqu'elle en convertit un au format IBM MQ.

Echange de messages entre des programmes JMS par l'intermédiaire de l'intégration de services et de IBM MQ

En règle générale, il n'est pas utile de connaître les principes de conversion entre les formats de message pour échanger des messages JMS entre l'intégration de services et IBM MQ car l'intégration de services convertit automatiquement, notamment les caractères et le codage numérique. Toutefois, vous devrez peut-être en savoir plus sur la conversion des messages si vos applications JMS ne se comportent pas comme prévu ou si la configuration de l'intégration de services comprend des programmes JMS ou des médiations qui traitent des messages entre des programmes IBM MQ non JMS.

Si vos applications d'intégration de services échangent des objets MapMessage avec des applications IBM MQ, vous devrez probablement spécifier un format de codage de message de mappe autre que celui par défaut.

Charge des messages IBM MQ : indications de format

Le message au format IBM MQ contient les deux indications suivantes sur le format de la charge :

Dossier MQRFH2 <mcd>, zone Msd
Cette zone peut contenir des informations sur le format de la charge. Il s'agit des informations de "format JMS".
  • Lorsque l'intégration de services convertit un message au format IBM MQ, elle définit automatiquement la valeur appropriée de la classe de message JMS.
  • Lorsque l'intégration de services convertit un message depuis le format IBM MQ, elle utilise la valeur de cette zone (si un en-tête MQRFH2 contient la zone) pour définir la classe de message JMS.
Classe de message JMS Dossier MQRFH2 <mcd>, zone Msd ("format JMS")
TextMessage jms_text
BytesMessage jms_bytes
StreamMessage jms_stream
MapMessage jms_map
ObjectMessage jms_object
Message jms_none

Si les informations relatives au "format JMS" ne sont pas disponibles (par exemple, s'il n'existe pas de MQRFH2, l'intégration de services définit la classe de message JMS en fonction du "format MQ".

Pour plus d'informations sur le dossier MQRFH2 <mcd> , voir la documentation IBM MQ relatives à l'utilisation de Java.

Zone Format MQRFH2 (ou MQMD)

La zone Format MQRFH2 (ou MQMD s'il n'existe pas de MQRFH2) contient des informations sur le format de la charge. Il s'agit des informations sur le "format MQ". Elle contient généralement MQFMT_STRING, qui indique que la charge correspond à des données de caractère (et peut être convertie dans une autre page de codes par IBM MQ), ou MQFMT_NONE, qui indique que la charge ne correspond pas à des données de caractère. Ces valeurs conviennent à la plupart des messages JMS et, lorsque l'intégration de services convertit un message au format IBM MQ, elle affecte automatiquement à cette zone les valeurs suivantes :

Classe de message JMS Zone Format MQRFH2 (ou MQMD) ("format MQ")
TextMessage MQFMT_STRING
BytesMessage MQFMT_NONE
StreamMessage MQFMT_STRING
MapMessage MQFMT_STRING
ObjectMessage MQFMT_NONE
Message MQFMT_NONE

Si votre application génère des messages pour une application IBM MQ qui requiert une valeur de format différente, vous pouvez remplacer la valeur de la table précédente en affectant à la propriété JMS_IBM_Format la valeur requise. Par exemple, lorsque l'application IBM MQ requiert un en-tête supplémentaire (il peut s'agir de l'en-tête MQCIH d'une application de pont CICS). Votre application génère un objet BytesMessage qui contient l'en-tête suivi d'autres données de message, puis remplace le "format MQ" par défaut (MQFMT_NONE) en affectant à la propriété JMS_IBM_Format la valeur appropriée pour l'en-tête (par exemple, MQFMT_CICS pour un en-tête MQCIH).

Lorsque l'intégration de services convertit un message à partir du format IBM MQ, il affecte à la propriété JMS_IBM_Format la valeur de la zone "Format MQ". Si le "format JMS" n'est pas disponible (par exemple, s'il n'existe pas de MQRFH2, l'intégration de services affecte à la classe de message JMS la valeur TextMessage si le "format MQ" est MQFMT_STRING, et la valeur BytesMessage dans le cas contraire.

Pour plus d'informations sur la zone du format MQRFH2 (ou MQMD), reportez-vous au document de référence sur la programmation d'applications IBM MQ.

Charge des messages IBM MQ : codage des caractères et des valeurs numériques

En plus de la zone de format, l'en-tête MQRFH2 (ou MQMD si MQRFH2 n'existe pas) contient les zones qui identifient le codage de caractères et de valeurs numériques pour la charge des messages.

Lorsque l'intégration de services convertit un message au format IBM MQ, elle sélectionne automatiquement les valeurs par défaut (codage de caractères UTF-8 et codage numérique au format big endian), qui conviennent pour la plupart des messages JMS. Si votre application construit des messages pour une application IBM MQ nécessitant un autre codage numérique ou de caractère, vous pouvez remplacer la valeur de codage de caractère en attribuant à la propriété JMS_IBM_Character_Set l'ID d'ensemble de caractères codés (CCSID) requis ou à la propriété JMS_IBM_Encoding le format numérique standard. Pour plus d'informations sur les valeurs que vous pouvez utiliser pour JMS_IBM_Character_Set et JMS_IBM_Encoding, consultez la documentation de la bibliothèque IBM MQ.

Si le message JMS contient un corps codé comme données de caractère dans IBM MQ (TextMessage, StreamMessage ou MapMessage), la définition de la propriété JMS_IBM_Character_Set permet à l'intégration de services de convertir le texte dans ce jeu de caractères codés, dans le corps du message IBM MQ.

Si le message JMS contient un corps ne contenant pas de données de caractère (BytesMessage ou ObjectMessage), la définition de la propriété JMS_IBM_Character_Set n'entraîne pas la conversion des octets par l'intégration de services ; elle indique à IBM MQ que les données de caractère du corps du message sont déjà codées à l'aide du jeu de caractères codés spécifié. Si la valeur de la propriété JMS_IBM_Format correspond à un format reconnu par IBM MQ, ce dernier peut convertir ces données de caractère dans le jeu de caractères codés requis par l'application destinataire.

Lorsque l'intégration de services convertit un message à partir du format IBM MQ, elle définit les propriétés JMS_IBM_Character_Set et JMS_IBM_Encoding à partir des zones de l'en-tête MQRFH2 (ou MQMD si MQRFH2 n'existe pas). Si le message JMS correspond à un objet TextMessage, StreamMessage, MapMessage ou ObjectMessage, votre application n'utilise pas les valeurs des propriétés JMS_IBM_Character_Set et JMS_IBM_Encoding. Si le message JMS correspond à un objet BytesMessage, le corps du message JMS est constitué de données binaires. Dans ce cas, votre application doit connaître les valeurs des propriétés JMS_IBM_Character_Set et JMS_IBM_Encoding, car elles indiquent le codage des données de caractère ou des données numériques imbriquées dans les données binaires du message.


Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rjc0005_
Nom du fichier : rjc0005_.html