3.4.7 DBキュー読み出しサーバ変更機能
DBキュー機能では,一つのサーバでDBキューからメッセージを読み出します。そのため,DBキュー読み出しサーバが障害でダウンした場合は,DBキューに書き込まれるメッセージを読み出せなくなるため,DBキューが未読み出しメッセージで満杯になるおそれがあります。この現象は,DBキュー読み出しサーバをeedbqchgrコマンドで変更することによって回避できます。DBキュー読み出しサーバは,サーバがダウンした場合だけではなく,サーバが起動中の場合にも変更できます。
(1) DBキュー読み出しサーバがダウンしている場合
DBキュー読み出しサーバがダウンした場合のサーバ変更処理の流れを次の図に示します。
|
(2) DBキュー読み出しサーバが起動中の場合
起動中のDBキュー読み出しサーバでeedbqstopコマンドを実行して,DBキューの読み出しを停止します。次に,eedbqlsコマンドを実行してDBキューの情報を表示します。DBキューのステータスがC(読み出し停止の状態)になっていることを確認してから,eedbqchgrコマンドを実行してDBキュー読み出しサーバを変更します。
DBキュー読み出しサーバが起動中の場合のサーバ変更処理の流れを次の図に示します。
|
(3) 注意事項
-
DBキュー読み出しサーバを変更する際,変更前と変更後のサーバが同じ製品になるようにしてください。DBキュー読み出しサーバをTP1/EEからTP1/EE以外の製品(Cosminexus Reliable Messagingなど)に変更したり,TP1/EE以外の製品からTP1/EEに変更したりすることはできません。
-
ユーザキューアクセスでDBキューから読み出しを実行するTP1/EEがある場合に,誤ってほかのTP1/EEからeedbqchgrコマンドが実行されたときは,処理の状況によって次の結果になります。
-
DBキューから読み出しをしていたTP1/EEのトランザクションがロールバックする
ee_dbq_msgget関数によるメッセージの読み出しが成功したあとに,ほかのTP1/EEからeedbqchgrコマンドが実行された場合,ee_dbq_msgget関数を発行したトランザクションがロールバックします。
-
DBキューから読み出しをしていたTP1/EEが発行したee_dbq_msgget関数がエラーリターンする
ほかのTP1/EEからのeedbqchgrコマンドの実行後に,DBキューから読み出しをしようとしたTP1/EEがee_dbq_msgget関数を発行した場合,ee_dbq_msgget関数がエラーリターンします。
-