3 メッセージキューシステム との連携(バージョン 7 互
3.4 TP1/Message Queue または MQSeries を 使ったメッセージの送受信
3.4.4 TP1/Message Queue または MQSeries へメッセージ を送信する
3.4.4 TP1/Message Queue または MQSeries へメッセージ
注
MQMD構造体については,TP1/Message Queueと連携する場合はマニュアル「OpenTP1 Version 5 分散トランザクション処理機能 OpenTP1 メッセージキューイング機能TP1/Message Queue 使用の手引」を,MQSeriesと連携する場合はMQSeriesのドキュメントを参照してく ださい。
(3) メッセージ送信の定義例
ここでは,MQSeriesを使った場合のメッセージ送信の定義例を説明します。
この例でのシステム構成を次の図に示します。
Persistence メッセージ永続性 ユーザー指定
MsgId メッセージ識別子 ユーザー指定
CorrelId 相関識別子 ユーザー指定
BackoutCount ロールバック回数 0
ReplyToQ 応答キュー名 なし
ReplyToQMgr 応答キューマネージャー名 キューマネージャーによって設定された
値
UserIdentifier ユーザー識別子 なし
AccountingToken 課金トークン MQACT_NONE(初期値)
ApplIdentityData アプリケーション識別データ UNIX版のMQSeries連携の場合:
文字列"JPOSENDMQ jposendmq"
UNIX版のTP1/Message Queue連携の 場合:
文字列"JPOAOMMQ jpoaommq"
PutApplType 登録アプリケーションタイプ キューマネージャーによって設定された
値
PutApplName 登録アプリケーション名 キューマネージャーによって設定された
値
PutDate 登録日付 メッセージが送信された日付
PutTime 登録時刻 メッセージが送信された時刻
ApplOriginData 登録元データ 空白
フィールド 内容 値
図3-7 メッセージ送信の定義例
この図の例での,メッセージ送信の定義例を説明します。
他ホストにメッセージを送信する場合の例
JP1/AJS2 - Managerホストにあるデフォルトキュー管理プログラム(QM1)で認 識できる,他ホストのキュー管理プログラム(RQM)のキュー(RQMQ)へメッ セージを送信する場合の定義内容を次の表に示します。
表3-8 他ホストにメッセージを送信する定義例
項目名 定義内容
キュー名 RQMQ
相関識別子 CORRELATION
メッセージ識別子 MES01
キュー管理プログラム名 RQM
形式名 TESTFORM
メッセージデータファイル名 /usrdisk/user/msg_queue
自ホストのメッセージキューにメッセージを送信する場合の例
自ホストのキュー管理プログラム(QM2)のキュー(QM2Q)にメッセージを送信 する場合の定義内容を次の表に示します。
表3-9 自ホストにメッセージを送信する定義例
(4) メッセージ送信時の注意事項
メッセージ送信時の注意事項を次に示します。
送信される相関識別子・メッセージ識別子
送信される相関識別子とメッセージ識別子が24バイト未満の場合は,ASCIIでは NULL(「00」)で,EBCDICでは半角スペース(「40」)で不足分を埋めて送信され ます。送信先で,相関識別子またはメッセージ識別子を使用して受信するように設 定されている場合は,この形式で送信したメッセージを受信できるように設定して おいてください。
メッセージ送信失敗時のデッドレターキュー(送達不能キュー)へのメッセージ送信 環境設定でデッドレターキュー(送達不能キュー)が定義されている場合,次のよ うな事象が発生すると,デッドレターキュー(送達不能キュー)にメッセージが送 信されます。
• 指定されたメッセージキューのオープンに失敗した。
• 指定されたメッセージキューへのメッセージ送信に失敗した。
なお,1回目の処理で,デッドレターキュー(送達不能キュー)への送信が失敗し た場合,送信処理が再実行されます。ただし,TP1/Message Queueまたは
MQSeriesで「キュー管理プログラムと接続不能」または「使用可能なハンドルが
なくなった」のエラーが発生した場合を除きます。
また,デッドレターキュー(送達不能キュー)に最大値以上のメッセージが格納さ れている場合,デッドレターキュー(送達不能キュー)へ送信できません。定期的 にデッドレターキュー(送達不能キュー)を管理してください。
デッドレターキュー(送達不能キュー)名 DEADQUEUE
存続時間 120
優先順位 1
持続性 なし
項目名 定義内容
キュー名 QM2Q
相関識別子 CORRELATION
メッセージ識別子 MES02
接続キュー管理プログラム名 QM2
項目名 定義内容
デッドレターキュー(送達不能キュー)に送信されるメッセージに設定される値を 次の表に示します。
表3-10 デッドレターキュー(送達不能キュー)に送信されるメッセージの値
注
格納される初期値や仮定値については,TP1/Message Queueと連携する場合はマニュアル
「OpenTP1 Version 5 分散トランザクション処理機能 OpenTP1 メッセージキューイング機能 TP1/Message Queue MQI 解説・文法編」を,MQSeriesと連携する場合はMQSeriesのドキュ メントを参照してください。
フィールド 内容 設定される値
StrucId 構造体識別子 システムの仮定値
Version 構造体バージョン情報 システムの仮定値
Reason デッドレターキュー(送達不能
キュー)になった理由
指定されたキューのMQOPEN,または MQPUTの理由コード
DestQName 送信元の宛先キュー名 -qオプションで指定されたキュー名
DestQMgrName 送信元の宛先キューマネージャー名 -uオプションで指定されたキューマネー
ジャー名
Encoding 送信元のマシンコード形式 送信したメッセージのマシンコード形式
CodedCharSetId 送信元の文字セット識別名 送信したメッセージの文字セット識別名
Format 送信元のフォーマット名 送信したメッセージのフォーマット名
PutApplType デッドレターキュー(送達不能
キュー)にメッセージを出力するア プリケーションタイプ
初期値
PutApplName デッドレターキュー(送達不能
キュー)にメッセージを出力するア プリケーションの名前
初期値
PutDate メッセージがデッドレターキュー
(送達不能キュー)に出力された日 付
デッドレターキュー(送達不能キュー)
へのメッセージ送信時に求めた日付
PutTime メッセージがデッドレターキュー
(送達不能キュー)に出力された時 間
デッドレターキュー(送達不能キュー)
へのメッセージ送信時に求めた時間