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

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

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

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

トランザクションが保持していたロックは解除されます。しかし、トランザクションの独立性を保障するため、インダウト状態となったトランザクションが更新した資源は一時的にアクセス禁止状態になります。これを資源のインダウト閉塞といいます。

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

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

注意

インダウト状態のトランザクションが存在している間は、トランザクション完了に必要なデータをテンポラリログファイルに保存し続けます。そのため、業務再開後に以下のメッセージが出力され、アプリケーションが異常終了する場合があります。

  • JYP5004E テンポラリログ域の領域が不足しました.

  • qdg12826u テンポラリログファイルの領域が不足しました

  • JYP5005E 同時に実行できるトランザクション数の上限値を超えました.

  • qdg02518u 同時に実行できるトランザクション数の上限値を超えました

インダウト状態のすべてのトランザクションを復旧すれば、解消されます。

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

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

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


    Directory : D:¥SFWD¥RDB¥USR¥DIR¥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が異常終了した場合”と同様に振る舞います。