データ変換のメッセージ・フローの構成

何らかの方法で、非互換システム上で稼働しているアプリケーション間でメッセージを交換する場合、メッセージがブローカーを通過する際にデータ変換を行うよう、ご使用のシステムを構成することができます。 送信側と受信側のシステム上で、次の 2 つの値のいずれかが異なっている場合には、データ変換が必要かもしれません。

  1. CCSID。 コード化文字セット ID は、コード化文字とそのコード・ポイント割り当てのセットを参照します。 WebSphere Message Broker は、すべてのオペレーティング・システム上で、WebSphere MQ がユニコードとの変換を行う、どのコード・ページのアプリケーション・メッセージをも、処理および構成することができます。 コード・ページ・サポートの詳細については、「WebSphere MQ アプリケーション・プログラミング解説書」を参照してください。

    WebSphere Message Broker と一緒に他の製品を使用する場合、この性質は影響を受ける場合があります。 コード・ページのサポートに関するさらに詳しい情報が必要な場合は、使用するデータベースを含め、他の製品の資料を調べてください。

  2. エンコード。 これは、マシンが数をエンコードする仕方を定義します。 2 進整数、パック 10 進整数、および浮動小数点数があります。 文字として表現される数は、他のすべてのストリング・データと同様に処理されます。

送信側および受信側のシステム上のネイティブの CCSID およびエンコードが同じ場合には、データ変換処理を呼び出す必要はありません。

WebSphere Message Broker および WebSphere MQ は、非類似システム間でのメッセージ交換をサポートする、データ変換機能を提供します。 どの機能を使用するかの選択は、メッセージ・フローによって処理されるメッセージの特性に左右されます。

テキストのみを含むメッセージ

使用するメッセージがすべてテキスト (文字データまたはストリング) WebSphere MQ メッセージである場合、このセクションをお読みください。 WebSphere MQ が、データ変換を行うために送信側と受信側の両方のアプリケーションが稼働しているシステムをサポートしている場合には、WebSphere MQ 機能を使用してください。 これは、最も効率的なデータ変換オプションを提供します。

WebSphere MQ のデフォルトの振る舞いでは、ローカル・システム CCSID およびエンコードを指定するキューにメッセージを置きます。 MQGET を発行するアプリケーションは、キュー・マネージャーがそのローカル CCSID およびエンコードへの変換を、get 処理の一部として提供することを要求することができます。

次のようにして、このオプションを使用します。

  1. メッセージがテキストのみになるよう設計します。 COBOL を使用している場合には、数値フィールドを USAGE DISPLAY に移動して、それらをストリングの形式にしてください。
  2. MQMD の Format フィールドを MQFMT_STRING (値 MQSTR) に設定します。
  3. 受信側アプリケーションで、MQGMO_CONVERT を指定して MQGET を発行します。 望むなら、メッセージがブローカーによって受け取られるときに、変換することができます。それは、MQInput ノードの「変換」 プロパティーを「はい」に設定する (チェック・ボックスを選択する) ことによって行います。

この方法で WebSphere MQ が提供するものよりも高度なデータ変換が必要な場合には (例えば、サポートされないコード・ページへの変換)、WebSphere MQ データ変換出口を使用してください。 これらの詳細については、「WebSphere MQ アプリケーション・プログラミング解説書」を参照してください。

数値を含むメッセージ

メッセージに数値データが含まれる場合、またはテキストのみだが WebSphere MQ メッセージではない場合、このセクションをお読みください。 これらのメッセージを事前定義できる場合 (つまり、その内容および構造が既知であり予測可能な場合) には、WebSphere Message Broker および MRM の提供する機能を使用してください。

すべてのアプリケーション・メッセージは、ブローカーによって Unicode で処理されます。 入力時に Unicode に変換されて、出力時に Unicode から変換されます。 出力メッセージが構成される仕方に影響を及ぼすように、メッセージ・フローを構成できます。

次のようにして、このオプションを使用します。

  1. 出力メッセージを MRM ドメインで定義する。 以下のいずれかの方法で、この定義を作成することができます。
    • 外部メッセージ定義 (例えば C ヘッダーまたは COBOL コピーブック) をインポートします。
    • メッセージ定義エディターでメッセージ・モデルを作成します。
  2. このメッセージを受け取って処理するように、メッセージ・フローを構成します。
    1. MQInput ノードを組み込む場合には、このノードによって変換を要求しないでください。
    2. Compute ノードをメッセージ・フローに組み込んで、必要な内容とともに出力メッセージを作成してください。
      • 出力メッセージが WebSphere MQ メッセージである場合には、Compute ノードで ESQL をコード化し、MQMD 内のターゲット・システム用の CCSID およびエンコードを設定してください。

        例えば、次のようにして、実行するターゲット z/OS システムの値を、CCSID 37 およびエンコード 785 に設定します。

        SET OutputRoot.MQMD.CodedCharSetId = 37;
        SET OutputRoot.MQMD.Encoding = 785;
      • 出力メッセージが WebSphere MQ メッセージでない場合には、Compute ノードで ESQL をコード化し、「プロパティー」フォルダーでターゲット・システム用の CCSID およびエンコードを設定してください。
自己定義メッセージ

メッセージが自己定義である場合、このセクションをお読みください。

XML および JMS ドメイン内では自己定義メッセージがサポートされます。 これらのメッセージはすべてテキストです。それらが WebSphere MQ アプリケーションから発生するか、またはそれに送られる場合には WebSphere MQ が処理することができます。 そうでない場合は、メッセージが Compute ノードを通過するときに、メッセージ内の「プロパティー」フォルダーの 「CCSID およびエンコード」フィールドを設定することによって、WebSphere Message Broker 機能を使用します。

関連概念
事前定義および自己定義メッセージ
メッセージ・フローの概要
エンド・ユーザー・アプリケーションのサポート
関連タスク
メッセージ・フローの設計
コード・ページおよびメッセージ・エンコードの変換
メッセージ・フローの作成
メッセージ・フローの内容の定義
エンド・ユーザー・アプリケーションのサポート
関連資料
組み込みノード
サポートされるコード・ページ
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ac12380_