我正在对我正在维护的项目运行一系列测试,启动RabbitMQ队列。据我所知,我没有以任何方式与RabbitMQ队列进行交互。但是,定期,我会得到一个似乎影响我测试的ShutdownSignalException
。这是com.rabbitmq.client.impl.AMQConnection#startShutdown
方法中断点的图像:
如何确定我的代码的哪一部分触发此异常?另外,我如何确信我的代码不使用此队列? RabbitMQ代码中是否有任何特殊部分我可以设置断点?
我使用Spring RabbitMQ版本1.3.5.RELEASE来配置我的队列。我对RabbitMQ知之甚少,请告诉我是否还有其他信息。
答案 0 :(得分:1)
"连接重置"通常意味着套接字由于某种原因被关闭。
第一步是查看经纪人的rabbitmq日志。
由于rabbitmq的异步特性,根本原因在调用线程上可能并不明显,但通常ShutdownSignalEcxception
的属性通常会描述问题。
修改强>:
但是,在这种情况下,没有reason
,因为它只是在运行中检测到套接字重置...
} catch (Throwable ex) {
_exceptionHandler.handleUnexpectedConnectionDriverException(AMQConnection.this,
ex);
shutdown(null, false, ex, true);
因此,您需要更多地挖掘以找到重置连接的原因;看看经纪人的日志,看看是否有任何线索。