spring JMS生成器错误:会话:由于超时等待代理强制流控制,消息发送失败

时间:2016-09-03 16:24:44

标签: spring jms qpid

我使用Spring JMS发送和接收带有apache QPID的消息。 我收到此错误消息:

会话:由于超时等待代理强制流控制而导致消息发送失败

是什么原因造成的?是因为队列耗尽了吗? 我在哪里可以为队列配置流量控制?

感谢。

1 个答案:

答案 0 :(得分:1)

Qpid Broker for Java对Sessions在违反限制时发送消息强制执行流量控制。限制可以应用于单个队列,单个虚拟主机或整个文件系统使用。

在默认配置中,将应用整体文件系统利用率限制。当它检测到托管$QPID_WORK的卷超过90%的磁盘利用率时,它会自动强制执行流量控制。

当超出限制时,Broker会将消息写入日志,例如:

VHT-1006 Filesystem is over x% per cent full, enforcing flow control.

当利用率下降时(因为消息已被消耗),流量控制将自动放弃,生产者可能会再次开始发送。

VHT-1007 Filesystem is no longer over x% per cent full.

您可以在此处详细了解此功能:

https://qpid.apache.org/releases/qpid-java-6.0.4/java-broker/book/Java-Broker-Runtime-Disk-Space-Management.html#Qpid-Producer-Flow-Control

https://qpid.apache.org/releases/qpid-java-6.0.4/java-broker/book/Java-Broker-Appendix-Operation-Logging.html#Java-Broker-Appendix-Operation-Logging-Message-List-VirtualHost