3.4.4 メッセージ形式の設定例
TP1/Message Queueが使用するメッセージの文字セット識別子およびマシンコード形式は,先頭に付加されるMQ構造体によって示されます。ここでは,アプリケーションがメッセージを転送キューに登録し,相手システムに送信されるまでのメッセージ形式の設定例について説明します。
メッセージ形式の設定例について,次の図に示します。
図中の番号について説明します。
-
アプリケーションが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(計算機固有のマシンコード形式を表す値)が設定されます。
-
-
MQ構造体が変換されます。
メッセージは転送キューから取り出され相手システムに送信されます。チャネルの開始時に自システム側でコード・ページ変換が必要になった場合,MQ構造体(図3-2ではMQXQHおよびMQMDE構造体)はコード・ページ変換判定結果の文字セット識別子およびマシンコード形式で作成されます。
-
アプリケーションデータが変換されます。
文字コード変換後の文字セット識別子(mqtalccha定義コマンドの-d cnvccsidオペランド指定値)が送信側チャネルに指定されている場合,アプリケーションデータは該当する文字セットに変換されます。このとき,MQXQH構造体に格納されているMQMD構造体のCodedCharSetIdフィールドは変換後の文字セット識別子に変更されます。
MQMDE構造体があるときは,MQMD構造体ではなくMQMDE構造体のCodedCharSetIdフィールドが,変換後の文字セット識別子に変更されます。
図中の番号とメッセージの変更内容について,次の表に示します。
図中の番号 |
条件 |
メッセージの変更内容 |
|||||||
---|---|---|---|---|---|---|---|---|---|
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. |
あり |
あり |
△ |
△ |
△ |
△ |
変換後の文字セット識別子 |
△ |
変換後の文字セット識別子 |