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