[Seasar-user:20195] Re: S2Txでコミット後に処理を行いたい

ちょま吉 [E-MAIL ADDRESS DELETED]
2010年 9月 28日 (火) 07:40:48 JST


宮崎です。

ご返答頂き有難うございます。
下記、了解いたしました。
とても助かりました。

2010年9月28日1:00 Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>:
> 小林 (koichik) です.
>
> Date:    Tue, 28 Sep 2010 00:18:29 +0900
> From:    ちょま吉 <[E-MAIL ADDRESS DELETED]>
> To:      [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:20192] S2Txでコミット後に処理を行いたい
>
>> ファイルの削除処理をDBのトランザクションがコミットされた後に行いたいと考
>> えているのですが、コミット処理の結果を受けて動くコードを挿入する方法は
>> ないのでしょうか。
>
> Synchronization インタフェースの実装クラスを
> TransactionSynchronizationRegistry に
> 登録すれば可能です.
>
> http://download-llnw.oracle.com/javaee/6/api/javax/transaction/Synchronization.html
> http://download-llnw.oracle.com/javaee/6/api/javax/transaction/TransactionSynchronizationRegistry.html
>
> TransactionSynchronizationRegistry は
> public フィールドか setter メソッドを
> 用意すれば Seasar2 によって DI されます.
>
> public TransactionSynchronizationRegistry tsr;
>
> tsr.registerInterposedSynchronization(new Synchronization() {
>  @Override
>  public void beforeCompletion() {
>    //コミット前の処理
>  }
>
>  @Override
>  public afterCompletion(int status) {
>    if (status == Status.STATUS_COMMITTED) {
>      //コミット後の処理
>    } else {
>      ロールバック後の処理
>    }
>  }
> });
>
>
>
> --
> <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>
>    <property name="twitter">"http://twitter.com/koichik"</property>
> </component>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


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