Hello Camel users

I have a problem with some Apache Camel applications (Spring Boot) that are
consuming messages from RabbitMQ.
I am running these applications as Windows Services (using WinSW).

Sometime when I deploy a new application to the Windows server running the
applications, the following exception is logged:

2021-01-28 19:57:24,554 WARN
org.apache.camel.component.rabbitmq.RabbitMQConsumer [Camel (camel-1)
thread #13 - ShutdownTask] Error occurred while stopping consumer. This
exception is ignored
java.io.IOException: Unknown consumerTag
at com.rabbitmq.client.impl.ChannelN.basicCancel(ChannelN.java:1476)
at
com.rabbitmq.client.impl.recovery.AutorecoveringChannel.basicCancel(AutorecoveringChannel.java:642)
at
org.apache.camel.component.rabbitmq.RabbitConsumer.doStop(RabbitConsumer.java:185)
at org.apache.camel.support.ServiceSupport.stop(ServiceSupport.java:119)
at org.apache.camel.util.ServiceHelper.stopService(ServiceHelper.java:142)
at
org.apache.camel.util.ServiceHelper.stopAndShutdownService(ServiceHelper.java:205)
at
org.apache.camel.component.rabbitmq.RabbitMQConsumer.closeConnectionAndChannel(RabbitMQConsumer.java:146)
at
org.apache.camel.component.rabbitmq.RabbitMQConsumer.doSuspend(RabbitMQConsumer.java:161)
at org.apache.camel.support.ServiceSupport.suspend(ServiceSupport.java:145)
at
org.apache.camel.util.ServiceHelper.suspendService(ServiceHelper.java:388)
at
org.apache.camel.impl.DefaultShutdownStrategy.suspendNow(DefaultShutdownStrategy.java:401)
at
org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask.run(DefaultShutdownStrategy.java:572)
at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:830)
2021-01-28 19:57:24,981 INFO
org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask [Camel (camel-1)
thread #13 - ShutdownTask] Route: XXX complete, was consuming from:
rabbitmq://?declare=false&networkRecoveryInterval=30000&queue=test.queue
2021-01-28 19:57:24,981 INFO
org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask [Camel (camel-1)
thread #13 - ShutdownTask] Route: XXX shutdown complete, was consuming
from: seda://dlq
2021-01-28 19:57:24,981 INFO
org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask [Camel (camel-1)
thread #13 - ShutdownTask] Route: XXX shutdown complete, was consuming
from: direct://YYY
2021-01-28 19:57:24,981 INFO
org.apache.camel.impl.DefaultShutdownStrategy$ShutdownTask [Camel (camel-1)
thread #13 - ShutdownTask] Route: XXX shutdown complete, was consuming
from: file://YYY
2021-01-28 19:57:24,981 INFO org.apache.camel.impl.DefaultShutdownStrategy
[RMI TCP Connection(2)-10.0.3.117] Graceful shutdown of 4 routes completed
in 0 seconds
2021-01-28 19:57:24,996 INFO org.apache.camel.impl.DefaultCamelContext [RMI
TCP Connection(2)-10.0.3.117] Apache Camel 2.25.2 (CamelContext: camel-1)
uptime 7 days 17 hours
2021-01-28 19:57:24,996 INFO org.apache.camel.impl.DefaultCamelContext [RMI
TCP Connection(2)-10.0.3.117] Apache Camel 2.25.2 (CamelContext: camel-1)
is shutdown in 0.442 seconds
2021-01-28 19:57:25,076 INFO
org.springframework.scheduling.concurrent.ExecutorConfigurationSupport [RMI
TCP Connection(2)-10.0.3.117] Shutting down ExecutorService
'applicationTaskExecutor'

And that's it.
Although the exception is only a warning and it states that it's ignored,
nothing more happens.
The Windows Service does not stop and it's stuck in state "Stopping"..
Either the entire Windows server has to be restarted or some manual actions
have to be taken to stop the Windows Service.

So I am really not sure where to look for a problem - if this is in Apache
Camel / Spring Boot / RabbitMQ / WinSW...

I found this: https://github.com/spring-projects/spring-amqp/issues/1113

But that relates to the Spring AMQP component which I am not using
(directly). I am using the Spring Boot Camel RabbitMQ Starter.

I noticed someone writing that this happens when the Camel app is stopped
BEFORE it has read any messages from the RabbitMQ server.
That's not what I am seeing - I have seen this in production environments
several times where the Camel apps have been running for months and HAVE
consumed messages.
But I am not sure if this is caused by the RabbitMQ server being retarted
while the Camel apps are running...


Any help is most welcome.

More details about my setup:


Spring Boot App
2.3.5.RELEASE

Apache Camel RabbitMQ Starter:
org.apache.camel
camel-rabbitmq-starter
2.25.2

Configured only from applications.properties using:
camel.component.rabbitmq.hostname=...
camel.component.rabbitmq.port-number=...
camel.component.rabbitmq.username=...
camel.component.rabbitmq.password=...

Using WinWS for Windows Service
WinSW 2.2.0.0 (I know there is a newer version 2.10.3 available, but I
doubt this is the problem)

Cheers
Michael

Reply via email to