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

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

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

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

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

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

WebSphere Event 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 MQ メッセージである場合、WebSphere MQ データ変換出口を使用できます。 メッセージが WebSphere MQ メッセージでなくテキストのみである場合、またはテキストと数値である場合、独自の送信または受信アプリケーションによって呼び出されたプロシージャーを使用することが必要です。

  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 およびエンコードを設定してください。
関連概念
メッセージ・フローの概要
エンド・ユーザー・アプリケーションのサポート
関連タスク
メッセージ・フローの設計
メッセージ・フローの作成
メッセージ・フローの内容の定義
エンド・ユーザー・アプリケーションのサポート
関連資料
組み込みノード
サポートされるコード・ページ
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2005 Last updated: 10/31/2005
ac12380_