1

我收到以下错误:

javax.jms.ResourceAllocationException: [C4073]: A JMS destination limit was reached. Too many Subscribers/Receivers for Queue

设置是这样完成的,即有一个提供者和两个消费者。发生此错误的原因是因为它是一个队列并且它只能有一个提供者和一个消费者吗?

4

2 回答 2

2

JMS 中的队列是点对点机制,如果您有多个消费者,则不应使用它们。您应该为此使用主题。

如果您愿意,请发布完整的代码,以便我们尝试提供更多帮助,因为您的代码在做什么并不是很清楚。

JMS 基本概念 http://java.sun.com/products/jms/tutorial/1_3_1-fcs/doc/basics.html

话虽如此,根据 Sun 的说法,这是此错误的信息:

C4073 

Message A JMS destination limit was reached. Too many Subscribers/Receivers for {0} : {1}

{0} is replaced with “Queue” or “Topic” {1} is replaced with the destination name.

Cause The client runtime was unable to create a message consumer for the specified domain and destination due to a broker resource constraint.
于 2009-03-08T23:49:22.220 回答
0

您实际上可以将队列与多个消费者一起使用。主题可能不是您想要的。主题将用作发布/订阅模型,每个消费者都将获得消息的副本;而对于队列,JMS 提供者应该只将消息分派给一个消费者。

您的 JMS 提供程序上可能有一个配置设置,将您限制为每个队列一个使用者。我只将 ActiveMQ 用于 JMS,但它允许您在单个队列上拥有多个消费者 - 它基本上对消费者之间的请求进行负载平衡。

于 2009-03-09T01:45:19.320 回答