WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Bytenachrichten mit JMS-Knoten verarbeiten

Das Standardverhalten von WebSphere Message Broker bei der Verarbeitung von Bytenachrichten kann Auswirkungen auf Clients haben, die für die Verwendung der Methoden 'readUTF()' und 'writeUTF()' ausgelegt sind. Erstellen Sie unter Verwendung des Compute-Knotens einen entsprechenden UTF-Bitstrom.

Standardmäßig verwendet WebSphere Message Broker für die Verarbeitung von Bytenachrichten die JMS-Methoden 'readBytes()' und 'writeBytes()'. Bei Verwendung dieser Methoden werden die Nutzdaten als unformatierte Bytefeldgruppe geschrieben bzw. gelesen. Bei der Eingabenachricht basiert das Verhalten auf der Serialisierung der Nachrichtenbaumstruktur; bei der Ausgabenachricht wird der resultierende Bitstrom zum Aufbau einer logischen Baumstruktur an den benutzerdefinierten Parser übergeben.

Dieses Verhalten kann Auswirkungen auf Clients haben, die für die Verwendung der Methoden 'readUTF()' und 'writeUTF()' ausgelegt sind. Eine UTF-Zeichenfolge enthält neben dem unformatierten Bitstrom codierte Längenangaben. So erstellen Sie einen entsprechenden UTF-Bitstrom, der von der Methode 'readUTF()' gelesen werden kann:

  1. Fügen Sie unmittelbar vor einem JMSOutput-Knoten einen Compute-Knoten ein.
  2. Klicken Sie doppelt auf den Compute-Knoten, um die entsprechende ESQL-Datei zu öffnen.
  3. Erstellen Sie unter Verwendung der ESQL-Datei aus dem folgenden Beispiel einen äquivalenten UTF-Bitstrom aus einer XMLNSC-Eingabenachricht. Dieser Bitstrom ist für einen Client, welcher die Methode 'readUTF()' verwendet, verständlich.
    CALL CopyMessageHeaders();
    
    DECLARE byteData BLOB ASBITSTREAM (InputRoot.XMLNSC ccsid
    InputProperties.CodedCharSetId);
    DECLARE stringData CHARACTER CAST(byteData AS CHARACTER ccsid
    InputProperties.CodedCharSetId);
    DECLARE dataLen INTEGER LENGTH (byteData);
    
    DECLARE blobLen BLOB CAST(dataLen AS BLOB ENCODING
    InputProperties.Encoding);
    DECLARE str2byteBlobLen CHARACTER SUBSTRING (CAST(blobLen AS
    CHARACTER) FROM 15 FOR 4);
    
    SET OutputRoot.BLOB.BLOB = CAST(str2byteBlobLen as BLOB) ||
    byteData ;
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:22:31


TaskthemaTaskthema | Version 8.0.0.5 | bc23530_