-
Bug
-
Resolution: Done
-
Major
-
4.2.0.GA_CP01
-
None
-
Workaround Exists
-
Messages that are retreived from the DLQ have their JMSXDeliveryCount set to 1. Inside org.jboss.ejb.plugins.jms.DLQHander, this leads to the code that redirects failed messages to the DLQ. Starting on line 454, the count gets set to 1, then is decremented to zero. On the next redelivery, the same thing happens again. The JMS_JBOSS_REDELIVERY_COUNT is incremented on each cylce but never gets checked:
try
{ if (msg.propertyExists(PROPERTY_DELIVERY_COUNT)) // Is 1 for a message transferred from DLQ <<<< count = msg.getIntProperty(PROPERTY_DELIVERY_COUNT); } catch (JMSException ignored)
{
}
if (count > 0)
else if (msg.propertyExists(JMS_JBOSS_REDELIVERY_COUNT))
count = msg.getIntProperty(JMS_JBOSS_REDELIVERY_COUNT);
else
{
id = msg.getJMSMessageID();
if (id == null)
count = incrementResentCount(id);
fromMessage = false;
}
if (count > max) // Count is always zero for a message that has been transfered from DLQ <<<<
{ id = msg.getJMSMessageID(); log.warn("Message resent too many times; sending it to DLQ; message id=" + id); sendMessage(msg); deleteFromBuffer(id); handled = true; }Cheers,
Mike C.
- relates to
-
JBAS-4945 Messages transfered from DLQ to working queue will never be resent to DLQ
- Closed
-
JBPAPP-871 ResendMDBUnitTestCase failure in EAP 4.3.0.GA_CP01
- Resolved