在一个事务期间发送多个JMS消息

时间:2012-06-11 05:09:22

标签: transactions jms java-ee-6 weblogic11g

我的应用程序部署在Weblogic 10.3.5上,我运行了2个场景:

  1. 调用5000次EJB(带事务)发送一条消息。
  2. 调用发送5000条JMS消息的EJB(带事务)。
  3. 第一个场景顺利运行,但第二个场景永远不会结束,10分钟后OutOfMemory异常被删除。我调查了这个问题,我认为这是因为消息在事务提交或回滚之前一直处于待处理状态。

    更多信息:

    • 投放模式是非持久性的
    • 会话已自动确认

    有人可以推荐我如何在一次交易中发送大量JMS消息吗?

    提前致谢。

1 个答案:

答案 0 :(得分:0)

是的,消息堆叠直到事务提交。您的邮件内容是什么? 5000,虽然很多消息,但每条消息的开销不是很多。但如果你的消息很大,那肯定会成为一个问题。在这种情况下,您可能需要增加机器内存,或重新评估为什么需要在单个事务中发送5000,甚至需要5000个。