I have an application with multiple consumers and multiple queues in a many to many
mapping. The queues are polled by scheduling the consumers at a fixed delay. Each
consumer reads a message and attempts to send an http request to a remote endpoint. If
the remote endpoint is unavailable or some other error occurs, the consumer calls rollback
and then it or another consumer tries again later. Each consumer has its own session.
What I'm observing is that the rollback/redelivery semantics associate the undelivered
messages with a particular consumer/session. If that consumer is destroyed, so are its
rollbacked messages. Once rollback occurs, the consumer/session that rolled back is the
only consumer that can see the messages.
I really want the ability to:
| read messages from the queue
| attempt to contact an external system
| if that fails, put the messages back on the queue
| another consumer can see and process the messages
| I'm using JBoss Messaging 1.2.0 SP1. My company recently obtained JBoss EAP 4.3,
which I believe bundles JBoss Messaging 1.4.0, but I won't be able to use that as part
of my current delivery.
View the original post :
Reply to the post :