why channel instance can cache exchanges info #1233
-
Describe the bugFirst, I created a wrong exchange in the management web, and then created a exchange through the channel instance to report an error code = 406, then I deleted the exchange in the management web and tried to create the exchange through the previous channel instance, but still reported an error 406 showing that the attributes did not match(i know this mean). My question is why the exchange has been deleted? Why does the channel instance not create the switch but still read the old exchange Information? Reproduction steps1.The management web creates a exchange with durable = true name = x Expected behaviorI intuitively think that every time I go through the channel.exchangeDeclare method, I will interact with mq (even if this channel has already been created), therefore, after I delete the wrong exchange, the next time I create a exchange through the existing channel, it will succeed. Additional contextmy client version RabbitMQ 3.3.5 |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 7 replies
-
I want to know if there is a cache in the channel, and if there is a cache, where should I find the relevant cache code? Thank you very much! |
Beta Was this translation helpful? Give feedback.
-
There's no cache in the channel. The connection recovery mechanism does keep track of what's created though. The client and broker versions are outdated. Please try again with the latest versions (Java client 5.20.0 and RabbitMQ 3.12.12) to see if the problem persists. |
Beta Was this translation helpful? Give feedback.
-
@Y-Meta unless you work in a software museum, the answer is an upgrade is close to 10 years overdue. |
Beta Was this translation helpful? Give feedback.
There's no cache in the channel. The connection recovery mechanism does keep track of what's created though.
The client and broker versions are outdated. Please try again with the latest versions (Java client 5.20.0 and RabbitMQ 3.12.12) to see if the problem persists.