具有更多连接工厂的 JmsTransactionManager
我想知道是否有人可以帮助我解决一个大问题,我正在尝试使用 Spring 2.5.6 实现更多 jmsTransactionManagers,但它不起作用。
我有 5 个连接工厂,因为我必须从 5 个不同的环境中读取和写入。它们都在我的队列 xml bean 中,但是因为当我从一个队列读取消息并且它们不适合我使用事务管理器进行回滚的选项时。
所以我的问题是,如何配置更多 JmsTransactionManager。
I was wondering if anyone can help me with a large problem, I'm trying to implement more jmsTransactionManagers with Spring 2.5.6, but it isn't working.
I got 5 connectionfactories because i have to read and write from 5 different environments. They are all in my queue xml bean, but because when I read messages from one queue and they don't fit with the options I do an rollback with the transaction manager.
So my question is, how can I configure more JmsTransactionManagers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您需要对多个 JMS 会话进行事务访问,则必须使用 JTA。在这种情况下,您根本不会使用 JmsTransactionManager,您将使用 JtaTransactionManager 并将所有这些连接纳入分布式事务中。这假设您的所有 JMS 连接都是 XA 兼容的(通常连接工厂是不同的,例如 ActiveMQXAConnectionFactory 与 ActiveMQConnectionFactory)。
如果您不使用应用程序服务器(glassfish、weblogic、jboss AS 等),则可以部署独立的 JTA 实现(atomikos 或 jboss TS)。它们的配置有很大不同,但 Spring 确实支持其中的大多数。
You'll have to use JTA if you need transactional access to more than one JMS session. In that case, you wouldn't be using JmsTransactionManager at all, you would use a JtaTransactionManager and enlist all those connections in a distributed transaction. This assumes that all of your JMS connections are XA-compatible (often times the connection factory is different, e.g. ActiveMQXAConnectionFactory vs. ActiveMQConnectionFactory).
If you are not using an application server (glassfish, weblogic, jboss AS, etc.), you can deploy a standalone JTA implementation (atomikos or jboss TS). The configuration of each of them differ quite a bit but Spring does support most of them.
您可以将connectionFactory的引用添加到事务管理器
you can add reference of connectionFactory to the transaction manager