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)

Reply via email to