Hello Camel Team, We are observing an issue with Camel SJMS 1 when using Oracle AQ as the JMS provider. We are using latest camel version 4.18.X.
After a short interruption in connectivity to Oracle AQ, the Camel consumer enters a recovery loop and does not return to stable message consumption. The logs repeatedly show successful recovery, but recovery starts again after approximately 5 seconds, indefinitely. Observed log pattern: We repeatedly see messages like: ```text Recovering from JMS Connection exception (attempt: 125) Created JMS Connection Successfully recovered JMS Connection (attempt: 125) Recovering from JMS Connection exception (attempt: 126) Created JMS Connection Successfully recovered JMS Connection (attempt: 126) ``` This continues indefinitely... In earlier logs, we can also see that the route successfully consumes and processes a few messages before the recovery loop begins again, for example: ```text onMessage.process START Processing exchange ... onMessage.process END onMessage END Recovering from JMS Connection exception (attempt: 2) Created JMS Connection Successfully recovered JMS Connection (attempt: 2) ``` *Impact : * Because recovery continues infinitely, normal message processing is effectively blocked or stuck after the transient AQ interruption. *Current consumer configuration: * The endpoint is configured roughly as ```text ...queue:HS2K.QUEPOSTDATA?acknowledgementMode=CLIENT_ACKNOWLEDGE&asyncStartListener=true&concurrentConsumers=15 ``` *Questions* 1. Is this repeated recovery loop a known behavior in `sjms` after transient JMS provider interruptions? 2. Does `sjms` consider only connection recreation as “successful recovery”, even if consumer/session startup later fails again? 3. Are there existing tests covering a case where: - connection is interrupted, - recovery logs “Successfully recovered JMS Connection”, - but the consumer immediately re-enters recovery again and never stabilizes? 4. Could this be related to `CLIENT_ACKNOWLEDGE`, listener startup, or stale JMS/session objects after reconnect with Oracle AQ? 5. Is there a recommended configuration for Oracle AQ to avoid this behavior? I am attaching the relevant logs for reference. Please let us know if you need additional details such as Camel version, AQ client version, or a minimal reproducer. Regards, Karthik
26.05.29 09:27:44.578 Level=T Commit=2212ea9 Thread-38 nsumer.EndpointMessageListener BreadCrumbId=.................................... onMessage.process START 26.05.29 09:27:44.578 Level=T Commit=2212ea9 Thread-38 nsumer.EndpointMessageListener BreadCrumbId=.................................... Processing exchange 03E8FE71C8AAA8D-00000000000003FA synchronously 26.05.29 09:27:44.590 Level=T Commit=2212ea9 Thread-38 nsumer.EndpointMessageListener BreadCrumbId=.................................... onMessage.process END 26.05.29 09:27:44.590 Level=T Commit=2212ea9 Thread-38 nsumer.EndpointMessageListener BreadCrumbId=.................................... onMessage END 26.05.29 09:27:44.619 Level=T Commit=2212ea9 Thread-38 nsumer.EndpointMessageListener BreadCrumbId=.................................... onMessage START 26.05.29 09:27:44.619 Level=D Commit=2212ea9 Thread-38 nsumer.EndpointMessageListener BreadCrumbId=.................................... sjms://queue:HS2K.QUEPOSTDATA?acknowledgementMode=CLIENT_ACKNOWLEDGE&asyncStartListener=true&concurrentConsumers=15 consumer received JMS message: oracle.jakarta.jms.AQjmsBytesMessage@edce2a2 26.05.29 09:27:44.619 Level=T Commit=2212ea9 Thread-38 nsumer.EndpointMessageListener BreadCrumbId=.................................... onMessage.process START 26.05.29 09:27:44.619 Level=T Commit=2212ea9 Thread-38 nsumer.EndpointMessageListener BreadCrumbId=.................................... Processing exchange 03E8FE71C8AAA8D-00000000000003FB synchronously 26.05.29 09:27:44.632 Level=T Commit=2212ea9 Thread-38 nsumer.EndpointMessageListener BreadCrumbId=.................................... onMessage.process END 26.05.29 09:27:44.632 Level=T Commit=2212ea9 Thread-38 nsumer.EndpointMessageListener BreadCrumbId=.................................... onMessage END 26.05.29 09:27:44.638 Level=D Commit=2212ea9 - SjmsConnectionRecovery SimpleMessageListenerContainer BreadCrumbId=.................................... Recovering from JMS Connection exception (attempt: 2) 26.05.29 09:27:44.799 Level=D Commit=2212ea9 - SjmsConnectionRecovery SimpleMessageListenerContainer BreadCrumbId=.................................... Created JMS Connection 26.05.29 09:27:44.799 Level=D Commit=2212ea9 - SjmsConnectionRecovery SimpleMessageListenerContainer BreadCrumbId=.................................... Successfully recovered JMS Connection (attempt: 2) 26.05.29 09:27:49.799 Level=D Commit=2212ea9 - SjmsConnectionRecovery SimpleMessageListenerContainer BreadCrumbId=.................................... Recovering from JMS Connection exception (attempt: 3) 26.05.29 09:27:49.810 Level=D Commit=2212ea9 - SjmsConnectionRecovery SimpleMessageListenerContainer BreadCrumbId=.................................... Created JMS Connection 26.05.29 09:27:49.810 Level=D Commit=2212ea9 - SjmsConnectionRecovery SimpleMessageListenerContainer BreadCrumbId=.................................... Successfully recovered JMS Connection (attempt: 3) 26.05.29 09:27:54.811 Level=D Commit=2212ea9 - SjmsConnectionRecovery SimpleMessageListenerContainer BreadCrumbId=.................................... Recovering from JMS Connection exception (attempt: 4) 26.05.29 09:27:54.822 Level=D Commit=2212ea9 - SjmsConnectionRecovery SimpleMessageListenerContainer BreadCrumbId=.................................... Created JMS Connection 26.05.29 09:27:54.822 Level=D Commit=2212ea9 - SjmsConnectionRecovery SimpleMessageListenerContainer BreadCrumbId=.................................... Successfully recovered JMS Connection (attempt: 4) 26.05.29 09:27:59.822 Level=D Commit=2212ea9 - SjmsConnectionRecovery SimpleMessageListenerContainer BreadCrumbId=.................................... Recovering from JMS Connection exception (attempt: 5) 26.05.29 09:27:59.833 Level=D Commit=2212ea9 - SjmsConnectionRecovery SimpleMessageListenerContainer BreadCrumbId=.................................... Created JMS Connection 26.05.29 09:27:59.833 Level=D Commit=2212ea9 - SjmsConnectionRecovery SimpleMessageListenerContainer BreadCrumbId=.................................... Successfully recovered JMS Connection (attempt: 5)
