[Seasar-user:16056] Re: RequiresNewTx でトランザクションが開始できない

Mitsutaka Sato [E-MAIL ADDRESS DELETED]
2008年 10月 19日 (日) 09:14:42 JST


小林様
ご対応ありがとうございました。

こちらで確認したところうまく行っているようです。


2008/10/18 Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>

> 小林 (koichik) です.
>
> Date:    Sat, 18 Oct 2008 09:49:11 +0900
> From:    "Mitsutaka Sato" <[E-MAIL ADDRESS DELETED]>
> To:      seasar-user <[E-MAIL ADDRESS DELETED]>
> Subject: [Seasar-user:16051] RequiresNewTx でトランザクションが開始できない
>
> > 上記のテストケースを実行すると、requiresNewTx の開始で以下のエラーが発生します。
> >
> > org.seasar.framework.exception.SIllegalStateException:
> > [ESSR0308]既にロールバックとしてマークされています
>
> 報告ありがとうございます.
> 修正して SNAPSHOT をデプロイしたのでご確認ください.
>
>
> http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2-framework/2.4.31-SNAPSHOT/s2-framework-2.4.31-20081018.124630-4.jar
>
> http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2-framework/2.4.31-SNAPSHOT/s2-framework-2.4.31-20081018.124630-4.jar
>
> http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2-tiger/2.4.31-SNAPSHOT/s2-tiger-2.4.31-20081018.125240-4.jar
>
>
> > ちなみにs2-2.4.17まではエラーは発生せず、 s2-2.4.18 から上記エラーは発生します。
>
> 今回の修正後も 2.4.17 以前とは微妙に動作が
> 異なります.
>
> 掲載のテストケースだと,2.4.17 以前では
> 「UserTransactionをコミットしました。」という
> メッセージが (たぶん) 出力されますが,2.4.18
> 以降では出力されません.
>
> これは,alwaysExceptionService#execute() から
> 例外がスローされると 2.4.18 以降では
> setRollbackOnly() が設定されるからです.
>
> 2.4.17 以前では,トランザクションが開始済みの
> 状態で呼び出される requiredTx は,トランザクションの
> コミットにもロールバックにも関与しませんでしたが,
> 2.4.18 以降では例外で抜けていく場合に
> setRollbackOnly() します.
> これは,例外が飲み込まれた場合にトランザクションが
> コミットされてしまうのを防ぐためで,EJB 仕様でも
> そうなっています.
> # EJB では RuntimeException や EJBException
> # など一部を除いた多くの例外はロールバックしない
> # 例外ですが.
>
> もし,例外がスローされた場合に setRoolbackOnly() を
> 設定されたくない場合は,独自の j2ee.dicon を用意して,
> 以下で説明されている addCommitRule() で該当の例外を
> 登録してください.
>
> http://s2container.seasar.org/2.4/ja/tx.html#Exception
>
> 独自の j2ee.dicon は WEB-INF/classes など,Seasar2 の
> Jar ファイルより優先されるクラスパスに配置する必要が
> あります.
>
>
>
> --
> <component name="koichik">
>    <property name="fullName">"Koichi Kobayashi"</property>
>    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
>    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
> </component>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20081019/cc11fe66/attachment-0001.html>


Seasar-user メーリングリストの案内