Replies: 4 comments 17 replies
-
Any chances that you can share a simple project to let us to reproduce the problem?
I wonder if |
Beta Was this translation helpful? Give feedback.
-
A demo : rabbitdemo.zip Rabbit configuration can be updated directly in source. You should reproduce the issue by blocking and unblocking the connection on the Rabbit server while this app is running. I did some tests by calling |
Beta Was this translation helpful? Give feedback.
-
Hello, We have deployed the Spring AMQP version with the fix in our production environment but we have now a new and different channel leak. The number of channels in the connection used by our confirmed publishers messages increased continuously while the service is running (around 100 new channels are created by day). This chart shows the number of channels by connection from Rabbit server side. The 2 connections that are growing are the connections that manage confirm publishes. Before upgrading Sprinq AMQP version, on Rabbit Cluster, the number of channel opened minus the number of channel closed was 0. After the update, this value has became positive. Do you have an idea where this could come from? |
Beta Was this translation helpful? Give feedback.
-
We have not reproduced it for now. The context is different from the previous leak. The number of channels grows while all servers are operationnal (and not during Rabbit server incident). |
Beta Was this translation helpful? Give feedback.
-
Hello,
We experienced some issues using correlated Rabbit confirm publishers.
Rabbit server was unstable for a while. Once restored, we were unable to publish new confirmed messages to it (the max number of channel on connection was reached and the existing channels were ignored).
The solution was to restart the service (we could force close the connection : but it only worked when channel cache size wasn't set in
CachingConnectionFactory
)We investigated and found that :
CachingConnectionFactory
creates new channels, and then number of channel in connection increases.when a new channelCacheSize and channelCheckoutTimeout are set in CachingConnectionFactory, we got 'No available channels' error, otherwise, 'The channelMax limit is reached'.
We call
RabbitTemplate.getUnconfirmed()
in a periodic task : the correlation data are removed, but unfortunatly, the related channel is not freed and not available for new publish.You can observe and reproduce the issue as follows :
RabbitTemplate.getUnconfirmed()
Is there a better way to manage not confirmed messages? How can we free the channels when confirmation is not received before a timeout?
Thanks
Beta Was this translation helpful? Give feedback.
All reactions