[Documentation] "Channel-level exceptions" and channel recovery state #1674
-
Is your feature request related to a problem? Please describe.The RabbitMQ documentation frequently refers to "Channel-level exceptions" when discussing connection and channel recovery and describes several situations where these exceptions may need to be handled differently. I am unable to find a list of exceptions that are considered "Channel-level exceptions" either through documentation or reviewing the source code for base classes, etc. Describe the solution you'd likeI would like any or all of the following:
Describe alternatives you've consideredAdd an Additional contextI have a use case where I am pooling channels for re-use by an ingestion API. It is my understanding that when a channel is closed due to a "Channel-level exception" that it is not recoverable and needs to be disposed instead of returning it to the pool. Meanwhile, channels that are closed, but recoverable, could still be returned to the pool to prevent churn (especially during a temporary loss of connection). I currently have no way to reliably distinguish between these two situations. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 12 replies
-
If a channel is closed by RabbitMQ, it can never be recovered. |
Beta Was this translation helpful? Give feedback.
If you have time, I suggest migrating your code to use the latest version 7 RC - https://www.nuget.org/packages/RabbitMQ.Client/7.0.0-rc.11
I intended to ship that version today but there are some small API changes coming. Version 7 works much better than version 6 in pretty much every way, especially in its use of the thread pool.