中身を Message Queueの中身を 見てみましょう!

Message Queueの中身を
中身を
見てみましょう!
メッセージキューの管理を疎かにしておくと
メッセ
ジキュ の管理を疎かにしておくと
トラブルはある日突然発生します。
メッセージキューについての説明とトラブル
の回避策をご紹介します。
MSGQの種類
メッセージキューには、いくつかの種類があります。
„
„
„
„
„
„
„
„
ワークステーション・メッセージキュー
ユ ザ プロファイル メッセ ジキ
ユーザープロファイル・メッセージキュー
QHSTメッセージキュー
QSYSOPRメッセージキュー
QSYSOPRメッセ
ジキュ
ジョブメッセージキュー
‰ 外部メッセージキュー
‰ プログラムメッセージキュー
QSYSMSGメッセージキュー
ユ ザ 作成メッセ ジキ
ユーザー作成メッセージキュー
パッケージ・メッセージキュー
知らないところで勝手
に作成されているの
で
管理はされない。
トラブルが発生して
初めて存在を知る。
MSGQの使用目的、作成タイミング
Q
メッセージキュー
使用目的
作成タイミング
ワークステーション
メッセージキュー
ワークステーション・ユーザー相互間、およびワー
クステーション・ユーザーとシステム操作員間のメッ
セージ送受に使用します。
システムに対してワークステーションが定義され
た時点で、システムによりQSYSに作成されます。
ユーザープロファイル
メッセージキュー
ユーザー相互間の交信に使用されます。
ユーザー・プロファイルを作成した時点で、自動的
にライブラリーQUSRSYS内に作成されます。
QHSTメッセージキュー
システム内のジョブからの情報を活動記録ログ
(QHST) に送るために使用されます。
に送るために使用されます
出荷時に作成
QSYSOPRメッセージキュー
システム、表示装置ユーザー、およびアプリケー
ション・プログラムからのメッセージの受取りおよび
それに対する応答のために使用されます。
出荷時に作成
ジョブメッセージキュー
ジョブ・メッセージ待ち行列は、システム上のジョブ
ごとに作成され、そのジョブのすべてのメッセージ
要件を処理します。
ブ
ジョブ開始時に作成され、終了時に削除される。
QSYSMSGメッセージキュー
重大なシステムメッセージを処理します。
CRTMSGQでQSYSライブラリーにQSYSMSG
メッセージキューを作成
ユーザー作成メッセージキュー
メッセージをトリガーとしたアプリケーションを開発
する時に使用する。
CRTMSGQで作成される。
MSGQの削除タイミング
メッセージキュー
メッセージ削除
ワークステーション
メッセージキュー
終結処置で保存日数を過ぎたメッセージを削除し
ます。
ユーザープロファイル
メッセージキュー
終結処置で保存日数を過ぎたメッセージを削除し
ます。
QHSTメッセージキュー
ッ
ジキ
自動的に削除されます。
QSYSOPRメッセージキュー
終結処置で保存日数を過ぎたメッセージを削除し
ます。
IPLした場合は、全メッセージが消去されます。
ジョブメッセージキュー
ジョブが終了した時点で削除されます。
QSYSMSGメッセージキュー
CLRMSGQ、RMVMSGで削除します。
ユーザー作成メッセージキュー
CLRMSGQ、RMVMSGで削除します。
注意事項
サインオンしている場合には削除されません。
他のジョブでQSYSOPRをロックしている場合には
削除はされません。
MSGQがオ
MSGQがオーバーフローした場合
フ
した場合
MSGQは、最大サイズになると自動拡張されますが最大拡張回数に到達すると
異常終了になります。
異常終了になります
ジョブメッセージキューの場合
ユーザープロファイル・メッセージキューの場合
ジョブメッセージキューオーバーフロー対策
常駐型ジョブの場合、無停止状態が長く続くとメッセージが滞留しオーバーフローする危険性が
あります。
★定期的に停止、再起動を行う。
★満杯時の処置を「*WRAP」にする。(システム値またはジョブ記述で指定)
QSYSOPR,ユーザープロファイル,ワークステーション
メッセージキューオーバーフロー対策
ジ
バ
策
„
„
„
終結処置に適切な保存日数を指定し、自動
削除を実施する。
サインオンしている端末があると削除できな
いので注意する
いので注意する。
サインオフできない場合は、*WRAPに変更
する。
QSYSOPRは 監視ツールなどを導入して
QSYSOPRは、監視ツ
ルなどを導入して
いる場合はロックされて削除できない。
監視ツールを停止できない場合は、*WRAP
に変更する。
※最近の出荷時の値は、*WRAPになっている。
ユーザープロファイル
ザ プ
イ
メッセージキュー
QSYSOPR,ワーク
ステーションメッセージキュー
メッセージキューの管理
„
メッセージキュー単位に異常なメッセージが大量にでていないかを
ジキ
単位
常な
ジが大量
な
を
確認しおく。
„
正常メッセージでも不必要と思われるメッセージが出力されていか
を確認する。(Ex.デバッグ用のメッセージ)
„
不要メッセージキューがないかを確認する。
„
オーバーフローする危険性がないかを確認する。
メッセージキューの確認
メッセージキューのメッセージ数、サイズなどを確認します。
満杯時の処置
最大増分回数
15622 *NOMAX
15622=*NOMAX
サイズ(B)
ズ
メッセージ数
Q
QSYSOPRの最大増分回数は、
488回
増分サイズ(B)
増分回数
メッセージキューの確認
メッセージの内容を確認します。
メッセージの送信
ッ
ジ 送信
NEW
ユーザープロファイル・メッセージキューに、BREAKモード送信したい場合
メッセージの送信
ッ
ジ 送信
NEW
ワークステーション・メッセージキューに、BREAKモード送信したい場合
PGM
RTVJOBA JOB(&JOB) USER(&USR)
CHGMSGQ MSGQ(&JOB) DLVRY(*BREAK)
ENDPGM
ユ ザ プロフ イルの初期プログラムなどで実行する
ユーザープロファイルの初期プログラムなどで実行する。
メッセージの送信
ッ
ジ 送信
NEW
プリンターセッションでプリンターを使用している場合に、メッセージを送信
するメ
するメッセージキューはPC側のセッション・パラメータで指定する必要があ
ジキ
は 側
シ
パ メ タ 指定する必要があ
ります。
USER2のメッセージ
キューに送信
ワークステーション・メッセージキューの場合は、
QSYS/XXXXXを指定する。
補足:ジョブメッセージキュー
„
„
„
ジョブ毎に自動作成されます。
ジ
ブ毎 自動作成されます
ジョブログで参照することがで
きます
きます。
ジョブメッセージキューは、
外部メッセージキュー(*EXT)
(
)
とプログラムメッセージキュー
(各プログラム名)で構成され
ています
ています。
ジョブメッセ ジキ
ジョブメッセージキュー
*EXTERNAL
PGMA
PGMB
PGMC
補足:ジョブメッセージキュー
ジョブメッセージキューと実行要求元ユーザー間で
メッセージの交換ができる。
メッセ
ジの交換ができる。
ジョブメッセージキュー
プログラム・メッセージの表示
QSYS のサブシステム QINTER のジョブ
*EXT へのメッセージ送信 .
対話型ジョブ
対話型ジ
バッチジョブ
*EXTERNAL
補足:ジョブメッセージキュー
ジョブメッセ ジキ
ジョブメッセージキュー
CALL STACK
QCMD
INLPGM
PGMA
PGMB
*EXTERNAL
QCMD
INLPGM
PGMA
PGMB
補足:メッセージの送信
„
„
„
„
„
メッセージ送信
ジ送信
中断メッセージ送信
応答送信
ユーザーメッセージ送信
(CLプログラム内でのみ有効)
SNDPGMMSG プログラムメッセージ送信
グラ
ッ
ジ送信
(CLプログラム内でのみ有効)
SNDMSG
SNDBRKMSG
SNDRPY
SNDUSRMSG
補足:SNDPGMMSG TOPGMQ(*PRV)
ジョブメッセ ジキ
ジョブメッセージキュー
CALL STACK
*EXTERNAL
QCMD
QCMD
INLPGM
INLPGM
PGMA
PGMB
From: PGMB
To:( PRV)
To:(*PRV)
PGMA
PGMB
補足:SNDPGMMSG TOPGMQ(*SAME)
ジョブメッセ ジキ
ジョブメッセージキュー
CALL STACK
*EXTERNAL
QCMD
QCMD
INLPGM
INLPGM
PGMA
PGMB
From: PGMB
To:( SAME)
To:(*SAME)
PGMA
PGMB
補足:SNDPGMMSG TOPGMQ(*SAME XXXX)
ジョブメッセ ジキ
ジョブメッセージキュー
CALL STACK
*EXTERNAL
QCMD
QCMD
INLPGM
INLPGM
PGMA
PGMB
From: PGMB
To:(*SAME
(
INLPGM))
PGMA
PGMB
補足:SNDPGMMSG TOPGMQ(*PRV XXXX)
ジョブメッセ ジキ
ジョブメッセージキュー
CALL STACK
*EXTERNAL
QCMD
QCMD
INLPGM
INLPGM
PGMA
PGMB
From: PGMB
To:(*PRV
(
INLPGM))
PGMA
PGMB
補足:SNDPGMMSG TOPGMQ(*EXT)
プログラム・メッセージの表示
QSYS のサブシステム QINTER のジョブ
*EXT へのメッセージ送信 .
CALL STACK
ジョブメッセ ジキ
ジョブメッセージキュー
*EXTERNAL
QCMD
QCMD
INLPGM
INLPGM
PGMA
PGMB
From: PGMB
To:(*EXT)
(
)
PGMA
PGMB