【问题标题】:Why QueueSession can create only one receiver in JMS?为什么 QueueSession 在 JMS 中只能创建一个接收者?
【发布时间】:2011-04-19 03:24:13
【问题描述】:

我可以让一些发送者发送一些消息,但是当我在一个会话中创建两个接收者时,第一个有效,第二个被阻止。在调试中,我看到第二个接收者收到的队列列表大小为零。我发现session是为一个线程做的,不知道这个问题是否涉及到不安全的线程?

我使用 ActiveMQ 实现。

【问题讨论】:

    标签: session jms activemq


    【解决方案1】:

    JMS 会话绝对是单线程的。因此,它只能有一个活动接收器。你有两个选择:

    1. 对多个会话使用一个连接,每个会话都有一个接收器。连接是线程安全的,您可以从单个连接创建多个会话。
    2. ActiveMQ 为您提供了许多关于multiplexing multiple destinations 的选项,因此您可能希望专注于一个接收器,而不是拥有多个接收器,而是使用 ActiveMQ 的工具来创建虚拟目的地,这些目的地将通过一个接收器汇集您想要的所有消息.

    this question

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-28
      • 2015-02-06
      • 2017-11-24
      • 2012-07-14
      • 1970-01-01
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多