jakarta-ee - EJB 中如何管理 CMT 和 BMT?

标签 jakarta-ee transactions ejb jta

如何管理 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/

相关文章:

java - spring-boot-starter-jta-atomikos 实践

mysql - 简单的mysql事务的语法错误

sql - 开始尝试在SQL Server 2005上捕获,如何将ERROR_stuff发送给调用的父级?

Java EJB 接口(interface)

java - "non-managed"实用程序类的并发访问和扩展

java - 将运行时(元)数据传递给 CDI 中的生产者方法

java - Tomcat _localhost :port_ set globally for every system

java - Jboss AS中数据库连接关闭

java - 如何在 Scriptlet 中编写 JSP 表达式标记

mysql - 两个索引列上的 SELECT FOR UPDATE 和 WHERE 条件 - 什么是锁定策略?