JP1/Automatic Job Management System 2 連携ガイド

[目次][用語][索引][前へ][次へ]


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

TP1/Message QueueまたはMQSeriesのメッセージキューにメッセージを送信します。

送信したメッセージは,MQMD構造体としてメッセージキューシステムの送信先キューに格納されます。メッセージキューに送信したメッセージは,アプリケーションプログラムで利用できます。

<この項の構成>
(1) メッセージ送信の定義方法
(2) 送信するメッセージの形式
(3) メッセージ送信の定義例
(4) メッセージ送信時の注意事項

(1) メッセージ送信の定義方法

メッセージ送信をJP1/AJS2のアクションとして実行できるようにするには,メッセージ送信パラメーターを指定します。

メッセージ送信の定義方法は,次の2種類があります。

メッセージ送信パラメーターには,次の項目を指定します。

このほか,必要に応じてモデルキュー名などを指定します。

(2) 送信するメッセージの形式

MQMD構造体に格納されるフィールドの内容と値を次の表に示します。

表3-7 メッセージ送信時にMQMD構造体として格納される値

フィールド 内容
StrucId 構造体識別子 システムの仮定値
Version 構造体バージョン情報 システムの仮定値
Report 報告オプション MQRO_NONE(報告なし)
MsgType メッセージタイプ MQMT_DATAGRAM(非問い合わせメッセージ)
Expiry メッセージ保持時間 ユーザー指定
Feedback 報告メッセージ返答コード MQFB_NONE(応答コードなし)
Encoding マシンコード形式 キューマネージャーの属性による
CodeCharSetId 文字セット識別名 キューマネージャーの属性による
Format フォーマット名 ユーザー指定
Priority メッセージ優先度 ユーザー指定
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 登録元データ 空白

MQMD構造体については,TP1/Message Queueと連携する場合はマニュアル「OpenTP1 Version 5 分散トランザクション処理機能 OpenTP1 メッセージキューイング機能TP1/Message Queue 使用の手引」を,MQSeriesと連携する場合はMQSeriesのドキュメントを参照してください。

(3) メッセージ送信の定義例

ここでは,MQSeriesを使った場合のメッセージ送信の定義例を説明します。

この例でのシステム構成を次の図に示します。

図3-7 メッセージ送信の定義例

[図データ]

この図の例での,メッセージ送信の定義例を説明します。

他ホストにメッセージを送信する場合の例
JP1/AJS2 - Managerホストにあるデフォルトキュー管理プログラム(QM1)で認識できる,他ホストのキュー管理プログラム(RQM)のキュー(RQMQ)へメッセージを送信する場合の定義内容を次の表に示します。

表3-8 他ホストにメッセージを送信する定義例

項目名 定義内容
キュー名 RQMQ
相関識別子 CORRELATION
メッセージ識別子 MES01
キュー管理プログラム名 RQM
形式名 TESTFORM
メッセージデータファイル名 /usrdisk/user/msg_queue
デッドレターキュー(送達不能キュー)名 DEADQUEUE
存続時間 120
優先順位 1
持続性 なし

自ホストのメッセージキューにメッセージを送信する場合の例
自ホストのキュー管理プログラム(QM2)のキュー(QM2Q)にメッセージを送信する場合の定義内容を次の表に示します。

表3-9 自ホストにメッセージを送信する定義例

項目名 定義内容
キュー名 QM2Q
相関識別子 CORRELATION
メッセージ識別子 MES02
接続キュー管理プログラム名 QM2

(4) メッセージ送信時の注意事項

メッセージ送信時の注意事項を次に示します。

送信される相関識別子・メッセージ識別子
送信される相関識別子とメッセージ識別子が24バイト未満の場合は,ASCIIではNULL(「00」)で,EBCDICでは半角スペース(「40」)で不足分を埋めて送信されます。送信先で,相関識別子またはメッセージ識別子を使用して受信するように設定されている場合は,この形式で送信したメッセージを受信できるように設定しておいてください。

メッセージ送信失敗時のデッドレターキュー(送達不能キュー)へのメッセージ送信
環境設定でデッドレターキュー(送達不能キュー)が定義されている場合,次のような事象が発生すると,デッドレターキュー(送達不能キュー)にメッセージが送信されます。
  • 指定されたメッセージキューのオープンに失敗した。
  • 指定されたメッセージキューへのメッセージ送信に失敗した。
なお,1回目の処理で,デッドレターキュー(送達不能キュー)への送信が失敗した場合,送信処理が再実行されます。ただし,TP1/Message QueueまたはMQSeriesで「キュー管理プログラムと接続不能」または「使用可能なハンドルがなくなった」のエラーが発生した場合を除きます。
また,デッドレターキュー(送達不能キュー)に最大値以上のメッセージが格納されている場合,デッドレターキュー(送達不能キュー)へ送信できません。定期的にデッドレターキュー(送達不能キュー)を管理してください。
デッドレターキュー(送達不能キュー)に送信されるメッセージに設定される値を次の表に示します。

表3-10 デッドレターキュー(送達不能キュー)に送信されるメッセージの値

フィールド 内容 設定される値
StrucId 構造体識別子 システムの仮定値
Version 構造体バージョン情報 システムの仮定値
Reason デッドレターキュー(送達不能キュー)になった理由 指定されたキューのMQOPEN,またはMQPUTの理由コード
DestQName 送信元の宛先キュー名 -qオプションで指定されたキュー名
DestQMgrName 送信元の宛先キューマネージャー名 -uオプションで指定されたキューマネージャー名
Encoding 送信元のマシンコード形式 送信したメッセージのマシンコード形式
CodedCharSetId 送信元の文字セット識別名 送信したメッセージの文字セット識別名
Format 送信元のフォーマット名 送信したメッセージのフォーマット名
PutApplType デッドレターキュー(送達不能キュー)にメッセージを出力するアプリケーションタイプ 初期値
PutApplName デッドレターキュー(送達不能キュー)にメッセージを出力するアプリケーションの名前 初期値
PutDate メッセージがデッドレターキュー(送達不能キュー)に出力された日付 デッドレターキュー(送達不能キュー)へのメッセージ送信時に求めた日付
PutTime メッセージがデッドレターキュー(送達不能キュー)に出力された時間 デッドレターキュー(送達不能キュー)へのメッセージ送信時に求めた時間

格納される初期値や仮定値については,TP1/Message Queueと連携する場合はマニュアル「OpenTP1 Version 5 分散トランザクション処理機能 OpenTP1 メッセージキューイング機能 TP1/Message Queue MQI 解説・文法編」を,MQSeriesと連携する場合はMQSeriesのドキュメントを参照してください。

[目次][前へ][次へ]


[他社商品名称に関する表示]

Copyright (C) 2006, 2010, Hitachi, Ltd.
Copyright (C) 2006, 2010, Hitachi Software Engineering Co., Ltd.