2009-03-08 1 views
1

я получаю следующее сообщение об ошибке:Нужна помощь с Java JMS ResourceAllocationException

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

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

ответ

2

Очереди в JMS являются механизмами «точка-точка», вы не должны использовать их, если у вас несколько потребителей. Вы должны использовать для этого темы.

Отправьте полный код, если хотите, поэтому мы можем попробовать и помочь больше, так как на самом деле не совсем понятно, что делает ваш код.

JMS основных понятий http://java.sun.com/products/jms/tutorial/1_3_1-fcs/doc/basics.html

Это, как говорится, по Солнцу, это информация для этой ошибки:

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

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

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

Смежные вопросы