MQRFH2-Struktur

Der Header MQRFH2 enthält Informationen über die Struktur einer Nachricht und über ihre beabsichtigten Empfängern, damit ein Nachrichtenbroker die Nachricht verarbeiten und an diese Empfänger zustellen oder veröffentlichen kann.

Der Wert 'MQRFH2' muss im Format-Feld des vorhergehenden Headers (normalerweise MQMD) stehen. Die Konstante MQFMT_RF_HEADER_2 wird mit diesem Wert definiert.

Für die Programmiersprache C wird außerdem die Konstante MQFMT_RF_HEADER_2_ARRAY definiert. Diese Konstante hat denselben Wert wie MQFMT_RF_HEADER_2, ist jedoch keine Zeichenfolge, sondern eine Feldgruppe.

Für die Felder im Header MQRFH2 gilt Folgendes hinsichtlich Zeichensatz und Codierung:

Der Header MQRFH2 enthält die folgenden Felder:

Feldname Beschreibung: Details
StrucId Struktur-ID

Der Wert muss MQRFH_STRUC_ID sein. Dies ist die ID für die Headerstruktur (Regeln und Formatierung).

In der Programmiersprache C wird außerdem die Konstante MQRFH_STRUC_ID_ARRAY definiert. Diese Konstante hat denselben Wert wie MQRFH_STRUC_ID, ist jedoch keine Zeichenfolge, sondern eine Feldgruppe.

Version Versionsnummer der Struktur

Der Wert muss MQRFH_VERSION_2 sein, der für die Version-2-Headerstruktur (Regeln und Formatierung) steht.

Struclength Gesamtlänge des MQRFH2-Headers (einschließlich NameValueData)

Der Anfangswert dieses Feldes ist MQRFH_STRUC_LENGTH_FIXED_2, was der Länge des festen Teils der MQRFH2-Headerstruktur entspricht.

Dies ist die Länge der MQRFH2-Headerstruktur in Bytes, einschließlich aller NameValueLength- und NameValueData-Felder am Ende der Struktur.

Am Ende der Struktur können mehrere Paare mit diesen Feldern in folgender Reihenfolge stehen: Länge1, Daten1, Länge2, Daten2, ....... Die Länge von Benutzerdaten, die nach dem letzten NameValueData-Feld am Ende der Struktur folgen, ist nicht in StrucLength eingeschlossen.

Anmerkung: Wenn Struclength nicht ein Mehrfaches von vier ist, können in einigen Systemumgebungen Probleme bei der Konvertierung von Benutzerdaten auftreten.
Encoding Numerische Codierung von Daten, die nach NameValueData folgen

Der Anfangswert dieses Feldes ist MQENC_NATIVE.

Dieses Feld legt fest, wie numerische Werte in Daten, die nach dem Feld NameValueData folgen, dargestellt werden. Dies gilt für binäre Ganzzahlen, gepackt dezimale Ganzzahlen und Fließkommadaten.

CodedCharSetId Zeichensatz-ID für Daten, die nach NameValueData folgen

Der Anfangswert dieses Feldes ist MQCCSI_INHERIT, d. h., die Zeichensatz-ID ist dieselbe wie die der aktuellen Struktur.

Dieses Feld identifiziert den codierten Zeichensatz für alle Zeichenfolgen in den Daten, die nach dem letzten NameValueData-Feld folgen.

Format Formatname für Daten, die nach NameValueData folgen

Der Anfangswert dieses Feldes ist MQFMT_NONE.

Dieses Feld gibt den Formatnamen für alle Daten an, die nach dem letzten NameValueData-Feld folgen. Der Name muss bis zur Länge des Feldes mit Leerzeichen aufgefüllt werden.

Anmerkung: Setzen Sie kein Nullzeichen, um den Namen vor Ende des Feldes zu beenden. Der Warteschlangenmanager ändert das Nullzeichen im MQRFH2-Header (bzw. jedes Zeichen, das nach dem Nullzeichen folgt) nicht in ein Leerzeichen.
Anmerkung: Geben Sie keinen Namen mit führenden oder eingebetteten Leerzeichen an.
Flags Flags

Der Anfangswert dieses Feldes ist MQRFH_NONE, d. h., es sind keine Flags vorhanden.

NameValueCCSID Zeichensatz-ID für NameValueData

Der Anfangswert dieses Feldes ist 1208, d. h., es wird der codierte UTF-8-Zeichensatz verwendet.

Dieses Feld bestimmt den codierten Zeichensatz für Daten im Feld NameValueData. Dieser Zeichensatz unterscheidet sich von dem für andere Zeichenfolgen in der MQRFH2-Headerstruktur und kann sich vom Zeichensatz für alle Daten, die nach dem letzten NameValueData-Feld folgen, unterscheiden.

NameValueCCSID muss einen der folgenden Werte enthalten:

1200: UCS-2 open-ended

1208: UTF-8

13488: UCS-2 2.0 Subset

17584: UCS-2 2.1 Subset (einschließlich Euro-Symbol €)

Für die UCS-2-Zeichensätze muss die Codierung (Byteanordnung) des Feldes NameValueData mit der Codierung der anderen Felder in der MQRFH2-Headerstruktur identisch sein.

Anmerkung: Ersatzzeichen (X'D800' bis X'DFFF') werden nicht unterstützt.

Die beiden folgenden Felder sind optional. Wenn Sie angegeben werden, müssen sie immer als Paar angegeben werden. Als Paar können sie beliebig oft wiederholt werden.

Wenn diese Felder mehrfach angegeben werden, muss folgende Reihenfolge eingehalten werden: ..... Länge1, Daten1, Länge2, Daten2, .......

NameValueLength Länge von NameValueData

Dieses Feld gibt die Länge des Feldes NameValueData, das nach diesem Feld folgt, in Bytes an.

Anmerkung: Wenn NameValueLength nicht ein Mehrfaches von vier ist, kann bei der Konvertierung der Daten, die nach dem Feld NameValueData folgen, ein Problem auftreten.
NameValueData Dies ist eine Zeichenfolge variabler Länge mit Daten, die unter Verwendung einer XML-ähnlichen Struktur codiert wurden.

Die Länge dieser Zeichenfolge in Bytes ist durch das Feld NameValueLength, das dem Feld NameValueData vorausgeht, festgelegt.

Sie können das in der Anmerkung zur Beschreibung des Feldes NameValueLength geschilderte Problem vermeiden, indem Sie dieses Feld entweder mit Leerzeichen auffüllen, so dass die Länge ein Mehrfaches von vier ist, oder das Feld mit einem Nullzeichen beenden.

Definition in Programmiersprache C

Die folgende Struktur ist in der Headerdatei cmqc.h, die mit WebSphere MQ geliefert wird, definiert. Die im Feld NameValueData verwendeten Konstanten sind in der Headerdatei BipRfc.h, die mit WebSphere Message Broker geliefert wird, definiert.
typedef struct tagMQRFH2 {
  MQCHAR4  StrucId;         /*  Struktur-ID                                 */
  MQLONG   Version;         /*  Versionsnummer der Struktur                 */
  MQLONG   StrucLength;     /*  Gesamtlänge von MQRFH2 einschließlich
                                 NameValueData folgen                       */
  MQLONG   Encoding;        /*  Numerische Codierung von Daten, die nach
                                 NameValueData folgen                       */
  MQLONG   CodedCharSetId;  /*  Zeichensatz-ID für Daten, die nach
                                 NameValueData folgen                       */
  MQCHAR8  Format;          /*  Formatname für Daten, die nach
                                 NameValueData folgen                       */
  MQLONG   Flags;           /*  Flags                                       */
  MQLONG   NameValueCCSID;  /*  Zeichensatz-ID für NameValueData            */
 } MQRFH2;
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
aq06930_