[jboss-jira] [JBoss JIRA] Created: (JBMESSAGING-1738) Inconsistent DLQ behavior with MDB
Justin Bertram (JIRA)
jira-events at lists.jboss.org
Tue Sep 22 20:07:49 EDT 2009
Inconsistent DLQ behavior with MDB
----------------------------------
Key: JBMESSAGING-1738
URL: https://jira.jboss.org/jira/browse/JBMESSAGING-1738
Project: JBoss Messaging
Issue Type: Bug
Affects Versions: 1.4.0.SP3.CP08
Reporter: Justin Bertram
Assignee: Howard Gao
I have a simple MDB that receives a message from "queue/A", logs a message, and calls context.setRollBackOnly() to force redelivery. I have modified "queue/A" to use "queue/PrivateDLQ" via:
<attribute name="DLQ">jboss.messaging.destination:service=Queue,name=PrivateDLQ</attribute>
When I send a message to "queue/A" this appears in the log:
INFO [ExampleEJB3MDB] Got a message from "queue/A"
INFO [ExampleEJB3MDB] Got a message from "queue/A"
INFO [ExampleEJB3MDB] Got a message from "queue/A"
INFO [ExampleEJB3MDB] Got a message from "queue/A"
INFO [ExampleEJB3MDB] Got a message from "queue/A"
INFO [ExampleEJB3MDB] Got a message from "queue/A"
WARN [AbstractDLQHandler] Message redelivered=6 max=5 sending it to the dlq delegator->JBossMessage[5135007189598208]:NON-PERSISTENT, deliveryId=0
However, the message doesn't go to "queue/PrivateDLQ". It goes to "queue/DLQ" instead.
When I modify the MDB to use @ActivationConfigProperty(propertyName = "DLQMaxResent", propertyValue = "10") and send a message to "queue/A" I get this in the log:
INFO [ExampleEJB3MDB] Got a message from "queue/A"
INFO [ExampleEJB3MDB] Got a message from "queue/A"
INFO [ExampleEJB3MDB] Got a message from "queue/A"
INFO [ExampleEJB3MDB] Got a message from "queue/A"
INFO [ExampleEJB3MDB] Got a message from "queue/A"
INFO [ExampleEJB3MDB] Got a message from "queue/A"
INFO [ExampleEJB3MDB] Got a message from "queue/A"
INFO [ExampleEJB3MDB] Got a message from "queue/A"
INFO [ExampleEJB3MDB] Got a message from "queue/A"
INFO [ExampleEJB3MDB] Got a message from "queue/A"
Notice that there is no message from org.jboss.resource.adapter.jms.inflow.dlq.AbstractDLQHandler. However, this is present at DEBUG:
DEBUG [org.jboss.jms.client.container.ClientConsumer] JBossMessage[5135008224608258]:NON-PERSISTENT has reached maximum delivery number 10, cancelling to server
DEBUG [org.jboss.jms.server.endpoint.ServerSessionEndpoint] Sending message: Reference[5135008224608258]:NON-RELIABLE to dlq Queue[23251066/0/8-PrivateDLQ]
The message is rightfully sent to "queue/PrivateDLQ."
It appears that in the first (i.e. default) situation the JCA layer was taking care of delivery to DLQ, but in the second situation JBoss Messaging was performing delivery to DLQ. It seems to me the behavior should be consistent.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list