Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.8.0
-
None
Description
JMS Connection Fails After JMS servers Change behind JNDI.
Reproduce:
- Define and enable JNDI Controller Service
- Create a flow with ConsumeJMS or PublishJMS processors with controller service defined in #1.
- Consume and publish at least one message to ensure the connectivity can be established.
- Change JNDI configuration for the same connection factory to point to new JMS servers.
- Stop JMS service on previous servers
- Observe failure in ConsumeJMS/PublishJMS (Caused by: javax.jms.JMSException: Failed to connect to any server at: tcp://jms_server1:12345)
Work Around:
- Disable JNDI Controller Service
- Enable JNDI Controller Service and dependent processors.
Possible Issue/Fix:
- AbstractJMSProcessor has a method "buildTargetResource", in which connection factory is instantiated and then cached in workerPool in onTrigger .
- Issue: Once cached, it will be reused forever.
- Fix: on connectivity failure there should be an attempt to rebuild the worker.
Attachments
Attachments
Issue Links
- links to