ページの先頭行へ戻る
Symfoware Server V10.1.0 RDB運用ガイド

14.5.1 システムの異常終了とトランザクション

トランザクションをコミットする際には2フェーズコミットが実行されます。2フェーズ目の処理中にシステムに何らかの異常が発生すると、プリペア済みのトランザクションはコミットもロールバックもできず、インダウト状態となります。システムが異常終了した場合、Symfoware/RDBは以下のように振る舞います。

アプリケーションサーバが異常終了した場合

トランザクションが保持していたロックは解除されます。しかし、トランザクションの独立性を保障するため、インダウト状態となったトランザクションが更新した資源は一時的にアクセス禁止状態になります。これを資源のインダウト閉塞といいます。また、そのトランザクションを後でロールバックできるように、BIログがインダウトログファイルに保存されます。トランザクションが使用していたテンポラリログファイル内のトランザクションエントリやBIログ域、AIログ域は解放され、新しいトランザクションで利用されます。これ以降、Symfoware/RDBは運用を継続します。

Symfoware/RDBが異常終了した場合

Symfoware/RDBを再起動するとダウンリカバリ処理が行われます。ダウンリカバリ処理中にプリペア済みのトランザクションが存在した場合、Symfoware/RDBはそれをインダウト状態として“アプリケーションサーバが異常終了した場合”と同様、そのトランザクションが更新した資源をインダウト閉塞し、BIログをインダウトログファイルに保存し、テンポラリログファイル内の情報を削除します。ダウンリカバリが完了すると、Symfoware/RDBは運用を再開します。

資源がXAインダウト閉塞されているかどうかは、rdbinfコマンドにより確認できます。XAインダウト閉塞されている場合は、State欄に“INH”、Cause欄に“XAI”と表示されます。

$ rdbinf -i 在庫管理DB.在庫表IXDSI -a

  RDBII rdbinf DATE:2009/04/23 TIME:16/18/23


    Directory : /home/rdbdir/DIR_FILE1

    Database  : 在庫管理DB

    DSI       : 在庫票IXDSI

      Cond    State    Cause
      NON     INH/PAG  XAI

    TYPE    Used    Free    Size
    INDEX    10%     90%    53248
    BASE     70%     40%    53248

    Name
    DBspace   : DBSP_1
      Cond    State    Cause    Size
      NON    ---/---    ---     53248
    DBspace   : DBSP_1
      Cond    State    Cause    Size
      NON    ---/---    ---     53248

システムが異常終了した場合

システムが異常終了した場合、Symfoware/RDBは“Symfoware/RDBが異常終了した場合”と同様に振る舞います。