[
https://jira.jboss.org/jira/browse/JBMESSAGING-1738?page=com.atlassian.ji...
]
Justin Bertram updated JBMESSAGING-1738:
----------------------------------------
Attachment: ejb3mdb.zip
Here is the MDB I used for testing. Just modify "jboss.home" in build.xml, run
"ant dist" then "ant deploy".
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
Attachments: ejb3mdb.zip
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