Question regarding notifying JMS queues and RuntimeException within ESB projects
Issue
- I am using
jms-jca-providerand trying to send a notification to a JMS queue about an error which has taken place within an action pipeline. I use aNotifyQueuestarget to do this and everything works as expected when non-RuntimeExceptions occurs. However, when aRuntimeExceptiontakes place, no message is sent to the specified JMS queue and the ESB message seems to be redelivered again and again until it is sent to theDLQ. And added to this redelivery of the ESB message the following ERROR message can be seen in the console output:
ERROR [JmsServerSession] Unexpected error delivering message delegator->JBossMessage[5489123046654009]:PERSISTENT, deliveryId=9
-
What am I doing wrong? Why isn’t the notification sent when an
RuntimeExceptionoccur ? -
What is the difference between a transacted jms-provider and a transacted
jms-jca-provider? I was under the impression that ajms-jca transactioncovers the retrieving of an ESB-message from an ESB-aware JMS queue and the entire process within the action-pipeline whilst the jms transaction only covers the retrieving of an ESB-message and delivery to the action-pipeline. Could you clarify this ? Could you confirm if it is true that no rollback takes place if a non-RuntimeException occur when ajms-jca-provideris used (and the transacted flag is set to true) or have I misunderstood this ? -
How do I implement a custom JMS notifier which will deliver a JMS message outside of the ESB service transaction ?
Environment
- JBoss Enterprise Service Oriented Architecture Platform (SOA-P)
- 5.1.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
