如何管理 CMT 和 BMT?
根据我的理解,容器管理事务是通过 JTA 实现的,它由应用程序服务器支持,而不是像 tomcat 这样的网络服务器。
CMT 由事务管理器实现处理,它特定于每个应用程序服务器,在内部读取 ejb-jar.xml 并应用 行为。
BMT 是在 java api 中的用户事务类的帮助下划分的。
以上理解是否正确?
最佳答案
是的,这是正确的。更多交易详情:
对于 CMT,EJB 容器还负责通过委托(delegate)当前事务回滚异常事务来实现 EJBContext.setRollbackOnly 和 isRollbackOnly。
对于 BMT,如果在 SLSB 和单例的方法结束之前未提交 UserTransaction,EJB 容器还负责抛出异常。对于 SFSB,它负责在方法结束时暂停用户事务,并在下一次方法调用时恢复它们。
关于jakarta-ee - EJB 中如何管理 CMT 和 BMT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6723709/