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

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

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

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

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

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

WebSphere Business Integration 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 ノードの「変換 (Convert)」 プロパティーを「はい (yes)」に設定する (チェック・ボックスを選択する) ことによって行います。

この方法で 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 をコード化し、 「プロパティー (Properties)」フォルダーでターゲット・システム用の CCSID およびエンコードを設定してください。

関連概念
メッセージ・フロー
エンド・ユーザー・アプリケーションのサポート

関連タスク
メッセージ・フローの設計
メッセージ・フローの作成
メッセージ・フローの内容の定義
エンド・ユーザー・アプリケーションのサポート

関連資料
組み込みノード

WebSphere MQ ライブラリー Web ページ (WebSphere MQ library Web page)