Boa noite pessoal,
Estamos desenvolvendo uma aplicação que usa EJB e JMS.
Criamos um Pool de conexões, uma fila JMS e um MessageListener… até ai tudo funcionando beleza, enviando mensagens para a fila e o MessageListener consumindo normalmente.
Quando criamos uma segunda estrutura como esta (Pool, Fila e MessageListener), notei que ambos os MessageListener estavam consumindo mensagens de ambas as filas.
A minha pergunta é:
O comportamento padrão é este mesmo?
O mais estranho, é que em cada MessageListener, eu coloco no MappedName qual é a fila que ele deve consumir, e mesmo assim, ele consome as duas.
@MessageDriven(mappedName = "jms/log", activationConfig = {
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
})
public class DatalogEJB implements MessageListener {
@MessageDriven(mappedName = "jms/task", activationConfig = {
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
})
public class TaskJmsEJB implements MessageListener {
Não encontrei nada nos exemplos que usei pois todos eles criam apenas uma fila e não duas ou mais…
Caso este comportamento seja normal, fica outra pergunta :
Se um mesmo MessageListener vai poder consumir varias filas, tenho como ter varias instâncias dele (thread-pool) monitorando varias filas para que eu tenha processamento concorrente?
Um abraço e valeu!