具有更多连接工厂的 JmsTransactionManager

发布于 2024-10-28 21:58:59 字数 231 浏览 1 评论 0原文

我想知道是否有人可以帮助我解决一个大问题,我正在尝试使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦年海沫深 2024-11-04 21:58:59

如果您需要对多个 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.

阳光的暖冬 2024-11-04 21:58:59

您可以将connectionFactory的引用添加到事务管理器

<bean class="org.springframework.jms.connection.JmsTransactionManager">
    <property name="connectionFactory" ref="connectionFactory1"></property>
</bean>

<bean class="org.springframework.jms.connection.JmsTransactionManager">
    <property name="connectionFactory" ref="connectionFactory2"></property>
</bean>

you can add reference of connectionFactory to the transaction manager

<bean class="org.springframework.jms.connection.JmsTransactionManager">
    <property name="connectionFactory" ref="connectionFactory1"></property>
</bean>

<bean class="org.springframework.jms.connection.JmsTransactionManager">
    <property name="connectionFactory" ref="connectionFactory2"></property>
</bean>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文