据我们所知,为了使交易正常工作,我们需要应用XA概念来处理多个EAR和同一笔交易的最佳实践是什么。但是显然,在我们正在进行的最新项目中,创建和更新并非必须严格执行;但是,如果我们尝试从实体中检索任何集合,则会收到一条错误消息,指出该实体未处于活动状态或交易已关闭,但是如果我们更新Ear A中的Entity A并更新Ear B中的Entity B,则当实体A正常工作时实体B有不同的数据源,这时我们很困惑,因为我们尚未配置任何xa数据源。最好的方法是如何使用它。事务是由Bean处理的,而不是由容器处理的,而EAR A和EAR B之间的数据源是不同的
最佳答案
当您想在单个事务中使用多个资源(数据库,JMS资源,JCA连接器)时,您需要一个XA事务(也称为“全局事务”)。XA事务涉及一个JTA事务管理器,用于通过两阶段提交(2PC)协议,有关XA的更多详细信息,请参见Mike Spille的这篇精彩的XA Exposed帖子。
(...)如果我们更新耳朵A中的实体A并更新耳朵B中的实体B,那么当实体A和实体B具有不同的数据源时,它就可以完美工作
您如何执行该更新(我是说,从哪里开始)?您所说的“有效”到底是什么意思?您确定在出现问题的情况下都会还原两个更新吗?如果不使用全球交易,那么我会感到惊讶。你能澄清一下吗?
关于java - 处理不同EAR上的交易,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1903150/