2012-03-21 24 views
1

我们有一个独立的java应用程序。目前我们只连接到一个数据库,它工作正常。我们有一个新的需求,我们必须连接到第二个数据库和其中一个事务必须将数据实际插入到两个数据库中。 有没有一种方法可以使用hibernate来做到这一点。我尝试使用HibernateEntityManager并将其配置为指向2个数据库,但提交是问题。在独立的java应用程序中,在2个数据库中进行事务处理,休眠+ JPA

有没有办法做到这一点没有JTA?或者,如果JTA是唯一的选择...更好的应用服务器,或者我们应该去独立的JTA实施。

在此先感谢!

回答

0

这被称为两阶段提交,其中提交需要发生在多个系统上(另一个例子是将JMS消息与DB事务一起出列)。

可疑的是,JTA是这里的一种方式,您需要符合XA的JDBC驱动程序才能跨连接跨越事务。

您不一定需要应用程序服务器,但其中许多应用程序会为您提供内置功能,否则您需要实施自己的功能(例如:http://blog.springsource.com/2011/08/15/configuring-spring-and-jta-without-full-java-ee/)。例如,如果您使用JBoss,则它内置了一个完全符合XA的tx协调器。

相关问题