TP1/Message Queueが使用するメッセージの文字セット識別子およびマシンコード形式は,先頭に付加されるMQ構造体によって示されます。ここでは,アプリケーションがメッセージを転送キューに登録し,相手システムに送信されるまでのメッセージ形式の設定例について説明します。
メッセージ形式の設定例について,次の図に示します。
図3-2 メッセージ形式の設定例
![[図データ]](figure/zu030150.gif)
図中の番号について説明します。
- アプリケーションが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フィールドが,変換後の文字セット識別子に変更されます。
図中の番号とメッセージの変更内容について,次の表に示します。
表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
- チャネルの開始時に自システム側でコード・ページ変換が必要になった場合,コード・ページ変換の判定結果で作成されます。