首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TransactionImpleManager.suspend隐式调用

TransactionImpleManager.suspend隐式调用
EN

Stack Overflow用户
提问于 2018-11-26 08:43:55
回答 1查看 58关注 0票数 0

我有用BMT的豆子。使用BMT的另一个bean被注入第一个。现在,当第一个调用第二个方法时,事务突然关闭。在我的代码中,我将其缩小到了方法调用之前和方法调用内部的精确点。

这是痕迹:

2018-11-23 12:15:32,275 +0100跟踪(默认任务-18) TransactionImple.getStatus: javax.transaction.Status.STATUS_ACTIVE 2018-11-23 12:15:32,276 +0100跟踪(默认任务-18) TransactionImpleManager.suspend 2018-11-23 12:15:32,277 +0100跟踪(默认任务-18) TransactionSynchronizationRegistryImple.getTransactionKey

示例代码:

代码语言:javascript
复制
@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class A{
  @Inject
  private B b;
  @Inject
  private UserTransaction trx;
  
  public void foo(){
    trx.begin();
    //transaction is active
    b.bar();
    trx.commit();
  }
}
@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class B{
  public void bar(){
    //transaction is closed
    //whatever
  }
}

发生在JBoss EAP 7.0.9上。

我在很多地方都有这个星座,但只有在这里它才会破裂。我是不是错过了一些基本的东西?我在哪里能找到更多线索?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-27 08:58:15

简短的回答:BMT不会通过BMT传播到其他bean。在两个bean中都不可能有一个跨代码的事务。

(除非您破解了JBoss TransactionManager,使其始终得到相同的DB事务。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53477381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档