Question regarding notifying JMS queues and RuntimeException within ESB projects
Issue
- I am using
jms-jca-provider
and trying to send a notification to a JMS queue about an error which has taken place within an action pipeline. I use aNotifyQueues
target to do this and everything works as expected when non-RuntimeExceptions occurs. However, when aRuntimeException
takes 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
RuntimeException
occur ? -
What is the difference between a transacted jms-provider and a transacted
jms-jca-provider
? I was under the impression that ajms-jca transaction
covers 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-provider
is 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, tools, and much more.