2.5.3 データベースセッションフェイルオーバ機能でトラブルが発生した場合
ここでは,データベースセッションフェイルオーバ機能にトラブルが発生した場合の対処方法として,次の2種類のトラブルへの対処について説明します。
-
J2EEサーバでトラブルが発生した場合
-
データベースでトラブルが発生した場合
(1) J2EEサーバでトラブルが発生した場合
データベース上のデータへの変更を含む処理中に,J2EEサーバの障害でプロセスがダウンした場合,データベースのロールバックで障害前の状態に戻るため,システムの整合性が保たれます。J2EEサーバの障害を取り除き,Webアプリケーションを再開することでトラブルを回復できます。
J2EEサーバのホストがハングアップした場合や,ネットワークに障害が発生した場合,データベースの操作が中断されレコードの排他(グローバルセッション情報のロック)が未解放の状態となるときがあります。この場合,J2EEサーバが回復しWebアプリケーションを再開する前に,未解放の排他を解放する必要があります。
- 参考
-
未解放の排他の解放には,クライアントからデータベースへの無効接続を検出し,接続セッションを強制終了させるなどの方法があります。未解放の排他の解放について,HiRDBを使用する場合は,マニュアル「HiRDB UAP開発ガイド」のUAP処理時間監視機能に関する説明を参照してください。Oracleを使用する場合は,Oracleのマニュアルを参照してください。
(2) データベースでトラブルが発生した場合
データベースで障害が発生した場合,データベースを回復すればロールバックで障害前の状態に戻るため,データベースセッションフェイルオーバ機能を使用したWebアプリケーションは業務を再開できます。Webアプリケーションの再起動は必要ありません。
そのほかのデータベース障害時の対応については,各データベースのマニュアルを参照してください。