3

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

在此处输入图像描述

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

我正在使用 Spring RabbitMQ 版本 1.3.5.RELEASE 来配置我的队列。我对 RabbitMQ 了解不多,所以如果我应该提供任何其他信息,请告诉我。

4

1 回答 1

1

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

第一步是查看代理上的 rabbitmq 日志。

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

编辑

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

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

因此,您需要进一步挖掘以找出连接重置的原因;看看broker的日志,看看有没有什么线索。

于 2015-02-07T04:50:26.997 回答