Нужна помощь с Java JMS ResourceAllocationException - PullRequest
1 голос
/ 09 марта 2009

Я получаю следующую ошибку:

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

Настройка была сделана таким образом, что есть один поставщик и два потребителя. Причина, по которой эта ошибка возникает, потому что это очередь, и она может иметь только одного поставщика и одного потребителя?

Ответы [ 2 ]

2 голосов
/ 09 марта 2009

Очереди в 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.
0 голосов
/ 09 марта 2009

Вы можете использовать очереди с несколькими потребителями. Темы могут быть не тем, что вы хотите. Тема будет работать как модель публикации / подписки, где каждый потребитель получит копию сообщения; в то время как с очередями провайдер JMS должен отправлять сообщение только одному потребителю.

Возможно, в вашем провайдере JMS есть параметр конфигурации, ограничивающий вас одним потребителем на очередь. Я использовал ActiveMQ только для JMS, но он позволяет вам иметь несколько потребителей в одной очереди - это в основном распределение нагрузки между запросами между клиентами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...