[Seasar-user:14569] [S2Container]Interceptorでリトライ

溝口 [E-MAIL ADDRESS DELETED]
2008年 6月 5日 (木) 08:58:22 JST


お世話になっています。溝口です。

interceotorを利用してリトライ処理を検討していますが、この際に、挟んでいる
インターセプターが使用されなくなります。下のインターセプターを
使用したテストでは、RetryInterceptorの次にtraceIntercaptorを使用しています。
invocation.proceed()を呼び出すたびにtraceInterceptorがログを出力するのを
想定していましたが、1度目のinvocation.proceed()の時にしかtraceが
出力されません。

インターセプター内でリトライする良い方法があればご教示ください。

下は検証用に作成したIntercaptorです。
import org.aopalliance.intercept.MethodInvocation;
import org.seasar.framework.aop.interceptors.AbstractInterceptor;

public class RetryInterceptor extends AbstractInterceptor {

    private static final long serialVersionUID = 1L;

    public Object invoke(MethodInvocation invocation) throws Throwable {
        invocation.proceed();
        invocation.proceed();
        return null;
    }

}

diconファイルはこんな感じで検証しました。
<component class="common.service.impl.SampleServiceImpl" >
<aspect >RetryInterceptor</aspect>
<aspect >aop.traceInterceptor</aspect>
</component>

よろしくお願いします。


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