Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JPA在tomcat中进行两阶段提交_Tomcat_Jpa_2phase Commit - Fatal编程技术网

使用JPA在tomcat中进行两阶段提交

使用JPA在tomcat中进行两阶段提交,tomcat,jpa,2phase-commit,Tomcat,Jpa,2phase Commit,我在Tomcat中部署了一个应用程序,后端是oracle和JPA作为持久性管理器。现在,我们将引入一个中间数据库(很可能是SolidDB或TimesTen),它将带来额外的2阶段提交需求。由于tomcat不支持J2EE,我们将无法使用常规方法。使用Atomikos怎么样。是否有其他支持tomcat的事务管理系统。我们的应用程序的峰值负载为每天4000万条记录。使用Atomikos可靠吗?欢迎提出任何其他建议 独立JTA有几个选项 看,, 您还应该考虑使用java EE服务器。< /P> 对于E

我在Tomcat中部署了一个应用程序,后端是oracle和JPA作为持久性管理器。现在,我们将引入一个中间数据库(很可能是SolidDB或TimesTen),它将带来额外的2阶段提交需求。由于tomcat不支持J2EE,我们将无法使用常规方法。使用Atomikos怎么样。是否有其他支持tomcat的事务管理系统。我们的应用程序的峰值负载为每天4000万条记录。使用Atomikos可靠吗?欢迎提出任何其他建议

独立JTA有几个选项

看,,

您还应该考虑使用java EE服务器。< /P>


对于EclipseLink,它支持JOTM和大多数JavaEE服务器。要与另一个集成,只需将JTATransactionController子类化。

一个解决方案的实现不需要使用Atomikos、JOTM或Bitronix。它是通过使用AOP和JPA实现的。我们正在定义2个实体管理器工厂和2个事务管理器。使用SpringAOP,我们将两个事务管理器应用于同一个函数。因此,每当出现异常时,rollbacl将由2个事务管理器完成。 下面给出的链接对此进行了解释

这可能是术语混淆,但大多数数据库管理系统(如Oracle)都实现了两阶段提交(2PC),我需要为两个不同的数据库(如Oracle和Solid DB)实现2PC。因此,oracle中内置的2PC可能不起作用。我认为更适合您的情况的术语是分布式事务(多资源事务)。所描述的解决方案无法正常工作。两个事务中的一个将在另一个事务之前提交,如果第二个提交失败,则不会回滚第一个事务。