[英]Spring standalone JMS+JDBC single transaction
当前,我有一个spring JMS listener
,该侦听器侦听EMS topic
并在获取消息时对其进行处理并将其保留。 但是,我想通过一笔交易完成所有这一切。 我知道这需要XA
因为必须向Transaction Manager
注册两个全局资源。 这可以通过spring提供的JTA
来实现。 但是,由于我的应用程序是独立的,因此我是否需要包括第三方JTA standalone
实现,例如Bitronix
或JOTM
。 我之所以这样问,是因为由于两者都是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有一些出色的资源:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.