BITSTREAM gibt einen Wert vom Typ BLOB zurück, der den Bitstrom darstellt, der von dem angegebenen Feld und seinen untergeordneten Elementen beschrieben wird. Für ankommende Nachrichten wird der entsprechende Teil des eingehenden Bitstroms verwendet. Für von Rechenknoten erstellte Nachrichten wird zur Erstellung der Codierung (ENCODING), der
CCSID, der Nachrichtengruppe, des Nachrichtentyps und des Nachrichtenformats der folgende Algorithmus verwendet:
- Wenn das adressierte Feld über ein vorheriges gleichgeordnetes Element verfügt und dieses gleichgeordnete Element die der Stamm (Root) einer untergeordneten Baumstruktur ist, die zu einem Parser gehört, der eine Codierung (ENCODING) und eine CCSID bereitstellen kann, werden diese Werte abgerufen und verwendet, um den angeforderten Bitstrom zu erstellen. Andernfalls werden die Standardwerte des Brokers für ENCODING und CCSID verwendet (d. h. die Werte seines WS-Managers).
- Wenn das adressierte Feld über ein vorheriges gleichgeordnetes Element verfügt und dieses gleichgeordnete Element der Stamm (Root) einer untergeordneten Baumstruktur ist, die zu einem Parser gehört, der eine Nachrichtengruppe, einen Nachrichtentyp und ein Nachrichtenformat bereitstellen kann, werden diese Werte dementsprechend abgerufen und verwendet, um den angeforderten Bitstrom zu erstellen. Andernfalls werden Nulllängenzeichenfolgen verwendet.
Diese Funktion wird normalerweise für Nachrichtenwarehouseszenarios verwendet, bei denen der Bitstrom einer Nachricht in einer Datenbank gespeichert werden muss. Die Funktion gibt den Bitstrom des physischen Teils der ankommenden Nachricht zurück, der durch den Parameter angegeben wird. In manchen Fällen, wird nicht der Bitstrom zurückgegeben, der das eigentliche angegebene Feld darstellt. Die folgenden beiden Aufrufe geben beispielsweise denselben Wert zurück:
BITSTREAM(Root.MQMD);
BITSTREAM(Root.MQMD.UserIdentifier);
Dies ist darauf zurückzuführen, dass sie sich in demselben Teil der Nachricht befinden.