6.6.2 DBキューの状態遷移(AP間通信)
DBキュー機能を使用してAP間通信する場合のDBキューの状態遷移の流れを次の図に示します。
|
図の説明を次に示します。説明文中の番号は図中の番号と対応します。
DBキューは,TP1/EE開始時のDBキュー表の構成チェックが正常に完了することで通常状態となります(1)。DBキュー表の構成チェックの結果,DBキュー表の構成に問題がある場合(2)は,DB構成不正による使用不可とし,該当するDBキューに対する状態参照だけできます。状態参照以外の要求は受け付けません。
DBキュー表の構成チェックが完了していない場合,RM未接続による使用不可のままになります。TP1/EE開始時に,リラン時の情報や定義によって,障害による読み出し停止,またはコマンド・関数・定義による読み出し停止になります(3)。
通常状態や障害による読み出し停止,またはコマンド・関数・定義による読み出し停止状態になると,関数受け付け可能状態になり,DBキューに対する要求を受け付け,トランザクションが動作します。DBキューのトランザクション処理でDB障害が発生した場合は,該当するDBキューからのメッセージ読み出しを停止させるため,障害による読み出し停止状態となります(4)。DBキューの内部矛盾を検知した場合は,DBキューの内部矛盾による使用不可とします(5)。また,ユーザが関数によってメッセージの読み出しを停止させることもできます(6)。
障害による読み出し停止,またはコマンド・関数・定義による読み出し停止状態は,コマンド・関数によって読み出し再開要求(7)をすることで解除され,通常状態となります。
なお,DBキューが関数受け付け可能状態になると,DBキューに対する処理要求を受け付けます。処理要求の受け付け後は,DBキューの起動中のトランザクションを管理することで,DBキューのトランザクションが同時に動作しないようにします。管理するトランザクションを次に示します。
-
メッセージを読み出すトランザクション
-
メッセージをスキップするトランザクション
-
通番を初期化するトランザクション
- 〈この項の構成〉
(1) DBキューとDBキューサービスとの接続
DBキュー機能を使用してAP間通信する場合,DBキューから読み出したメッセージを送信するため,DBキューとDBキューサービスとを,DBキュー機能関連定義のdbqsrvdef定義コマンドによって接続します。TP1/EE起動後に,dbqsrvdef定義コマンドで指定した接続を変更したい場合は,eedbqcnctコマンド,eedbqrelsコマンド,またはee_dbq_conctl関数によって,DBキューとDBキューサービスとを接続したり,接続を解除したりできます。
(2) TP1/EE開始時のDBキュー表の構成チェック
DBキュー機能を使用してAP間通信する場合,TP1/EE起動時およびリソースマネジャ接続時にDBキュー表の構成をチェックします。DBキュー表の構成に誤りがあった場合,DBキューから読み出しを停止できますが,コマンドまたは関数でDBキューの読み出しの停止解除はできません。
(3) DBキューの読み出し停止および停止解除
DBキュー機能を使用してAP間通信する場合,eedbqstopコマンドまたはee_dbq_acsctl関数によって,DBキューの読み出しを停止できます。また,DBキュー機能関連定義のdbqdef定義コマンドの-tオプションによって,TP1/EE起動時からDBキューの読み出しを停止できます。DBキューの読み出しを再開したい場合は,eedbqrstコマンドまたはee_dbq_acsctl関数によってDBキューの読み出しの停止を解除します。
(4) TP1/EE終了時の未読み出しメッセージのチェック
DBキュー機能を使用してAP間通信する場合,TP1/EE正常終了時に未読み出しメッセージがある場合,未読み出しメッセージがなくなるまでTP1/EEを終了しません。未読み出しメッセージのチェック対象となるのは,DBキューサービスと接続している場合の,起動中状態または運用スケジュール停止中状態のDBキューです。
DBキューが読み出しを停止している場合,eedbqrstコマンドによってメッセージの読み出しを再開できます。また,eedbqskipコマンドによって未読み出しメッセージを読み出し済みにできます。全メッセージの読み出しが完了すると,TP1/EEを終了します。
なお,TP1/EEの計画停止時(計画停止Aおよび計画停止B)は,未読み出しメッセージをチェックしません。