0
votes

I have RabbitMQ cluster setup with a mirrored queue. The client code works fine with it and when a server is down, the other one handles the requests.

I wanted to do some perf tests on this. For this, I used rabbitmq-client-tools (PerfTest).

sh ./runjava.sh com.rabbitmq.examples.PerfTest -h "AMQP_STRING" -u QUEUE_NAME

This throws the following and does not work:

com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'QUEUE_NAME' in vhost 'VHOST_NAME': received 'false' but current is 'true', class-id=50, method-id=10)

Now when my server is restarted, the queue persists- does it not mean that the queue/exchange is durable? How to solve this?

1

1 Answers

0
votes

It seems you already have a queue called QUEUE_NAME which was declared before. Said queue is durable and you are trying to re-declared it as non-durable, which is not allowed by the protocol.

You have to delete the queue and recreate it with the new properties in order to solve the issue. Make sure to drain the messages on that queue before deleting it.