I'm just guessing, but are the 'retries' cumulative? That is, when the message comes off the second queue (FlowErrorDLQ), does it already have a retry count of 3?
-- Danny Yates -----Original Message----- From: Barlow, Dustin [mailto:[EMAIL PROTECTED] Sent: 20 August 2003 18:34 To: [EMAIL PROTECTED] Subject: [JBoss-user] Issue with the DQLHandler and multiple DLQs The setup: queue/A -> QueueA_MDB -> CMT SSB Business Logic | | 3 retries, go to FlowErrorDLQ \ / * queue/FlowErrorDLQ -> FlowErrorDLQ_MDB -> CMT SSB Failure Logic | | 3 retries, go to DLQ \ / * queue/DLQ - QueueA_MDB is configured with it's own invoker-proxy-binding that has .. <MDBConfig> <ReconnectIntervalSec>10</ReconnectIntervalSec> <DLQConfig> <DestinationQueue>queue/FlowErrorDLQ</DestinationQueue> <MaxTimesRedelivered>3</MaxTimesRedelivered> <TimeToLive>0</TimeToLive> </DLQConfig> </MDBConfig> ... After 3 failed retries, the message should be pushed by the DLQHandler to queue/FlowErrorDLQ. - FlowErrorDLQ_MDB uses the standard invoker-proxy-binding "message-driven-bean". After 3 failed retries, the message should be pushed by the DLQHandler to queue/DLQ. - queue/DLQ has NO MDB or MessageListener attached. The scenario: My test was to force both the MDBs to rollback the CMT in the onMessage() in order to test if the message ultimately arrives on the queue/DLQ in the event of catastrophic failure of both the business logic, and the failure handling logic layers. The test flow I expected to occur is as follows: 1. Message arrives on queue/A 2. QueueA_MDB->onMessage() fires 3. QueueA_MDB->log a message 4. QueueA_MDB->ctx.setRollbackOnly() 5. retry steps 2-4 3 times. 6. DLQHandler pushes message to queue/FlowErrorDLQ 7. Message arrives on queue/FlowErrorDLQ 8. FlowErrorDLQ_MDB->onMessage() fires 9. FlowErrorDLQ_MDB->log a message 10. FlowErrorDLQ_MDB->ctx.setRollbackOnly() 11. retry steps 8-10 3 times. 12. DLQHandler pushes message to queue/DLQ The flow up to step 7 works as expected. However, what happens after step 7 is as follows: 8. Error occurs prior to FlowErrorDLQ_MDB->onMessage() being invoked (no stack trace though) 9. DLQHandler trace logging shows an internal retry of 3 times 10. DLQHandler pushes message to queue/DLQ Here's the strange part. If I configure the retry count of the FlowErrorDLQ_MDB to be 6 instead of 3 the following flow occurs: 8. Error occurs prior to FlowErrorDLQ_MDB->onMessage() being invoked (no stack trace though) 9. DLQHandler trace logging shows an internal retry of 3 times 10. On retry attempt 4, FlowErrorDLQ_MDB->onMessage() fires 11. FlowErrorDLQ_MDB->log a message 12. FlowErrorDLQ_MDB->ctx.setRollbackOnly() 13. retry (10-12) ** 3 ** times (ie the 4 - 6 retries out of 6) 14. DLQHandler pushes message to queue/DLQ If I set the FlowErrorDLQ_DMB to retry 10 times, the same behaviour occurs with the exception that step 13 invokes the FlowErrorDLQ_MDB->onMessage() 7 times. Any ideas on what could be going wrong with the MDB retry mechanism when using multiple MDBs and DLQ destinations? Dustin ------------------------------------------------------- This SF.net email is sponsored by Dice.com. Did you know that Dice has over 25,000 tech jobs available today? From careers in IT to Engineering to Tech Sales, Dice has tech jobs from the best hiring companies. http://www.dice.com/index.epl?rel_code=104 _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user _____________________________________________________________________ Notice to recipient: The information in this internet e-mail and any attachments is confidential and may be privileged. It is intended solely for the addressee. If you are not the intended addressee please notify the sender immediately by telephone. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited and may be unlawful. When addressed to external clients any opinions or advice contained in this internet e-mail are subject to the terms and conditions expressed in any applicable governing terms of business or client engagement letter issued by the pertinent Bank of America group entity. If this email originates from the U.K. please note that Bank of America, N.A., London Branch, Banc of America Securities Limited and Banc of America Futures Incorporated are regulated by the Financial Services Authority. _____________________________________________________________________ ------------------------------------------------------- This SF.net email is sponsored by: VM Ware With VMware you can run multiple operating systems on a single machine. WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the same time. Free trial click here:http://www.vmware.com/wl/offer/358/0 _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user
