BITSTREAM gibt einen Wert des Typs BLOB zurück, der den Bitstrom darstellt, der durch
das angegebene Feld und dessen untergeordnete Elemente beschrieben wird. Für ankommende
Nachrichten wird der entsprechende Teil des eingehenden Bitstroms verwendet. Für Nachrichten, die
von Rechenknoten erstellt werden, wird der folgende Algorithmus zum Erstellen von ENCODING, CCSID,
Nachrichtengruppe, Nachrichtentyp und Nachrichtenformat verwendet:
- Wenn das adressierte Feld ein vorhergehendes gleichgeordnetes Element besitzt und dieses
Element das Stammverzeichnis einer Unterverzeichnisstruktur ist, die zu einem Parser gehört, der
Werte für ENCODING und CCSID zur Verfügung stellen kann, werden diese Werte übernommen und zum
Generieren des erforderlichen Bitstroms verwendet. Andernfalls werden die ENCODING- und
CCSID-Standardwerte des Brokers (d. h. die seines Warteschlangenmanagers) verwendet.
- Entsprechend gilt: Wenn das adressierte Feld ein vorhergehendes gleichgeordnetes Element
besitzt und dieses Element das Stammverzeichnis einer Unterverzeichnisstruktur ist, die zu einem
Parser gehört, der Werte für Nachrichtengruppe, -typ und -format zur Verfügung stellen kann, werden
diese Werte übernommen und zum Generieren des erforderlichen Bitstroms verwendet. Andernfalls
werden Zeichenfolgen mit Nulllänge verwendet.
Diese Funktion kommt typischerweise in Data-Warehouse-Szenarios zum Einsatz, wo der
Bitstrom einer Nachricht in einer Datenbank gespeichert werden muss. Die Funktion gibt den Bitstrom
des physischen Teils der ankommenden Nachricht, der durch den Parameter identifiziert wird, zurück.
In einigen Fällen wird nicht der Bitstrom zurückgegeben, der das aktuell identifizierte Feld
darstellt. Beispielsweise geben die folgenden zwei Aufrufe denselben Wert zurück:
BITSTREAM(Root.MQMD);
BITSTREAM(Root.MQMD.UserIdentifier);
Der Grund dafür ist, dass sie im selben
Teil der Nachricht liegen.