首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >容器管理事务:幕后

容器管理事务:幕后
EN

Stack Overflow用户
提问于 2017-05-22 21:55:28
回答 1查看 41关注 0票数 0

我知道EJB中的事务处理由EJB容器/应用服务器负责。

现在我想更多地理解这一点,例如,考虑一个场景,其中我们有一个分布式事务(超过两个资源作为事务的一部分);我读到有用于所有这些的JTA、JTS。

我的问题是:

1)容器是否实现了事务处理的JTA规范?

2) Container是否提供JTS服务?

如果#1和#2不是真的,那么容器如何提供事务支持?它是否“借用”了其他开源项目的功能来完成这类工作?

有人能帮助理解这一点吗?

附言:我确实参考了网上和书本上的材料,但我仍然不清楚,因此提出了这个问题。

EN

回答 1

Stack Overflow用户

发布于 2017-05-23 16:21:14

答案可以在最新的EJB规范中找到。

1)容器是否实现了事务处理的JTA规范?

21.3.3 JTA 1.1要求

EJB容器必须包括JTA1.1扩展,并且它必须通过javax.ejb.EJBContext接口向具有bean管理的事务分界的企业bean提供javax.transaction.UserTransaction接口,并且还必须在JNDI中以java:comp/UserTransaction的名称(在EJB规范要求的情况下)提供该接口。其他JTA接口是低级事务管理器和资源管理器集成接口,并不打算由企业bean直接使用。

2) Container是否提供JTS服务?

13.1.3与JTA和JTS的关系。

EJB体系结构不要求EJB容器支持JTS接口。EJB体系结构要求EJB容器支持8中定义的JTA和15中定义的连接器APIsdefined。

3)如果#1和#2不是真的,那么容器如何提供事务支持?它是否“借用”了其他开源项目的功能来完成这类工作?

我真的不明白这个问题。通常,Oracle/Sun提供了一组接口或规范,每个供应商(Glassfish、Weblogic、JBoss等)然后将提供它的具体实现。

在过去,应用服务器必须经过Sun认证才能被认为是符合JEE的,我想这与Oracle完全一样。所以,你可以通过开源库的方式提供具体的实现,其他人会决定你的服务器是否兼容。

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

https://stackoverflow.com/questions/44114741

复制
相关文章

相似问题

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