Obter lista de resultados de uma fila JMS com o mesmo id
4 respostas
E
everjava
eu tenho varias mensagens jms com o mesmo cpf. Como eu poderia consumir para retornar todos, como uma lista, ao invés de somente um como abaixo ?
Estou usando jboss5.1.
Se o modelo utilizado for o one-to-one, então diria para utilizar a classe QueueBrowser, que é uma classe
especializada para olhar todas as mensagens de uma Queue sem consumir tais mensagens.
Mas essa é uma solução caso não se precise consumir de fato a mensagem que se encontra na Queue.
E
everjava
sim johnny, é one-to-one
O problema é q depois de eu receber a mensagem preciso remover da fila. Já estava considerendo usar a QueueBrower, mas não achei nada ainda que delete essas mensagens da fila após percorrer, somente qdo consome…
johnny_quest
Na verdade é possível tirar aquele if no código e passar o seletor diretamente para a QueueBrowser
Depois de retornadas todas as mensagens que devem ser consumidas, então você poderá pegar o ID de cada
mensagem e consumir cada uma delas dentro de for passando a lista de ID das mensagens que devem ser consumidas da Queue.
Você pode pegar o header da mensagem JMSMessageID
message.getJMSMessageID()
e passar como seletor para consumir somente as mensagens desejadas.
Depois é só salvar o consumer em uma lista, com isso consumirá todas as mensagens desejadas.
E
everjava
pra agilizar o processo criei uma classe com uma lista e envio ela para a fila, e consumo apenas uma vez o objeto com a lista, ao invés de várias mensagens na fila … qdo tiver mais tempo tento do jeito que vc falou