トランザクション終了時の例外への対応

事象説明

    トランザクションのコミットを実行しようとした場合でも状況によりロールバックされることがあります。

状況の確認方法

    アプリケーション動作時にログファイルに以下のようなログが出力されます。

    javax.transaction.RollbackException: The transaction had been already rolled back at jp.co.nec.WebOTX.WOTransactionManager.commit(WOTransactionManager.java:235)
    at com.nec.webotx.enterprise.distributedtx.J2EETransactionManagerImpl.commit(J2EETransactionManagerI mpl.java:1018)

    もしくは以下のログが出力されます。
    javax.transaction.RollbackException: Transaction timeout occurred
    at jp.co.nec.WebOTX.WOTransactionManager.commit(WOTransactionManager.java:235)
    at com.nec.webotx.enterprise.distributedtx.J2EETransactionManagerImpl.commit(J2EETransactionManagerI mpl.java:1018)

    また、以下のログが出力される場合もあります。
    2005/08/02 20:06:33.223|018: ERROR WOTransaction.finishResources(): Sequence error. xa.end() is not called.

復旧方法

    上記の例外が発生する可能性としては以下の2 つのケースがあります。


関連情報