несколько очередей в аннотации EJB - PullRequest
2 голосов
/ 24 мая 2011

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

На данный момент код работает нормально только для одной очереди, и я не знаю, как реализовать его для более чем одной очереди. Не могли бы вы направить меня

@ MessageDriven (mappedName = "receiver1")

открытый класс MDBMessages реализует MessageListener

Как сделать так, чтобы мое MDBMessage прослушивало очередь приемника 2 и приемника 3.

Спасибо Prabhakar

Ответы [ 3 ]

2 голосов
/ 24 мая 2011

Из документации:

Бин, управляемый сообщениями, определен для единый тип сообщений, в соответствии с интерфейсом слушателя сообщений это работает.

Поэтому невозможно отобразить MDB для нескольких типов назначения.

Не пробовал, но вы можете попробовать настроить MDB в ejb-jar.xml с разными именами JNDI, указывающими на один и тот же класс, и добавить разные места назначения к каждому из них. Если конфигурация работает, то MDBMessages сможет прослушивать сообщения для всех указанных очередей в xml.

0 голосов
/ 01 июля 2013
@Consumer(activationConfig = { @ActivationConfigProperty(
propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@**ActivationConfigProperty(propertyName = "destination",
propertyValue = "queue/MyTasksProcess"),**

public class MyProcessorMDBean implements Downloader {

public void processSomething(Serializable anyParameter){
//Do the actual processing
}

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

0 голосов
/ 30 мая 2011

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

также существуют брокеры (например, activeMQ), которые позволяют одному mdb прослушивать несколько адресатов одного типа (очередь, тема), если они используют адаптер ресурсов activemq.

...