WebSphere MQでは、WebSphere MQアプリケーションがメッセージをキューに格納する際に、ユーザデータの先頭にメッセージヘッダ(MQMD)が設定されています。
InterstageにはMQMDを削除したり、MQMDを付加する機能がないため、UNIXサーバのMQDBRIDGEシステムがMQMDを削除したり、MQMDを付加します。
ここでは、MQMDに関するメッセージ交換の使用方法を以下の順に説明します。
MQMD無しのメッセージ交換
MQMD付きのメッセージ交換
MQMD無しのメッセージ交換は、InterstageアプリケーションでMQMDを引き継がないメッセージ交換の場合に適用します。
MVSシステムのMQDBRIDGEシステムから送信されてくるMQMD付きのユーザデータに対して、UNIXサーバのMQDBRIDGEシステムはMQMDを削除してInterstageの受信用キューに格納します。また、UNIXサーバのMQDBRIDGEシステムはInterstageの送信用キューに格納されているMQMD無しのユーザデータにMQMDを付加して、MVSシステムのMQDBRIDGEシステムに送信します。
また、取り扱うMQMDのバージョンは、バージョン1、およびバージョン2のいずれかを付加します。
MQMDのバージョンの定義はMQDBRIDGEシステムの起動パラメタのセクション定義で指定します。セクション定義の詳細は、“3.2.2.3 セクション定義”を参照してください。
図2.4 MQMD無しのメッセージ交換の処理シーケンスに、MQMD無しのメッセージ交換の処理シーケンスを示します。
図2.4 MQMD無しのメッセージ交換の処理シーケンス
MQMDをユーザデータに付加しない場合の定義はMQDBRIDGEシステムの起動パラメタのセクション定義で指定します。セクション定義の詳細は、“3.2.2.3 セクション定義”を参照してください。
MQMD付きのメッセージ交換は、InterstageアプリケーションでMQMDを引き継ぐメッセージ交換の場合に適用します。
MVSシステムのMQDBRIDGEシステムから送信されてくるMQMD付きのユーザデータに対して、UNIXサーバのMQDBRIDGEシステムはMQMDを付加したままInterstageの受信用キューに格納します。また、UNIXサーバのMQDBRIDGEシステムは、Interstageの送信用キューに格納されているMQMDが付加されているユーザデータを、MVSシステムのMQDBRIDGEシステムに送信します。
また、取り扱うMQMDのバージョンは、バージョン1、およびバージョン2のいずれかを付加します。
MQMDのバージョンの定義はMQDBRIDGEシステムの起動パラメタのセクション定義で指定します。セクション定義の詳細は、“3.2.2.3 セクション定義”を参照してください。
図2.5 MQMD付きのメッセージ交換の処理シーケンスに、MQMD付きのメッセージ交換の処理シーケンスを示します。
図2.5 MQMD付きのメッセージ交換の処理シーケンス
MQMDをユーザデータに付加する場合の定義はMQDBRIDGEシステムの起動パラメタのセクション定義で指定します。セクション定義の詳細は、“3.2.2.3 セクション定義”を参照してください。
表2.1 MQDBRIDGEシステムが自動生成するMQMDの内容に、MQDBRIDGEシステムが自動生成するMQMDの内容を示します。MQMDの詳細については、IBM社のWebSphere MQ関連マニュアルを参照してください。
フィールド名 | フィールド説明 | 自動生成値 |
StrucId | 構造体ID | MQMD_STRUC_ID |
Version | 構造体のバージョン番号 | バージョン1を指定した場合:MQMD_VERSION_1 |
Report | 報告メッセージのオプション | MQRO_NONE |
MsgType | メッセージのタイプ | MQMT_DATAGRAM |
Expiry | メッセージ在続時間 | MQEI_UNLIMITED |
Feedback | フィードバック・コード | MQFB_NONE |
Encoding | データのコード化方式 | MQENC_NATIVE |
CodedCharSetId | コード化文字セットID | MQCCSI_Q_MGR |
Format | 形式名 | MQFMT_NONE |
Priority | メッセージの優先順位 | MQPRI_PRIORITY_AS_Q_DEF |
Persistence | メッセージの持続性 | MQPER_PERSISTENCE_AS_Q_DEF |
MsgId | メッセージID | MQMI_NONE |
CorrelId | 相関ID | MQCI_NONE |
BackoutCount | バックアウト・カウンター | 0 |
ReplyToQ | 応答キューの名前 | 空白 |
ReplyToQMgr | 応答先キューマネージャの名前 | 空白 |
UserIdendifier | ユーザID | 空白 |
AccountingToken | 会計トークン | MQACT_NONE |
ApplIdentityData | 識別に関係するアプリケーション・データ | 空白 |
PutApplType | メッセージが書き込まれたアプリケーションのタイプ | MQAT_NO_CONTEXT |
PutApplName | メッセージが書き込まれたアプリケーションの名前 | 空白 |
PutDate | メッセージが書き込まれた日付 | 空白 |
PutTime | メッセージが書き込まれた時刻 | 空白 |
ApplOriginData | 起点に関連するアプリケーション・データ | 空白 |
以下はバージョン2を指定した場合に付加されるフィールドです | ||
フィールド名 | フィールド説明 | 自動生成値 |
GroupId | グループID | MQGI_NONE |
MsgSeqNumber | メッセージ順序番号 | 1 |
Offset | オフセット | 0 |
MsgFlags | メッセージ・フラグ | MQMF_NONE |
OriginalLength | 元のメッセージの長さ | MQOL_UNDEFINED |