Losing messages in A-MQ when queue is full. Can we have 'sendFailIfNoSpace' set for per queue/topic ?
Issue
- We have the following scenario:
A Camel route consumes messages from a transacted A-MQ queue, processes them, and places them on another queue. If an exception occurs in the route, an onException
clause catches it, and sends the message to a different queue (in effect a custom DLQ).
The A-MQ broker is configured to send errors back to the client (sendFailIfNoSpace="true") so that in the event that the inbound queue is full, the client can fail gracefully rather than hanging indefinitely. However, if the custom DLQ becomes full, it also sends an error back to the client, which in this case is Camel. Because Camel is already in an onException clause, we can't catch another exception. If this happens, the message is lost.
- What we need is to be able to send a failure to clients of specific queues, rather than a blanket setting at the broker level. However this doesn't seem to be possible. Can we have the
sendFailIfNoSpace
configured for per queue/topic ?
Environment
- Red Hat JBoss Fuse
- 6.x
- Red Hat JBoss A-MQ
- 6.x
- Apache ActiveMQ
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.