如何解决RabbitMQ ShutdownSignalException问题?

时间:2015-02-07 00:21:58

标签: java rabbitmq spring-rabbit

我正在对我正在维护的项目运行一系列测试,启动RabbitMQ队列。据我所知,我没有以任何方式与RabbitMQ队列进行交互。但是,定期,我会得到一个似乎影响我测试的ShutdownSignalException。这是com.rabbitmq.client.impl.AMQConnection#startShutdown方法中断点的图像:

enter image description here

如何确定我的代码的哪一部分触发此异常?另外,我如何确信我的代码不使用此队列? RabbitMQ代码中是否有任何特殊部分我可以设置断点?

我使用Spring RabbitMQ版本1.3.5.RELEASE来配置我的队列。我对RabbitMQ知之甚少,请告诉我是否还有其他信息。

1 个答案:

答案 0 :(得分:1)

"连接重置"通常意味着套接字由于某种原因被关闭。

第一步是查看经纪人的rabbitmq日志。

由于rabbitmq的异步特性,根本原因在调用线程上可能并不明显,但通常ShutdownSignalEcxception的属性通常会描述问题。

修改

但是,在这种情况下,没有reason,因为它只是在运行中检测到套接字重置...

        } catch (Throwable ex) {
            _exceptionHandler.handleUnexpectedConnectionDriverException(AMQConnection.this,
                                                                        ex);
            shutdown(null, false, ex, true);

因此,您需要更多地挖掘以找到重置连接的原因;看看经纪人的日志,看看是否有任何线索。