Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue プログラム作成の手引


3.4.4 メッセージ形式の設定例

TP1/Message Queueが使用するメッセージの文字セット識別子およびマシンコード形式は,先頭に付加されるMQ構造体によって示されます。ここでは,アプリケーションがメッセージを転送キューに登録し,相手システムに送信されるまでのメッセージ形式の設定例について説明します。

メッセージ形式の設定例について,次の図に示します。

図3‒2 メッセージ形式の設定例

[図データ]

図中の番号について説明します。

  1. アプリケーションがMQPUT命令またはMQPUT1命令でメッセージを登録します。

    このとき,MQMD構造体のCodedCharSetIdおよびEncodingフィールドの指定を省略したとします。転送キュー上のメッセージにあるMQXQH構造体は,次に示す形式で作成されます。

    • 文字セット識別子

      キューマネジャの文字セット識別子(MQAサービス定義のmqa_local_ccsidオペランド指定値)

    • マシンコード形式

      キューマネジャが動作するコンピュータのマシンコード形式

    MQXQH構造体に格納されているMQMD構造体のフィールドは,次に示す値が設定されます。

    • CodedCharSetIdフィールド

      MQCCSI_Q_MGR(0L,X'00000000')が設定されます。

    • Encodingフィールド

      MQENC_NATIVE(計算機固有のマシンコード形式を表す値)が設定されます。

    アプリケーションがMQMD構造体のVersionフィールドにMQMD_VERSION_2を指定した場合には,MQMDE構造体がMQXQH構造体の後ろに付加されます。付加される条件については,マニュアル「TP1/Message Queue プログラム作成リファレンス」を参照してください。

    MQXQH構造体に付加されるMQMDE構造体のフィールドは,次に示す値が設定されます。

    • CodedCharSetIdフィールド

      MQCCSI_Q_MGR(0L,X'00000000')が設定されます。

    • Encodingフィールド

      MQENC_NATIVE(計算機固有のマシンコード形式を表す値)が設定されます。

  2. MQ構造体が変換されます。

    メッセージは転送キューから取り出され相手システムに送信されます。チャネルの開始時に自システム側でコード・ページ変換が必要になった場合,MQ構造体(図3-2ではMQXQHおよびMQMDE構造体)はコード・ページ変換判定結果の文字セット識別子およびマシンコード形式で作成されます。

  3. アプリケーションデータが変換されます。

    文字コード変換後の文字セット識別子(mqtalccha定義コマンドの-d cnvccsidオペランド指定値)が送信側チャネルに指定されている場合,アプリケーションデータは該当する文字セットに変換されます。このとき,MQXQH構造体に格納されているMQMD構造体のCodedCharSetIdフィールドは変換後の文字セット識別子に変更されます。

    MQMDE構造体があるときは,MQMD構造体ではなくMQMDE構造体のCodedCharSetIdフィールドが,変換後の文字セット識別子に変更されます。

図中の番号とメッセージの変更内容について,次の表に示します。

表3‒1 メッセージの変更内容

図中の番号

条件

メッセージの変更内容

MQXQH構造体の作成時に使用する形式

MQXQH構造体内のMQMD構造体のフィールド

MQMDE構造体のフィールド

アプリケーションデータ

文字コード変換指定※1

MQMDE構造体の有無

文字セット識別子

マシンコード形式

Coded

CharSetId

Enco

ding

Coded

CharSetId

Enco

ding

文字セット識別子

1.

なし

キューマネジャの文字セット識別子

コンピュータのマシンコード形式

MQCCSI_

Q_MGR

MQENC_

NATIVE

登録時の文字セット識別子

1.

あり

キューマネジャの文字セット識別子

コンピュータのマシンコード形式

MQCCSI_

Q_MGR

MQENC_

NATIVE

MQCCSI_

Q_MGR

MQENC

_NATIVE

登録時の文字セット識別子

2.

判定結果※2

判定結果※2

判定結果※2

判定結果※2

3.

なし

なし

3.

なし

あり

3.

あり

なし

変換後の文字セット識別子

変換後の文字セット識別子

3.

あり

あり

変換後の文字セット識別子

変換後の文字セット識別子

(凡例)

−:該当しません。

△:以前の状態を引き継ぎます。

注※1

mqtalccha定義コマンドの-d cnvccsidオペランドの指定です。

注※2

チャネルの開始時に自システム側でコード・ページ変換が必要になった場合,コード・ページ変換の判定結果で作成されます。