Hi. I have a problem with the DLQ.
I wrote a unittest which put a message on a queue to an MDB. If the MDB fails to handle the message it does a rollback. The JBossMQ then tries to redeliver 2 times before message is sent to DLQ. So far so god, but when I run the unittest a second time same thing happens except now the fist message on the DLQ disappear? I use postgres-jdbc3-service.xml for persisting the messages. In the jms_messages_log table I can se only one message and it has a messageid = 1 while it had messageid = 0 before I ran the unittest for the second time.
My first thought was that DLQ has a maxdepth of 1. So I checked the jbossmq-service.xml and tried an extra 1000 But this did not change anything.
I'we also tried to use postgres-jdbc2-service.xml, but same behaviour. (As expected.)
As a workaround I''ve changed the DLQConfig in standardjboss.xml to use another queue, and that works like I expct it to. The messages keep piling up as I run unitttests. But I want to use the DLQ for this purpose. Isn't this what the DLQ is for? Does the DLQ work like this out of the box or have I inadvertently done something stupid to it?
Answers, suggestions anyone ?
The DLQ is no different than any other queue so what your describing does not make much sense. Try enabling trace level logging on the org.jboss.mq category to see what is happening to the messages sent to the DLQ.
<category name="org.jboss.mq"> <priority value="TRACE" class="org.jboss.logging.XLevel"/> </category>