ActiveMQ 警告:1 GB 的帧大小大于允许的最大值 100 MB

ActiveMQ warning: Frame size of 1 GB larger than max allowed 100 MB

我正在尝试从旧版 jms 代理切换到 ActiveMQ。

我无法弄清楚的一件事是日志中的警告每小时一次:

WARN | Transport Connection to: tcp://127.0.0.1:38542 failed: java.io.IOException: 
  Frame size of 1 GB larger than max allowed 100 MB | ...

显然是 ActiveMQ 中的某个预定作业输出了这个警告, 因为它每小时都在同一分钟到来, 不管有没有消息发送。

但是这里的“帧大小”到底是什么意思?

我们不会发送任何大于几千字节左右的 jms 消息...

我听说您可以增加连接器中的“maxFramesize”,但也没有用。

当我尝试将其设置为 1GB (1073741824)(或更高)时:

<transportConnector name="openwire" 
  uri="tcp://0.0.0.0:61616?maximumConnections=100&amp;wireFormat.maxFrameSize=1073741824"/>

我仍然看到(现在荒谬的)警告消息:

WARN  | Transport Connection to: tcp://127.0.0.1:42256 failed: java.io.IOException: 
  Frame size of 1 GB larger than max allowed 1 GB

ActiveMQ 实际上在抱怨什么?

我该如何解决?

ActiveMQ 5 只会在有人向您的代理发送一条编码为大于配置限制的大小的消息时记录此消息。由于它定期发生在您身上,因此我会寻找一些正在做一些愚蠢的事情的外部资源,例如尝试远程登录到代理 Openwire 端口以检查活动性并发送一些垃圾字符串或类似的东西。除非有东西入站,否则代理不会记录该错误,因此您需要开始寻找错误发件人的来源。