【问题标题】:Transaction propagation in EJBEJB 中的事务传播
【发布时间】:2014-09-03 04:11:27
【问题描述】:

我正在浏览 EJB 3.1 规范,无法涉及以下场景。有人可以举例说明

•如果客户端请求未与事务关联而实例已与事务 T2 关联,则容器使用与实例 (T2) 关联的事务调用实例。这种情况永远不会发生在无状态会话 bean、单例会话 bean 或消息驱动 bean 上:它只会发生在有状态会话 bean 上。

•如果客户端与事务 T1 相关联,并且实例已与事务 T2 相关联,则容器将挂起客户端的事务关联并使用与实例 (T2) 关联的事务上下文调用方法。当方法(连同任何关联的拦截器方法)完成时,容器会恢复客户端的事务关联 (T1)。这种情况永远不会发生在无状态会话 bean、单例会话 bean 或消息驱动 bean 上:它只会发生在有状态会话 bean 上。

如果具有事务范围持久性上下文的 EJB 在有状态会话上调用 使用扩展持久性上下文的 bean,会引发错误。为什么不应该挂起无状态会话 bean 的事务,然后使用与有状态会话 bean 关联的事务上下文调用方法。

【问题讨论】:

    标签: java transactions ejb


    【解决方案1】:

    有什么问题?它是关于有状态会话 bean。只有这种 bean 才能在方法调用之间进行事务处理。所以,如果你调用已经有活动事务的有状态会话 bean,你的方法调用将在有状态会话 bean 事务中执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多