繁体   English   中英

Spring独立JMS + JDBC单事务

[英]Spring standalone JMS+JDBC single transaction

当前,我有一个spring JMS listener ,该侦听器侦听EMS topic并在获取消息时对其进行处理并将其保留。 但是,我想通过一笔交易完成所有这一切。 我知道这需要XA因为必须向Transaction Manager注册两个全局资源。 这可以通过spring提供的JTA来实现。 但是,由于我的应用程序是独立的,因此我是否需要包括第三方JTA standalone实现,例如BitronixJOTM 我之所以这样问,是因为由于两者都是Spring资源,因此默认的JTA应该可以解决这个问题。

是的,您将需要包含支持XA的第三方TransactionManager实现。

大多数应用程序服务器(例如JBoss)将捆绑他们选择的XA TransactionManager。 这是选择像Tomcat或独立应用程序之类的ApplicationServer的原因之一。 XA事务之类的事情的配置基本上是由您完成的。

有时,ApplicationServer的重量过重(尽管我认为这已不再是一个问题),否则您将无法使用它。 在这种情况下,如果您要使用XA,则有责任提供TransactionManager实现。

您可以从以下实现中选择:JBossTS,Atomikos Transaction Essentials或Bitronix JTA。

Spring确实包含JTATransactionManager实现。 如果您在ApplicationServer中运行,这将使用预先配置的位置来检测选定的XA实现,或者,如果在独立环境中,则需要自行配置。

在Spring上配置XA TransactionManager有一些出色的资源:

  1. http://spring.io/blog/2011/08/15/configuring-spring-and-jta-without-full-java-ee/
  2. http://www.javaworld.com/article/2077714/java-web-development/xa-transactions-using-spring.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM