Nov 10th, 2008, 10:07 AM
Intercept DMLC to trap exceptions
I have a requirement to intercept the exceptions thrown by DefaultMessageListenerContainer. The requirement is to know if any transaction is rolled back and appropriately set the delay in reading the next message from the queue.
Also, let me know if there is any alternative to set the delay in reading messages once an unknown exception happens.
Nov 10th, 2008, 10:24 AM
Message redelivery delay is usually a setting you have to apply to the message provider. You may be able to influence this by setting a special jms header that the provider is aware of. You'd have to check with the documentation for your JMS provider.
Nov 10th, 2008, 10:54 AM
Thanks for looking into my problem. I don't have control on the settings that can be made on the JMS provider. Hence finding out an alternate solution which I can handle in my code.
I have changed task executor to use TimerTaskExecutor in order to handle delay in case of exceptions. My code works fine if any exception is thrown by listener. But fails for exceptions thrown by container.
How can I handle such exceptions?
Nov 10th, 2008, 10:58 AM
The appropriate place to handle this is in the provider, not the DMLC or your listener...