0

我有一个基于 Java 的 Web 应用程序。我正在使用 Spring Integration 与数据库(Jpa 出站适配器)和 Tibco EMS(JMS 出站适配器)集成。但是,现在我需要在需要相同消息的地方放置一些代码 1. 持久保存在数据库中和 2. 通过 JMS 发送。

问题是这些活动(1 和 2)需要在事务中发生。要么两者都发生,要么都没有。我正在尝试使用Bitronix来实现这一目标。但是到目前为止,我还没有完成它。我收到错误,用简单的英语表示(请原谅我的翻译)“我们无法在 XA 交易之外实现交易。

有没有人尝试过这个。任何帮助将不胜感激。

谢谢,

4

2 回答 2

0

我对 Bitronix 不熟悉,但已经看到成功使用了 jotm 和 Atomikos。

但是,您可能希望探索使用 XA 的替代方案,如本文中所述...

http://www.javaworld.com/javaworld/jw-01-2009/jw-01-spring-transactions.html

于 2013-01-02T13:51:55.843 回答
0

如果您共享有助于理解问题的配置示例代码,我不确定您设置 bitronix 的配置是什么。

就您的问题而言,看起来 bitronix 设置不正确。您应该通过以下链接来验证或设置 bitronix 配置。

https://github.com/bitronix/btm/blob/master/btm-docs/src/main/asciidoc/TomcatWithBtm2x.adoc

还有一件事,如果您通过 jndi 配置 bitronix,而不是确保从您的 maven 构建中排除所有与事务相关的 jar,并将事务和与 bitronix 相关的 jar 放在 lib 文件夹中。

于 2016-12-26T19:14:40.633 回答