Lorsque l'intégration de
services convertit un message au format IBM MQ, elle définit les zones du
MQMD et du MQRFH2 en fonction des zones et propriétés de l'en-tête de message
du descripteur de message. Il contient les zones et propriétés de message JMS
applicables au message. Lorsque l'intégration de services convertit un message à partir du format IBM MQ, elle définit les zones et
propriétés d'en-tête de message de l'intégration de services à partir du MQMD et
de MQRFH2 dans le message 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.
Propriétés des messages IBM MQ MQMD et MQRFH2
Les messages WebSphere MQ contiennent des propriétés de message dans le
descripteur de message (MQMD), ainsi que dans les règles et l'en-tête de
formatage 2 (MQRFH2). Le message
IBM MQ inclut
toujours un MQMD, mais l'en-tête MQRFH2 est facultatif car certaines
applications WebSphere MQ ne peuvent pas traiter les messages qui contiennent
un en-tête MQRFH2. Pour simplifier l'interopération, vous pouvez configurer l'intégration de services de sorte qu'elle
ignore le MQRFH2 provenant des messages d'applications qui ne traitent pas le MQRFH2. Lorsque l'intégration de services ignore le MQRFH2, elle annule les
zones et propriétés de l'en-tête de l'intégration de services correspondant.
Remarque : Une
petite partie des informations MQRFH2 est également stockée dans les
zones du MQMD. Toutefois, ces zones MQMD ne sont pas des équivalents exacts, ont tendance à
être moins spécifiques et ne peuvent pas remplacer de manière fiable et
adéquate les informations de l'en-tête MQRFH2.
Par conséquent, si l'application destinataire peut
accepter un en-tête MQRFH2, vous devez toujours en fournir un.
De
même, l'intégration de services peut recevoir des messages d'applications IBM MQ qui génèrent des messages
sans MQRFH2. Lorsque l'intégration de services reçoit un message sans en-tête
MQRFH2, elle crée un en-tête d'intégration de services en le "devinant",
en extrayant autant d'informations que possible du MQMD et en utilisant les
valeurs par défaut pour les autres zones.
Pour obtenir des informations
détaillées relatives au contenu du descripteur de message et des en-têtes de
message, reportez-vous au document IBM MQ Application Programming
Reference. Pour plus de détails sur le support JMS de IBM MQ,
y compris sur la manière dont IBM MQ stocke les
propriétés et zones d'en-tête de message JMS dans MQMD et MQRFH2, voir IBM MQ.
Propriétés des messages IBM MQ : zones d'en-tête JMS
Le tableau ci-après montre comment l'intégration de services mappe les zones
d'en-tête JMS vers les zones MQMD et MQRFH2 et à partir de ces dernières
lorsqu'elle convertit des messages vers le format IBM MQ et à partir de ce dernier.
Dans le tableau, la zone MQRFH2 est indiquée en tant que dossier.zone, oùdossier correspond au nom du dossier MQRFH2 contenant la zone et zone au nom de la zone dans le dossier MQRFH2.
Pour plusieurs zones d'en-tête JMS, il existe à la fois une zone MQMD et
une zone MQRFH2. Si l'intégration des services convertit des messages au format IBM MQ, elle définit les deux zones MQMD et MQRFH2. Lorsque le service d'intégration de services convertit des messages de format IBM MQ, il définit la zone d'en-tête JMS depuis la zone MQRFH2 si elle est disponible ou de la zone MQMD si elle ne l'est pas.
Tableau 1. Zones d'en-tête JMS, MQMD et
MQRFH2. La première colonne de ce tableau répertorie les zones d'en-tête JMS, tandis que la deuxième colonne indique les zones MQMD associées aux zones d'en-tête JMS de la première colonne. La troisième colonne affiche les zones MQRFH2 associées aux zones d'en-tête JMS de la première colonne. La quatrième colonne fournit des liens, le cas échéant, vers les notes de bas de page qui apparaissent après le tableau.Zone d'en-tête JMS |
Zone MQMD |
Zone MQRFH2 |
Remarques |
JMSCorrelationID |
CorrelId |
jms.Cid |
Voir remarque 1. |
JMSDeliveryMode |
Persistance |
jms.Dlv |
Voir remarque 15. |
JMSDestination |
|
jms.Dst |
Voir remarque 16. |
JMSExpiration |
Expiration |
jms.Exp |
|
JMSMessageID |
MsgId |
|
|
JMSPriority |
Priorité |
|
Voir remarque 2. |
JMSRedelivered |
BackoutCount |
|
Voir remarque 3. |
JMSReplyTo |
ReplyToQ et ReplyToQMgr |
jms.Rto |
Voir remarque 16. |
JMSTimestamp |
PutDate et PutTime |
jms.Tms |
|
JMSType |
|
mcd.Type |
|
Remarque 1 : La
zone MQMD CorrelId peut contenir un ID corrélation IBM MQ standard de 48 chiffres hexadécimaux
(24 octets). La propriété JMSCorrelationID peut être une
valeur byte[], une chaîne contenant des caractères
hexadécimaux précédés de "ID:" ou une chaîne arbitraire ne commençant pas
par "ID:". Les deux premières chaînes représentent un ID corrélation IBM MQ standard et sont mappées
directement à la zone MQMD CorrelId (tronquée ou remplie
avec des zéros si nécessaire) ; elles n'utilisent pas la zone MQRFH2
jms.Cid.
La deuxième (chaîne arbitraire)
utilise la zone MQRFH2 jms.Cid ; les 24 premiers octets de
la chaîne, au format UTF-8, sont enregistrés dans le CorrelID MQMD.
Remarque 2 : IBM MQ stocke la valeur
JMSPriority dans la zone jms.Pri de
l'en-tête MQRFH2, mais n'utilise aucune valeur qui se trouve déjà dans cette
zone. L'intégration de service ne vérifie pas et ne définit pas la zone
jms.Pri de l'en-tête MQRFH2.
Remarque 3 : L'intégration de services définit l'indicateur JMSRedelivered d'un message qu'il reçoit de IBM MQ en fonction de la zone BackoutCount du MQMD ; une valeur BackoutCount non nulle indique qu'une précédente réception du message a été annulée.
Propriétés des messages IBM MQ : propriétés définies par JMS
Le tableau ci-après montre comment l'intégration de services mappe les
propriétés définies par JMS vers les zones MQMD et MQRFH2 et à partir de ces
dernières lorsqu'elle convertit des messages vers le format IBM MQ et à partir de ce dernier.
Dans le tableau, la zone MQRFH2 est indiquée en tant que dossier.zone, oùdossier correspond au nom du dossier MQRFH2 contenant la zone et zone au nom de la zone dans le dossier MQRFH2.
Pour plusieurs propriétés définies par JMS, il existe à la fois une zone
MQMD et une zone MQRFH2. Si l'intégration des services convertit des messages au format IBM MQ, elle définit les deux zones MQMD et MQRFH2. Lorsque le service d'intégration de services convertit des messages de format IBM MQ, il définit la propriété spécifiée par JMS depuis la zone MQRFH2 si elle est disponible ou de la zone MQMD si elle ne l'est pas.
Tableau 2. Propriétés JMS avec des zones MQMD et MQRFH2. La première colonne de ce tableau répertorie les propriétés définies par JMS, tandis que la deuxième colonne affiche les zones MQMD associées aux propriétés définies par JMS de la première colonne. La troisième colonne affiche les zones MQRFH2 associées aux propriétés définies par JMS de la première colonne. La quatrième colonne fournit des liens, le cas échéant, vers les notes de bas de page qui apparaissent après le tableau.Propriété définie par JMS |
Zone MQMD |
Zone MQRFH2 |
Remarques |
JMSXAppID |
PutApplName |
|
|
JMSXDeliveryCount |
BackoutCount |
|
|
JMSXGroupID |
GroupId |
jms.Gid |
Voir remarque 4 et 5. |
JMSXGroupSeq |
MsgSeqNumber |
jms.Seq |
|
JMSXUserID |
UserIdentifier |
|
|
Remarque 4 : La
zone MQMD GroupId peut contenir un IBM MQ ID de groupe standard comportant 48 chiffres hexadécimaux (24 octets). La propriété JMSXGroupID est une chaîne
contenant des caractères hexadécimaux précédés de "ID:" ou une chaîne
arbitraire ne commençant pas par "ID:". La première de ces chaînes représente une propriété IBM MQ GroupId standard et est mappée directement à la zone MQMD GroupId (tronquée ou remplie avec des zéros si nécessaire). La deuxième (chaîne
arbitraire) utilise la zone MQRFH2 jms.Gid ; les 24 premiers octets de la chaîne, au format UTF-8, sont enregistrés dans le GroupId MQMD.
Remarque 5 : Lorsque
l'intégration de services convertit des messages au format
IBM MQ, si la propriété
JMSXGroupID a été définie, l'intégration de services
définit également l'indicateur
MQMF_MSG_IN_GROUP dans la
zone
MsgFlags du MQMD. Notez que lors de
l'envoi de messages de groupe, l'application JMS expéditrice doit
s'assurer que l'indicateur
MQMF_LAST_MSG_IN_GROUP est
défini de manière appropriée (voir
Propriétés des messages IBM MQ : propriétés du fournisseur JMS).
Propriétés des messages IBM MQ : propriétés du fournisseur JMS
Le tableau ci-après montre comment l'intégration de services mappe les
propriétés spécifiques au fournisseur JMS vers les zones MQMD et MQRFH2 et à
partir de ces dernières lorsqu'elle convertit des messages vers le format WebSphere MQ et à
partir de ce dernier. Généralement, vous utilisez ces propriétés pour
satisfaire les conditions spéciales de l'application destinataire ; vous devez
donc consulter le développeur ou l'administrateur de l'application destinataire
pour obtenir des détails sur les valeurs de propriété requises.
Tableau 3. Propriétés du fournisseur JSM avec des zones MQMD et MQRFH2. La première colonne de ce tableau répertorie les propriétés spécifiques au fournisseur JMS, tandis que la deuxième colonne affiche les zones MQMD associées aux propriétés spécifiques au fournisseur JMS de la première colonne. La troisième colonne affiche les zones MQRFH2 associées aux propriétés spécifiques au fournisseur JMS de la première colonne. La quatrième colonne fournit des liens, le cas échéant, vers les notes de bas de page qui apparaissent après le tableau.Propriété spécifique au fournisseur JMS |
Zone MQMD |
Zone MQRFH2 |
Remarques |
JMS_IBM_ArmCorrelator |
|
mqext.Arm |
Voir remarque 6. |
JMS_IBM_Character_Set |
CodedCharacterSetId |
CodedCharacterSetId |
Voir remarque 7. |
JMS_IBM_Encoding |
Encoding |
Encoding |
Voir remarque 7. |
JMS_IBM_Feedback |
Commentaires |
|
|
JMS_IBM_Format |
Format |
Format |
Voir remarque 7. |
JMS_IBM_Last_Msg_In_Group |
MQMF_LAST_MSG_IN_GROUP |
|
Voir remarque 8. |
JMS_IBM_MQMD_CorrelId |
CorrelId |
|
Voir remarque 9 et 10. |
JMS_IBM_MQMD_MsgId |
MsgId |
|
Voir remarque 9 et 11. |
JMS_IBM_MQMD_Persistence |
Persistence |
|
Voir remarque 9, 12 et 15. |
JMS_IBM_MQMD_ReplyToQ |
ReplyToQ |
|
Voir remarque 9, 13 et 16. |
JMS_IBM_MQMD_ReplyToQMgr |
ReplyToQMgr |
|
Voir remarque 9, 13 et 16. |
JMS_IBM_MsgType |
MsgType |
|
|
JMS_IBM_PutDate |
PutDate |
|
|
JMS_IBM_PutTime |
PutTime |
|
|
JMS_IBM_Report_* |
Report |
|
Voir remarque 14. |
JMS_IBM_RMCorrelator |
|
mqext.Wrm |
|
JMS_TOG_ARM_Correlator |
|
mqext.Arm |
Voir remarque 6. |
Remarque 6 : Vous
devez utiliser le nom JMS_TOG_ARM_Correlator
pour le corrélateur ARM. Le nom JMS_IBM_ArmCorrelator est
disponible pour la compatibilité avec certains programmes JMS existants.
Remarque 7 : Les
propriétés
JMS_IBM_Character_Set,
JMS_IBM_Encoding et
JMS_IBM_Format
contiennent des informations sur la charge du message
IBM MQ ; la partie du message
IBM MQ qui suit l'en-tête MQRFH2
(s'il en existe un) ou l'intégralité du message
IBM MQ, en dehors de MQMD, s'il
n'existe pas d'en-tête MQRFH2. Pour plus d'informations sur ces propriétés et
la manière de les utiliser, voir
Mappage du corps du message vers et depuis le format IBM MQ.
Remarque 8 : MQMF_LAST_MSG_IN_GROUP
est l'un des indicateurs de la zone MsgFlags du MQMD.
Remarque 9 : Les propriétés
JMS_IBM_MQMD_CorrelId,
JMS_IBM_MQMD_MsgId,
JMS_IBM_MQMD_Persistence,
JMS_IBM_MQMD_ReplyToQ et
JMS_IBM_MQMD_ReplyToQMgr permettent aux
applications JMS de remplacer le traitement par défaut des zones MQMD
IBM MQ par l'intégration de services. Lorsque l'intégration de services convertit des messages au format
IBM MQ, elle
définit les zones MQMD correspondantes de chacune de ces propriétés si, et
uniquement si, la propriété a été explicitement définie par l'application
(à l'aide de
setObjectProperty() ou
setNonNullProperty()).
L'intégration de services définit chacune de ces propriétés à partir de la
zone MQMD correspondante lorsqu'elle convertit un message à partir du format IBM MQ.
Remarque 10 : La
propriété
JMS_IBM_MQMD_CorrelId remplace le
traitement par défaut de la propriété
JMSCorrelationID.
Lorsque l'intégration de services convertit des messages au format
IBM MQ, elle affecte à la zone MQMD
CorrelId la valeur (
byte[]) si la
propriété
JMS_IBM_MQMD_CorrelId est explicitement définie,
quelle que soit la valeur éventuelle de la propriété
JMSCorrelationID.
La définition de la propriété
JMS_IBM_MQMD_CorrelId
n'affecte pas la valeur de la zone MQRFH2
jms.Cid.
Lorsque l'intégration de services convertit des messages à partir du format
IBM MQ, elle affecte à la
propriété JMS_IBM_MQMD_CorrelId
la valeur (byte[]) de la zone MQMD CorrelId,
quelle que soit la valeur éventuelle de la zone MQRFH2 jms.Cid.
Remarque 11 : La propriété
JMS_IBM_MQMD_MsgId remplace le traitement par
défaut de la propriété
JMSMessageID par JMS.
Lorsque l'intégration de services convertit des messages au format
IBM MQ, elle vérifie si la propriété
JMS_IBM_MQMD_MsgId a été définie de manière explicite. Si
c'est le cas, l'intégration de services affecte à la zone MQMD
MsgId cette valeur (byte[]) et remplace la valeur unique
de
JMSMessageID que JMS alloue au message.
Lorsque l'intégration de services convertit des messages à partir du format
IBM MQ, elle affecte à la
propriété JMS_IBM_MQMD_MsgId la valeur (byte[])
de la zone MQMD MsgId.
Remarque 12 : La propriété
JMS_IBM_MQMD_Persistence remplace le
traitement par défaut de la propriété
JMSDeliveryMode.
Lorsque l'intégration de services convertit des messages au format
IBM MQ, elle affecte à la zone MQMD
Persistence la valeur (entier) de la propriété
JMS_IBM_MQMD_Persistence, si cette dernière est explicitement définie,
quelle que soit la valeur éventuelle de la propriété
JMSDeliveryMode.
La définition de la propriété
JMS_IBM_MQMD_Persistence
n'affecte pas la valeur de la zone MQRFH2
jms.Dlv.
Lorsque l'intégration de services convertit des messages à partir du format
IBM MQ, elle affecte à la
propriété JMS_IBM_MQMD_Persistence la valeur (entier) de
la zone MQMD Persistence, quelle que soit la valeur
éventuelle de la zone MQRFH2 jms.Dlv.
Remarque 13 : Les
propriétés
JMS_IBM_MQMD_ReplyToQ et
JMS_IBM_MQMD_ReplyToQMgr remplacent le traitement par défaut de la propriété
JMSReplyTo.
Lorsque l'intégration de services convertit des messages au format
IBM MQ, elle affecte à la zone MQMD
ReplyToQ la valeur (chaîne) de la propriété
JMS_IBM_MQMD_ReplyToQ, si cette dernière est explicitement
définie, et à la zone MQMD
ReplyToQMgr la valeur (chaîne)
de la propriété
JMS_IBM_MQMD_ReplyToQMgr, si cette dernière est explicitement
définie, quelle que soit la valeur éventuelle de la propriété
JMSReplyTo.
La définition de la propriété
JMS_IBM_MQMD_ReplyToQ ou
JMS_IBM_MQMD_ReplyToQMgr n'affecte pas la valeur de la
zone MQRFH2
jms.Rto.
Lorsque l'intégration de services convertit des messages à partir du format
IBM MQ, elle affecte aux
propriétés JMS_IBM_MQMD_ReplyToQ et
JMS_IBM_MQMD_ReplyToQMgr les valeurs (chaînes) des zones MQMD
ReplyToQ et ReplyToQMgr,
quelle que soit la valeur éventuelle de la zone MQRFH2 jms.Rto.