RabbitMQ:清除连接关闭;原因:尝试使用封闭渠道

时间:2018-11-25 14:42:19

标签: rabbitmq cloudamqp

我依靠CloudAMQP服务,我需要能够支持最大10 MB的消息:

1. Map<String, Object> params = new HashMap<>();
2. params.put("x-ha-policy", "all");
3. params.put("x-max-length-bytes", 10_000_000);
4. channel.queueDeclare(messageQueueName, true, false, false, params);

我的问题是,每当第3行未注释掉时,队列就会引发异常:

Caused by: com.rabbitmq.client.ShutdownSignalException: 
channel error; reason: {#method<channel.close>(reply-code=406,
reply-text=PRECONDITION_FAILED - 
inequivalent arg 'x-max-length-bytes' for queue 'someQueueName' 
in vhost 'yzscezrk': received none but current is the value '1000000'
of type 'signedint

我在这里做什么错了?

1 个答案:

答案 0 :(得分:0)

PRECONDITION_FAILED意味着您已经声明了一个队列,并且正在尝试使用不同的参数创建相同的队列。

该队列已经具有参数x-max-length-bytes,很可能您正在尝试更改它。

您可以删除队列(您将丢失消息),然后尝试使用所需的参数再次创建队列