APP1与应用2(EJB应用程序)使用App2.Uses CMT暴露出一些客户端API进行交互的Jboss.We管理JTA事务使用JNDI查找都可以从应用2(Jboss的)的UserTransaction的。
UserTransaction's begin() and commit()
将数据插入DS2。PFB其描述要求图像
要做到这一点it's要实现自己的事务资源,能够加入正在进行的JTA事务。看到这个answer以及一些指引,一个办法,看看如何做到这一点是看XA驱动程序代码,数据库或JMS资源,立足自己上。
这是不容易做到并且非常罕见的使用情况,一般在实践中采用的替代设计解决。一种方法是提取从应用2所需的代码放到一个罐子库,并在Tomcat中与像连接到两个XA JTA数据源Atomikos公司一个JTA事务管理器中使用它。
另一种方式是SQL语句到数据库刷新到Tomcat,看看是否能工程,发送同步调用到JBoss,返回的结果,如果在JBoss中的交易经历之前。
根据在tomcat的是提交/回滚。这并不能保证,将工作时间(网络故障等)的100%,但根据系统做什么和失败的交易的商业结果是可以接受的。
还有一种方法是使JBoss的侧操作revertable和暴露的情况下,错误使用Tomcat之类的补偿服务进行检测。对于并使两个服务器JBoss的,你可以利用JBoss的Narayana引擎,也看到这个answer。
哪种方式更好它依赖于使用情况,而是实现自己的XA事务服务是一个大的事业,我会更简单更改设计。很少有项目做的原因是这样做是it's复杂,有更简单的方法。
Tomcat是一个Web服务器,因此它不支持全局事务。
JBoss是一个应用服务器,所以它支持全局事务。
如果你有这两个结合起来,你必须使用JOTM或Atomikos公司充当Trasaction经理和提交或回滚。