[Seasar-user:18003] Re: [S2Container]RequiredInterceptorの仕様の確認

kubo [E-MAIL ADDRESS DELETED]
2009年 7月 15日 (水) 16:38:46 JST


久保(jflute)です。

すいません補足します。

> 既にトランザクションが開始されていた場合に何もしないと
> ありますが、利用されているTransactionCallbackを見ると、
> txRulesが設定されていない場合には、
> setRollbackOnly()が呼び出されるように見受けられますが、
> これは仕様でしょうか?

> 「既にトランザクションが開始されていた場合はコミットや
> ロールバックはしないけど、txRulesが設定されていなければ
> setRollbackOnly()をする」という感じの記述があった方が
> いいように思えます。

どちらも、既にトランザクションが開始されていた場合で
かつ、「例外が発生した場合」ということです。

2009/7/15 kubo <[E-MAIL ADDRESS DELETED]>:
> 久保(jflute)です。
>
> 「s2extension-2.4.38」の
> org.seasar.extension.tx.RequiredInterceptor
> の仕様の確認です。
>
> JavaDocコメント抜粋:
> /= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
> このインターセプタが適用されたメソッドが呼び出された際に
> トランザクションが開始されていない場合は、トランザクションが開始されます。
> メソッドが終了(例外をスローした場合も) した後、開始したトランザクションは
> 完了 (コミットまたはロールバック) されます。
> メソッドが呼び出された際に、既にトランザクションが開始されていた場合は何もしません。
> = = = = = = = = = =/
>
> 既にトランザクションが開始されていた場合に何もしないと
> ありますが、利用されているTransactionCallbackを見ると、
> txRulesが設定されていない場合には、
> setRollbackOnly()が呼び出されるように見受けられますが、
> これは仕様でしょうか?
>
> http://s2container.seasar.org/2.4/ja/tx.html
> を見ると、例外発生時の動作ということで共通仕様的に
> 書かれているので、仕様かと思われますが、
> JavaDocコメントに
> 「既にトランザクションが開始されていた場合はコミットや
> ロールバックはしないけど、txRulesが設定されていなければ
> setRollbackOnly()をする」という感じの記述があった方が
> いいように思えます。
> (「何もしません」というのが誤解を生むかもしれないので)
>
> #
> # とある調査をしている段階で疑問に思った点を
> # 確認したいと思い質問させて頂きました。
> #
>


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