我没有在 Java EE 下运行。
我想使用 Spring 进行 XA 事务以在 DB 和 JMS 之间共享事务。
spring 是否提供这样的功能或者我必须使用外部事务管理器,如 Atomikos?
我目前使用数据库的 DataSourceTransactionManager,我看到我也可以使用 JMSTransactionManager。他们一起工作吗?从文档中不清楚,因为提到了 JtaTransactionManager。
请指教。
亚尔
我没有在 Java EE 下运行。
我想使用 Spring 进行 XA 事务以在 DB 和 JMS 之间共享事务。
spring 是否提供这样的功能或者我必须使用外部事务管理器,如 Atomikos?
我目前使用数据库的 DataSourceTransactionManager,我看到我也可以使用 JMSTransactionManager。他们一起工作吗?从文档中不清楚,因为提到了 JtaTransactionManager。
请指教。
亚尔
Spring 只提供了一个事务管理框架,因此它不提供任何事务管理器。如果您在 Java EE 容器之外运行应用程序,并且需要在 DB 和 JMS 等资源之间进行事务,则必须使用 Atomikos 或 JOTM(Java 开放事务管理器)等外部事务管理器。
您可能需要参考http://www.javaworld.com/javaworld/jw-04-2007/jw-04-xa.html以了解有关使用 Spring 的 XA 的更多详细信息。
它们是本地资源,但 Spring 确实支持 XA(有关解释和示例代码,请参阅此帖子):http: //blog.springsource.com/2011/08/15/configuring-spring-and-jta-without-full-java -ee/