【问题标题】:Activity of container managed transaction容器管理事务的活动
【发布时间】:2012-12-04 14:53:57
【问题描述】:

让我拥有带有 CMT 的 Stateless bean。我在 bean 中有 3 个方法,2 个使用 TransactionAttributeType.REQUIRED。并且这两种方法都是从第三种方法调用的。我如何检查交易何时处于活动状态?我要检查

@Stateless
@TransactionManagement(TransactionManagementType.CONTAINER)
public class MyBean
{

   public RetType methodA()
   {
      methodB();

      //.... is CMT active there?

      methodC();

   }

   @TransactionAttribute(TransactionAttributeType.REQUIRED)   
   public RetType methodB(){}

   @TransactionAttribute(TransactionAttributeType.REQUIRED)
   public RetType methodC(){}
}

【问题讨论】:

    标签: java jakarta-ee transactions ejb-3.0


    【解决方案1】:

    TransactionAttributeType.REQUIRED 属性是容器管理事务 bean 方法的默认属性,因此即使您没有对其进行注释,methodA 也会在方法启动后立即启动的事务中运行(除非您从另一个活动事务,在这种情况下,该方法只需加入当前事务)。
    当方法退出时,事务结束(再次除非从另一个事务调用)。由methodA 调用的任何方法,除非使用TransactionAttributeType.REQUIRES_NEW 注释,都将加入当前事务。

    【讨论】:

      猜你喜欢
      • 2013-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多