Spring JTA Atomikos只有7条消息消耗并且全部出列



我有一个基于Atomikos Transaction Manager的带有JTA的简单Spring引导应用程序。它使用队列中的消息并记录它们。问题是,在第7条传入消息之后,队列中的其余消息将退出队列,但不会进行处理。我意识到这种性能是循环的,我的意思是:

  1. 在队列中插入了10条消息
  2. 已处理并退出队列的第一条消息
  3. 已处理并退出队列的第二条消息
  4. 已处理并退出队列的第三条消息
  5. 已处理并退出第4条消息的队列
  6. 已处理并退出第5条消息的队列
  7. 已处理并退出第6条消息的队列
  8. 已处理第7条消息,并将第7条、第8条、第9条和第10条消息退出队列
  9. 在队列中插入了其他10条消息
  10. 已处理并退出第11条消息的队列
  11. 已处理并退出队列的第12条消息
  12. 已处理并退出第13条消息的队列
  13. 已处理并退出第14条消息的队列
  14. 已处理并退出第15条消息的队列
  15. 已处理并退出队列的第16条消息
  16. 已处理第17条消息,并将第17条、第18条、第19条和第20条消息退出队列

此外,我意识到在没有启用事务管理器的情况下,它会处理并消耗队列中的所有消息。

有没有任何错误或配置让我忘记了这一点?

您可以在上找到完整的代码:https://github.com/PedroRamirezTOR/spring-jta-amq.git

谢谢Justin!最后,我准备了这个例子来轻松测试这个问题,我意识到只有当我们使用ActiveMQ控制台插入消息时才会出现这种情况。我准备了一个RESTapi,在一个事务中插入许多消息,所有这些消息都被消耗并退出队列。我认为这可能是一个ActiveMQ web控制台错误。

如果有人感兴趣,可以从https://github.com/PedroRamirezTOR/spring-jta-amq.git

最新更新