You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by KARTHIK PRABHU N <ka...@gmail.com> on 2026/05/29 09:04:21 UTC

Camel SJMS Auto Reconnection Issue with Oracle AQ

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

Re: Camel SJMS Auto Reconnection Issue with Oracle AQ

Posted by Federico Mariani <fe...@gmail.com>.
Hello, thanks for reporting this issue. Sounds like a bug, I'll investigate
it.

Il giorno ven 29 mag 2026 alle ore 11:04 KARTHIK PRABHU N <
karthikprabhu77@gmail.com> ha scritto:

>
> 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
>

Re: Camel SJMS Auto Reconnection Issue with Oracle AQ

Posted by Federico Mariani <fe...@gmail.com>.
I do confirm this is a bug, and opened
https://issues.apache.org/jira/browse/CAMEL-23646, I'll provide a PR
shortly.

To answer your questions:

1. no, it is just a bug :)
2. no, the recovery recreates both the connection and the session
3. There were no tests, in the PR I'll add some
4/5. no, it is not related with Oracle AQ at all, I managed to reproduce a
similar scenario with Artemis

https://github.com/apache/camel/pull/23639 - I'll backport it to
camel-4.18.x stream as well, if you can test on the SNAPSHOT once merged
would be great.

Federico

Il giorno ven 29 mag 2026 alle ore 11:04 KARTHIK PRABHU N <
karthikprabhu77@gmail.com> ha scritto:

>
> 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
>