2 フェーズコミットメント利用時の例外への対応

事象説明

    JTA を利用して開始したトランザクション内で複数のDB へのアクセスや複数のEJB へのアクセスを行う 場合、2 フェーズコミットメントを利用します。この際に例外となる場合があります。

状況の確認方法

    アプリケーション動作時にログファイルに例外(IMP_LIMIT(3158))が出力され、該当トランザクションが ロールバックします。

復旧方法

    WebOTXではトランザクション情報を共有メモリに記録して、トランザクション実行中に異常終了した際の 復旧のために利用しています。この共有メモリのレコードサイズが小さい場合に上記の例外が発生します。 一回のトランザクション内で実行しているDBアクセスやEJB呼び出しの回数が多いと発生します。

    以下の方法で、レコードサイズを大きくすることにより発生しなくなります。
    ${INSTANCE_ROOT}/config/TS/jta.conf に以下を追加したあとドメイン再起動してください。
    TxRecordSize=12288
    デフォルトのサイズは8kb(8192)です。


関連情報