Konvertierung der Nachrichtenheaderfelder und -eigenschaften in das und aus dem IBM MQ-Format

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.

Anmerkung 14: Eine Liste der Eigenschaften JMS_IBM_Report_* finden Sie im Artikel Felder von MQMD-Berichten JMS-providerspezifischen Eigenschaften zuordnen.
Anmerkung 16: Weitere Informationen finden Sie im Artikel Ziele IBM MQ-Warteschlangen, -Topics und -Zielen zuordnen und umgekehrt.

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rjc0007_
Dateiname:rjc0007_.html