Java 如何对RabbitMQ关闭信号异常进行故障诊断?
我正在维护一个启动RabbitMQ队列的项目上运行一系列测试。据我所知,我没有以任何方式与RabbitMQ队列交互。但是,我会定期收到一个Java 如何对RabbitMQ关闭信号异常进行故障诊断?,java,rabbitmq,spring-rabbit,Java,Rabbitmq,Spring Rabbit,我正在维护一个启动RabbitMQ队列的项目上运行一系列测试。据我所知,我没有以任何方式与RabbitMQ队列交互。但是,我会定期收到一个ShutdownSignalException,它似乎会影响我的测试。下面是com.rabbitmq.client.impl.AMQConnection#startShutdown方法中断点的图像: 我如何找出我的代码中触发此异常的部分?另外,我怎样才能确信我的代码没有使用这个队列?RabbitMQ代码中是否有任何特殊部分可以设置断点 我正在使用Spring
ShutdownSignalException
,它似乎会影响我的测试。下面是com.rabbitmq.client.impl.AMQConnection#startShutdown
方法中断点的图像:
我如何找出我的代码中触发此异常的部分?另外,我怎样才能确信我的代码没有使用这个队列?RabbitMQ代码中是否有任何特殊部分可以设置断点
我正在使用SpringRabbitMQ版本1.3.5.RELEASE来配置我的队列。我对RabbitMQ了解不多,所以请告诉我是否还有其他信息需要提供。“连接重置”通常表示套接字因某种原因关闭
第一步是查看代理上的rabbitmq日志
由于rabbitmq的异步性质,根本原因在调用线程上可能不明显,但通常,ShutdownSignalEcxception
的reason属性将描述该问题
编辑:
但是,在这种情况下,没有任何原因,因为这只是在运行中检测到的套接字重置
} catch (Throwable ex) {
_exceptionHandler.handleUnexpectedConnectionDriverException(AMQConnection.this,
ex);
shutdown(null, false, ex, true);
因此,您需要进一步挖掘,以找到重新设置连接的原因;查看代理的日志,看看是否有任何线索。但在这种情况下,如果单击图像,可以看到字段为空。是什么原因造成的?对不起;错过了-我在回答中添加了更多的评论。