我有一个基于Java的web应用程序。我使用Spring Integration来集成数据库(Jpa Outbound adapter)和Tibco EMS (JMS outbound Adapter)。但是,现在我需要将一些代码放在相同的消息需要是1.持久化在数据库中和2.通过JMS发送的地方。
问题是这些活动(1和2)需要在事务中发生。要么两种情况都发生,要么什么都不发生。我正在尝试使用Bitronix来实现这一点。然而,到目前为止,我还没能完成这项工作。我得到的错误在简单的英语中意味着(请原谅我的翻译在这里)“我们不能实现事务外部XA事务。
以前有没有人试过这个。任何帮助都将不胜感激。
谢谢,
发布于 2013-01-02 21:51:56
我不熟悉Bitronix,但我见过jotm和Atomikos的成功使用。
但是,您可能希望探索使用XA的替代方法,如本文所讨论的那样……
http://www.javaworld.com/javaworld/jw-01-2009/jw-01-spring-transactions.html
发布于 2016-12-27 03:14:41
如果你分享的配置示例代码对理解这个问题有很大帮助,我不确定你的配置是什么来设置bitronix。
就你的问题而言,看起来bitronix没有正确设置。您应该通过以下链接来验证或设置bitronix配置。
https://github.com/bitronix/btm/blob/master/btm-docs/src/main/asciidoc/TomcatWithBtm2x.adoc
另外,如果您通过jndi配置bitronix,请确保从maven构建中排除所有与事务相关的jar,并将事务和bitronix相关的jar放在lib文件夹中。
https://stackoverflow.com/questions/14120139
复制相似问题