Как ограничить количество экземпляров MDB, слушающих очередь Jboss JMS

У меня проблема со следующей настройкой:

Приложение Java отправляет сообщение электронной почты в очередь JMS, затем MDB, прослушивающий очередь, получает сообщение электронной почты с помощью метода onMessage, оно открывает соединение на SMTP Gmail, отправляет электронное письмо на SMTP и закройте соединение. Выполнение этого для всех сообщений в очереди JMS.

Это отлично работает, когда у меня в очереди одновременно находится до 5 сообщений. Все сообщения принимаются одновременно 5 разными экземплярами MDB, поэтому у меня есть 5 одновременных подключений к SMTP-серверу Gmail. Но когда в очереди JMS появляется больше сообщений, я получаю сообщение об ошибке подключения от SMTP-сервера Gmail. 5 первых сообщений отправлены правильно, но не остальная часть группы, поэтому другие сообщения теряются, потому что они больше не находятся в очереди.

Итак, мой вопрос: можно ли ограничить количество экземпляров MDB, которые будет слушать очередь JMS? Если у меня есть максимум 5 MDB, то, даже если у меня в очереди 1000 сообщений, очистка очереди займет больше времени, но, по крайней мере, я не потеряю ни одного сообщения.

[Сервер] Идентификатор выпуска: JBoss [Trinity] 4.2.3.GA (сборка: SVNTag = JBoss_4_2_3_GA date = 200807181417)

, а конфигурация MDB следующая:

@MessageDriven(activationConfig = {   
  @ActivationConfigProperty( propertyName = "destinationType", propertyValue = "javax.jms.Queue" ),   
  @ActivationConfigProperty( propertyName = "destination", propertyValue = "queue/emailQueue")  
})

Вам нужно больше?

Спасибо

ИЗМЕНИТЬ 14.02.2011
Может я ошибаюсь, желая ограничить количество экземпляров MDB. Я видел конфиг о количестве потоков JMS. Если я ограничу количество веток, которые будут публиковать в MDB, может быть, это решит мою проблему? Будет ли JMS ждать, пока MDB будет доступен, прежде чем снова отправлять сообщение? Есть ли у этого побочные эффекты? Пожалуйста, подумайте. Спасибо
КОНЕЦ РЕДАКТИРОВАНИЯ

15
задан MaDa 4 January 2012 в 14:32
поделиться