• 検索結果がありません。

TP1/Message Queue または MQSeries へメッセージ を送信する

ドキュメント内 JP1/Automatic Job Management System 2 連携ガイド (ページ 101-106)

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 メッセージがデッドレターキュー

(送達不能キュー)に出力された時

デッドレターキュー(送達不能キュー)

へのメッセージ送信時に求めた時間

ドキュメント内 JP1/Automatic Job Management System 2 連携ガイド (ページ 101-106)