Spring JMS中的事务划分/事务边界

时间:2011-09-29 09:21:56

标签: java spring transactions jms jta

我在DefaultMessageListenerContainer(DMLC)上实现了一系列3个Spring JMS侦听器 A B C 。所有DMLC都部署在一个Java EE应用程序中。

A C

  • 注入了一个事务管理器(同一个),
  • 他们在交易会话中接收发送消息,
  • 将相同的ConnectionFactory注入其DMLC(用于接收)并用于发送。

  • 没有交易管理员,
  • 发送无交易消息(Connection.createSession(false, AUTO_ACKNOWLEDGE)),
  • 有一个不同的非XA ConnectionFactory

问题:是交易边界,如下图所示,交易1和2是分开的(ML =消息监听器)?

         |   transaction 1 |    ?   | no transaction |    ?   | transaction 2 |
 (broker) --> [ML A]   -->  (broker)  --> [ML B]  --> (broker) --> [ML C]     |

或者事务1和2可能是一个,而且“ML B”是非事务性的这一事实对连续性没有影响?

其他问题:当邮件在代理商中时,标记为“?”的地方的活动交易会发生什么?

我不知道如何访问transaction manager logs,所以我无法真正验证。

0 个答案:

没有答案