【问题标题】:Listener support for CMT after commit/rollback提交/回滚后对 CMT 的侦听器支持
【发布时间】:2014-01-06 11:35:21
【问题描述】:

我有一个要求,我需要知道容器管理的事务何时提交无状态会话 bean 的事务。我希望有某种侦听器系统的拦截器,我可以挂接到 TransactionManager 上,但没有什么明显的东西可以提供这一点。 容器提交/回滚事务后有什么方法可以挂钩自定义代码?

【问题讨论】:

  • 当你说:“我有一个要求我需要知道什么时候......”时我不清楚EJBContext.setRollbackOnly() 方法。否则,当ejb业务方法完成时,您就知道事务已提交。
  • 我们的应用程序使用了一种自定义锁定机制,一旦容器提交/回滚事务,就必须释放对象上的锁定。所以我需要知道在conainer/app服务器提交/回滚JTA事务之后我可以诱导代码的任何可插入方式。

标签: java jpa ejb-3.0 weblogic11g


【解决方案1】:

有一种可能的解决方法是使用EJB-3 Interceptor。我想,你想在方法处理之后做点什么。

public class MyInterceptor {
    @AroundInvoke
    public Object intercept(InvocationContext ctx) throws Exception {
        //Here before process of doSomething()
        Object result = ctx.proceed();
        //Here after process of  of doSomething()
        return result;
    }   
}


@Interceptors(MyInterceptor.class)
public <your-ejb-bean> {
    public void doSomething(){
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2013-06-19
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    相关资源
    最近更新 更多