2009-12-14 91 views
1

就我们所知,我们需要应用XA概念才能正确处理事务,最好的做法是处理多个EAR和同一事务。但显然在我们一直在努力的当前项目中,这不是创建和更新所必需的;然而,如果我们尝试从实体中检索任何集合,我们会得到一个错误,表明它没有活动事务或它已关闭,但是如果我们更新Ear A中的实体A并更新Ear B中的实体B,它会在完全实体A而实体B有不同的数据源,在这一点上我们很困惑,因为我们还没有配置任何xa数据源。如何处理这个最好的方法。事务是bean处理,而不是容器和数据源在EAR A和EAR之间不同B在不同的EAR上处理交易

+0

你好,如果你向我们解释你想达到什么以及你有什么问题,我会更好。应用程序A和B之间的关系是什么(它们共享相同的数据,它们是否互相调用?) – pgras 2009-12-15 07:07:48

回答

1

如果您想在单个事务中使用多个资源(数据库,JMS资源,JCA连接器),则需要XA交易(也被称为“全球事务)。XA事务涉及的协调JTA事务管理器通过两阶段提交(2PC)协议。有关XA更多详细信息,请参阅从麦克Spille这个完美的事情,XA Exposed职位。

(...)如果我们更新Ear A中的实体A并更新Ear B中的实体B,当实体A和实体B具有不同的数据源时,它可以很好地工作

你如何执行更新(我的意思是从哪里来的)? “它有效”是什么意思?你确定在出现问题时两个更新都会回滚吗?如果没有使用全球交易,我会很惊讶。你能澄清一点吗?