WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

JMS ノードでのバイト・メッセージの処理

バイト・メッセージを処理するときの WebSphere® Message Broker のデフォルト動作のために、readUTF() および writeUTF() メソッドを使うよう設計されたクライアントが影響を受ける可能性があります。 Compute ノードを使用して、同等の UTF ビット・ストリームを構成します。

デフォルトでは、WebSphere Message Broker は JMS メソッド readBytes() および writeBytes() を使ってバイト・メッセージを処理します。 これらのメソッドを使用することで、ペイロードはロー・バイト配列として書き込まれ、読み取られます。 入力メッセージでは、この動作はメッセージ・ツリーの直列化に基づいています。 出力メッセージでは、結果として生成されるビット・ストリームがユーザー指定のパーサーに渡され、論理ツリーが構成されます。

この動作のために、readUTF() および writeUTF() メソッドを使うよう設計されたクライアントが影響を受ける可能性があります。 UTF ストリングには、エンコードされた長さ情報とロー・ビット・ストリームが格納されます。 readUTF() メソッドで読み取り可能な同等の UTF ビット・ストリームを構成するには、以下のステップを実行します。

  1. Compute ノードを、JMSOutput ノードの直前に追加します。
  2. Compute ノードをダブルクリックして、対応する ESQL ファイルを開きます。
  3. 以下の例に示される ESQL を使用して、XMLNSC 入力メッセージから同等の UTF ビット・ストリームを構成します。 readUTF() メッセージを使用するクライアントは、このビット・ストリームを認識することができます。
    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 ;
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

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

        
        最終更新:
        
        最終更新: 2015-02-28 17:48:37


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | bc23530_