Wenn die Serviceintegration
eine Nachricht in das IBM MQ-Format konvertiert, setzt sie Felder in
MQMD und MQRFH2 basierend auf den Headerfeldern und Eigenschaften von Serviceintegrationsnachrichten. Dazu gehören für die Nachricht geeignete JMS-Nachrichtenheaderfelder und -eigenschaften.
Wenn die Serviceintegration eine Nachricht aus dem IBM MQ-Format konvertiert, setzt sie
die Headerfelder und Eigenschaften in der Serviceintegrationsnachricht auf der Basis von MQMD und MQRFH2 in der IBM MQ-Nachricht.
Nachrichtenaustausch zwischen JMS-Programmen durch Serviceintegration und IBM MQ
Gewöhnlich müssen Sie sich nicht mit der Konvertierung von Nachrichtenformaten für den Austausch von JMS-Nachrichten
zwischen der Serviceintegration und IBM MQ auskennen, weil die Serviceintegration die entsprechende
Konvertierung, einschließlich der Zeichen- und numerischen Codierung, automatisch durchführt. Möglicherweise müssen Sie sich aber über die Nachrichtenkonvertierung informieren, wenn sich Ihre JMS-Anwendungen nicht wie erwartet verhalten oder wenn Ihre Serviceintegrationskonfiguration JMS-Programme oder -Mediationen enthält, die Nachrichten für oder von IBM MQ-Programmen verarbeiten.
Wenn Ihre Serviceintegrationsanwendungen MapMessage-Objekte mit IBM MQ-Anwendungen austauschen, müssen Sie möglicherweise ein vom Standard abweichendes Codierformat für die Zuordnung von Nachrichten angeben.
IBM MQ-Nachrichteneigenschaften: MQMD und MQRFH2
WebSphere MQ-Nachrichten enthalten Nachrichteneigenschaften im Nachrichtendeskriptor
(MQMD) und Regel- und Formatierungsheader 2 (MQRFH2). Die
IBM MQ-Nachricht enthält immer einen MQMD, aber der MQRFH2 ist optional, weil einige WebSphere MQ-Anwendungen
Nachrichten, die einen MQRFH2 enthalten, nicht verarbeiten können. Um die Interoperation zu vereinfachen, können Sie
die Serviceintegration so konfigurieren, dass sie den MQRFH2 aus Nachrichten ausschließt, die für Anwendungen bestimmt sind, die den MQRFH2 nicht verarbeiten können. Die
Serviceintegration löscht die entsprechenden Headerfelder und Eigenschaften für die Serviceintegration, wenn sie den MQRFH2 ausschließt.
Anmerkung: Ein kleiner Teil der MQRFH2-Informationen
ist auch in MQMD-Feldern gespeichert.
Diese MQMD-Felder sind jedoch keine exakten Entsprechungen. Sie sind gewöhnlich weniger spezifisch und
können nicht als zuverlässiger Ersatz für die MQRFH2-Informationen verwendet werden. Wenn die empfangende Anwendung
einen MQRFH2-Header empfangen kann, sollten Sie deshalb immer einen solchen angeben.
Ebenso kann die Serviceintegration
Nachrichten von IBM MQ-Anwendungen empfangen, die Nachrichten ohne MQRFH2 generieren. Wenn die Serviceintegration eine Nachricht ohne
MQRFH2 empfängt, erstellt sie auf der Basis der Informationen, die Sie dem MQMD entnehmen, kann einen eigenen Serviceintegrations-Header und verwendet für die anderen Felder
Standardwerte.
Ausführliche Informationen zum Inhalt des Nachrichtendeskriptors und der Nachrichtenheader
finden Sie in der Veröffentlichung IBM MQ Application Programming
Reference. Einzelheiten zur JMS-Unterstützung in IBM MQ, einschließlich der Speicherung von JMS-Nachrichteneigenschaften
und -Headerfeldern in MQMD und MQRFH2 in IBM MQ finden Sie im Artikel IBM MQ.
IBM MQ-Nachrichteneigenschaften: JMS-Headerfelder
Die folgende
Tabelle enthält die Zuordnung von JMS-Headerfeldern zu MQMD- und MQRFH2-Feldern durch die Serviceintegration, wenn Nachrichten in das
IBM MQ-Format und zurück konvertiert werden.
In der Tabelle wird das MQRFH2-Feld im Format Ordner.Feld angezeigt, wobei Ordner für den Namen des MQRFH2-Ordners steht, der das Feld enthält, und Feld für den Namen des Felds im MQRFH2-Ordner.
Für mehrere JMS-Headerfelder gibt es sowohl ein MQMD-Feld als auch ein MQRFH2-Feld.
Wenn die Serviceintegration Nachrichten in das IBM MQ-Format konvertiert, setzt sie die Felder "MQMD" und "MQRFH2". Wenn die Serviceintegration Nachrichten aus dem IBM MQ-Format konvertiert,
setzt sie das JMS-Headerfeld über das MQRFH2-Feld, sofern verfügbar, und andernfalls über das
MQMD-Feld.
Tabelle 1. Felder der Header JMS, MQMD und MQRFH2. In der ersten
Spalte dieser Tabelle sind die JMS-Headerfelder aufgelistet, und in der zweiten Spalte sind die
MQMD-Felder aufgeführt, die sich auf die JMS-Headerfelder in der ersten Spalte beziehen.
In der dritten Spalte sind die MQRFH2-Felder aufgelistet, die sich auf die JMS-Headerfelder
in der ersten Spalte beziehen. Die vierte Spalte enthält Links, sofern erforderlich, zu den
Fußnoten, die unterhalb der Tabelle aufgeführt sind.JMS-Headerfeld |
MQMD-Feld |
MQRFH2-Feld |
Anmerkungen |
JMSCorrelationID |
CorrelId |
jms.Cid |
Siehe die Anmerkung 1. |
JMSDeliveryMode |
Persistence |
jms.Dlv |
Siehe die Anmerkung 15. |
JMSDestination |
|
jms.Dst |
Siehe die Anmerkung 16. |
JMSExpiration |
Expiry |
jms.Exp |
|
JMSMessageID |
MsgId |
|
|
JMSPriority |
Priority |
|
Siehe die Anmerkung 2. |
JMSRedelivered |
BackoutCount |
|
Siehe die Anmerkung 3. |
JMSReplyTo |
ReplyToQ und ReplyToQMgr |
jms.Rto |
Siehe die Anmerkung 16. |
JMSTimestamp |
PutDate und PutTime |
jms.Tms |
|
JMSType |
|
mcd.Type |
|
Anmerkung 1: Das MQMD-Feld CorrelId
kann eine IBM MQ-Standardkorrelations-ID mit maximal 48 Hexadezimalziffern (24 Byte) enthalten.
Das Feld JMSCorrelationID kann eine Bytefeldgruppe (byte[]), einen Zeichenfolgewert mit Hexadezimalzeichen und dem Präfix
"ID:" oder einen beliebigen Zeichenfolgewert, der nicht mit "ID:" beginnt, enthalten.
Die ersten beiden Werte stellen eine IBM MQ-Standardkorrelations-ID dar und können dem MQMD-Feld CorrelId direkt zugeordnet werden (gekürzt oder mit Nullen aufgefüllt).
Hier wird das MQRFH2-Feld jms.Cid nicht verwendet. Beim dritten Wert (beliebige Zeichenfolge)
wird das MQRFH2-Feld jms.Cid verwendet. Die ersten 24 Byte
der Zeichenfolge (UTF-8-Format) werden in das MQMD-Feld CorrelID geschrieben.
Anmerkung 2: IBM MQ speichert
den Wert des Felds JMSPriority im
MQRFH2-Feld jms.Pri, verwendet aber keinen bereits in diesem Feld enthaltenen Wert.
Die Serviceintegration prüft und setzt das MQRFH2-Feld jms.Pri nicht.
Anmerkung 3: Die Serviceintegration setzt den Anzeiger JMSRedelivered für eine von
IBM MQ empfangene Nachricht auf der Basis des MQMD-Felds BackoutCount.
Ein BackoutCount-Wert ungleich null weist darauf hin, dass ein vorheriger Empfang der Nachricht rückgängig gemacht wurde.
IBM MQ-Nachrichteneigenschaften: Definierte JMS-Eigenschaften
Die folgende Tabelle veranschaulicht die
Zuordnung von definierten JMS-Eigenschaften zu MQMD- und MQRFH2-Feldern durch die Serviceintegration, wenn Nachrichten in das
IBM MQ-Format und zurück konvertiert werden.
In der Tabelle wird das MQRFH2-Feld im Format Ordner.Feld angezeigt, wobei Ordner für den Namen des MQRFH2-Ordners steht, der das Feld enthält, und Feld für den Namen des Felds im MQRFH2-Ordner.
Für mehrere definierte JMS-Eigenschaften gibt es sowohl ein MQMD-Feld als auch ein MQRFH2-Feld.
Wenn die Serviceintegration Nachrichten in das IBM MQ-Format konvertiert, setzt sie die Felder "MQMD" und "MQRFH2". Wenn die Serviceintegration Nachrichten aus dem IBM MQ-Format konvertiert,
setzt sie die definierte JMS-Eigenschaft über das MQRFH2-Feld, sofern verfügbar, und andernfalls über das
MQMD-Feld.
Tabelle 2. JMS-Eigenschaften mit MQMD- und MQRFH2-Felder. In der ersten
Spalte dieser Tabelle sind die definierten JMS-Eigenschaften aufgelistet, und in der zweiten Spalte sind die
MQMD-Felder aufgeführt, die sich auf die definierten JMS-Eigenschaften in der ersten Spalte beziehen.
In der dritten Spalte sind die MQRFH2-Felder aufgelistet, die sich auf die definierten JMS-Eigenschaften
in der ersten Spalte beziehen. Die vierte Spalte enthält Links, sofern erforderlich, zu den
Fußnoten, die unterhalb der Tabelle aufgeführt sind.Definierte JMS-Eigenschaft |
MQMD-Feld |
MQRFH2-Feld |
Anmerkungen |
JMSXAppID |
PutApplName |
|
|
JMSXDeliveryCount |
BackoutCount |
|
|
JMSXGroupID |
GroupId |
jms.Gid |
Siehe die Anmerkungen 4 und 5. |
JMSXGroupSeq |
MsgSeqNumber |
jms.Seq |
|
JMSXUserID |
UserIdentifier |
|
|
Anmerkung 4: Das MQMD-Feld GroupId kann einen
IBM MQ-Standardwert für GroupId mit
48 Hexadezimalziffern (24 Bytes) enthalten. Der JMSXGroupID-Wert kann ein Zeichenfolgewert mit Hexadezimalzeichen und dem Präfix
"ID:" oder ein beliebiger Zeichenfolgewert sein, der nicht mit "ID:" beginnt.
Der erste dieser beiden Werte stellt einen IBM MQ-Standardwert für GroupId dar und kann dem
MQMD-Feld GroupId direkt zugeordnet werden (gekürzt oder mit Nullen aufgefüllt).
Beim zweiten Wert (beliebige Zeichenfolge)
wird das MQRFH2-Feld jms.Gid verwendet. Die ersten 24 Byte
der Zeichenfolge (UTF-8-Format) werden in das MQMD-Feld GroupId geschrieben.
Anmerkung 5: Wenn die Serviceintegration
Nachrichten in das
IBM MQ-Format konvertiert und
JMSXGroupID gesetzt ist, setzt die Serviceintegration
auch das Flag
MQMF_MSG_IN_GROUP im MQMD-Feld
MsgFlags. Beim Senden von Gruppennachrichten ist zu beachten, dass die sendende JMS-Anwendung
sicherstellen muss, dass das Flag
MQMF_LAST_MSG_IN_GROUP als erforderliches Flag gesetzt wird
(siehe
IBM MQ-Nachrichteneigenschaften: Providerspezifische JMS-Eigenschaften).
IBM MQ-Nachrichteneigenschaften: Providerspezifische JMS-Eigenschaften
Die folgende Tabelle veranschaulicht die Zuordnung von providerspezifischen JMS-Eigenschaften zu MQMD- und MQRFH2-Feldern durch die Serviceintegration, wenn Nachrichten in das
WebSphere MQ-Format und zurück konvertiert werden. Normalerweise verwenden Sie diese Eigenschaften, um spezielle Voraussetzungen in der empfangenden
Anwendung zu erfüllen. Einzelheiten zu den erforderlichen Eigenschaftswert sollten Sie deshalb beim Entwickler oder Administrator der empfangenden Anwendung erfragen.
Tabelle 3. Spezielle Eigenschaften des JMS-Providers mit MQMD- und MQRFH2-Felder. In der ersten
Spalte dieser Tabelle sind die providerspezifische JMS-Eigenschaften aufgelistet, und in der zweiten Spalte sind die
MQMD-Felder aufgeführt, die sich auf die providerspezifische JMS-Eigenschaften in der ersten Spalte beziehen.
In der dritten Spalte sind die MQRFH2-Felder aufgelistet, die sich auf die providerspezifische JMS-Eigenschaften
in der ersten Spalte beziehen. Die vierte Spalte enthält Links, sofern erforderlich, zu den
Fußnoten, die unterhalb der Tabelle aufgeführt sind.Providerspezifische JMS-Eigenschaft |
MQMD-Feld |
MQRFH2-Feld |
Anmerkungen |
JMS_IBM_ArmCorrelator |
|
mqext.Arm |
Siehe die Anmerkung 6. |
JMS_IBM_Character_Set |
CodedCharacterSetId |
CodedCharacterSetId |
Siehe die Anmerkung 7. |
JMS_IBM_Encoding |
Encoding |
Encoding |
Siehe die Anmerkung 7. |
JMS_IBM_Feedback |
Feedback |
|
|
JMS_IBM_Format |
Format |
Format |
Siehe die Anmerkung 7. |
JMS_IBM_Last_Msg_In_Group |
MQMF_LAST_MSG_IN_GROUP |
|
Siehe die Anmerkung 8. |
JMS_IBM_MQMD_CorrelId |
CorrelId |
|
Siehe die Anmerkungen 9 und 10. |
JMS_IBM_MQMD_MsgId |
MsgId |
|
Siehe die Anmerkungen 9 und 11. |
JMS_IBM_MQMD_Persistence |
Persistence |
|
Siehe die Anmerkungen 9, 12 und
15. |
JMS_IBM_MQMD_ReplyToQ |
ReplyToQ |
|
Siehe die Anmerkungen 9, 13 und
16. |
JMS_IBM_MQMD_ReplyToQMgr |
ReplyToQMgr |
|
Siehe die Anmerkungen 9, 13 und
16. |
JMS_IBM_MsgType |
MsgType |
|
|
JMS_IBM_PutDate |
PutDate |
|
|
JMS_IBM_PutTime |
PutTime |
|
|
JMS_IBM_Report_* |
Report |
|
Siehe die Anmerkung 14. |
JMS_IBM_RMCorrelator |
|
mqext.Wrm |
|
JMS_TOG_ARM_Correlator |
|
mqext.Arm |
Siehe die Anmerkung 6. |
Anmerkung 6: Verwenden Sie den Namen
JMS_TOG_ARM_Correlator für den ARM-Korrelator.
Der Name JMS_IBM_ArmCorrelator ist für die Kompatibilität mit einigen vorhandenen JMS-Programmen verfügbar.
Anmerkung 7: Die Eigenschaften
JMS_IBM_Character_Set,
JMS_IBM_Encoding
und
JMS_IBM_Format können Informationen zu den Nutzdaten der
IBM MQ-Nachricht enthalten, d. h. zu dem
Teil der
IBM MQ-Nachricht, der dem MQRFH2 (sofern vorhanden) bzw. der vollständigen
IBM MQ-Nachricht, ausschließlich MQMD, falls kein MQRFH2 vorhanden ist, folgt.
Weitere Informationen zu diesen Eigenschaften und zu ihrer Verwendung finden Sie im Artikel
Konvertierung des Nachrichtenhauptteils in das und aus dem IBM MQ-Format.
Anmerkung 8: MQMF_LAST_MSG_IN_GROUP ist
eines der Flags im MQMD-Feld MsgFlags.
Anmerkung 9: Die Eigenschaften
JMS_IBM_MQMD_CorrelId,
JMS_IBM_MQMD_MsgId,
JMS_IBM_MQMD_Persistence,
JMS_IBM_MQMD_ReplyToQ
und
JMS_IBM_MQMD_ReplyToQMgr ermöglichen JMS-Anwendungen, die Standardverarbeitung der
IBM MQ-MQMD-Felder durch die Serviceintegration zu überschreiben.
Wenn die Serviceintegration Nachrichten in das
IBM MQ-Format konvertiert, setzt die Serviceintegration
das entsprechende MQMD-Feld für jede dieser Eigenschaften, falls diese Eigenschaft von der Anwendung explizit
gesetzt wird (mit
setObjectProperty() oder
setNonNullProperty()).
Die Serviceintegration setzt jede dieser Eigenschaften über das entsprechende MQMD-Feld, wenn sie eine Nachricht aus dem IBM MQ-Format konvertiert.
Anmerkung 10: Die Eigenschaft
JMS_IBM_MQMD_CorrelId
überschreibt die Standardverarbeitung der Eigenschaft
JMSCorrelationID.
Wenn die Serviceintegration Nachrichten in das
IBM MQ-Format konvertiert, setzt sie das MQMD-Feld
CorrelId auf den Wert (
byte[]) der Eigenschaft
JMS_IBM_MQMD_CorrelId, sofern diese explizit gesetzt wird, unabhängig vom Wert (sofern vorhanden)
der Eigenschaft
JMSCorrelationID.
Die Festlegung der Eigenschaft
JMS_IBM_MQMD_CorrelId hat keine Auswirkungen auf den Wert des
MQRFH2-Felds
jms.Cid.
Wenn die Serviceintegration Nachrichten aus dem IBM MQ-Format konvertiert,
setzt sie die Eigenschaft
JMS_IBM_MQMD_CorrelId auf den Wert
(byte[]) des MQMD-Felds CorrelId, unabhängig vom Wert (sofern vorhanden) des
MQRFH2-Felds jms.Cid.
Anmerkung 11: Die Eigenschaft
JMS_IBM_MQMD_MsgId
überschreibt die JMS-Standardverarbeitung der Eigenschaft
JMSMessageID.
Wenn die Serviceintegration Nachrichten in das
IBM MQ-Format konvertiert, prüft sie, ob die Eigenschaft
JMS_IBM_MQMD_MsgId explizit gesetzt wurde.
Wenn ja, setzt die Serviceintegration das MQMD-Feld
MsgId auf diesen Wert (byte[]) und ersetzt den eindeutigen Wert von
JMSMessageID, den JMS der Nachricht zuordnet.
Wenn die Serviceintegration Nachrichten aus dem IBM MQ-Format konvertiert, setzt sie die Eigenschaft JMS_IBM_MQMD_MsgId
auf den Wert (byte[]) des MQMD-Felds MsgId.
Anmerkung 12: Die Eigenschaft
JMS_IBM_MQMD_Persistence
überschreibt die Standardverarbeitung der Eigenschaft
JMSDeliveryMode.
Wenn die Serviceintegration Nachrichten in das
IBM MQ-Format konvertiert, setzt sie das
MQMD-Feld
Persistence auf den Wert (Integer) der Eigenschaft
JMS_IBM_MQMD_Persistence, sofern diese explizit gesetzt wird, unabhängig vom Wert (sofern vorhanden)
der Eigenschaft
JMSDeliveryMode.
Die Festlegung der Eigenschaft
JMS_IBM_MQMD_Persistence hat keine Auswirkungen auf den Wert des
MQRFH2-Felds
jms.Dlv.
Wenn die Serviceintegration Nachrichten aus dem IBM MQ-Format konvertiert, setzt sie die
Eigenschaft JMS_IBM_MQMD_Persistence
auf den Wert (Integer) des MQMD-Felds Persistence, unabhängig vom Wert (sofern vorhanden) des
MQRFH2-Felds jms.Dlv.
Anmerkung 13: Die Eigenschaften
JMS_IBM_MQMD_ReplyToQ und
JMS_IBM_MQMD_ReplyToQMgr
überschreiben die Standardverarbeitung der Eigenschaft
JMSReplyTO.
Wenn die Serviceintegration Nachrichten in das
IBM MQ-Format konvertiert, setzt sie
das MQMD-Feld
ReplyToQ auf den Wert (Zeichenfolge)
der Eigenschaft
JMS_IBM_MQMD_ReplyToQ, sofern diese explizit gesetzt wird, und das MQMD-Feld
ReplyToQMgr auf den Wert (Zeichenfolge) der Eigenschaft
JMS_IBM_MQMD_ReplyToQMgr, sofern diese explizit gesetzt wird,
unabhängig vom Wert (sofern vorhanden) der Eigenschaft
JMSReplyTo.
Die Festlegung der Eigenschaft
JMS_IBM_MQMD_ReplyToQ oder
JMS_IBM_MQMD_ReplyToQMgr hat keine Auswirkungen auf den Wert
des MQRFH2-Felds
jms.Rto.
Wenn die Serviceintegration Nachrichten aus dem IBM MQ-Format konvertiert, setzt sie die Eigenschaften
JMS_IBM_MQMD_ReplyToQ und JMS_IBM_MQMD_ReplyToQMgr auf die Werte (Zeichenfolge) der
MQMD-Felder ReplyToQ bzw. ReplyToQMgr, unabhängig vom Wert (sofern vorhanden) des MQRFH2-Felds jms.Rto.