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

Jms ActiveMQ警告:1 GB的帧大小大于允许的最大100 MB,jms,activemq,Jms,Activemq,我正在尝试从传统jms代理切换到ActiveMQ 有一件事我无法理解,那就是日志中每小时出现一次警告: 显然是ActiveMQ中的某个计划作业输出了此警告, 因为它每小时都在同一分钟出现, 无论是否发送任何消息 但“框架大小”在这里的确切含义是什么? 我们不发送任何大于几千字节左右的jms消息 我听说你可以在连接器中增加这个“maxFramesize”,但也没用 当我尝试将其设置为1GB(1073741824)(或更高)时: ActiveMQ到底在抱怨什么? 我如何修复它?只有当有人向您的代理发

我正在尝试从传统jms代理切换到ActiveMQ

有一件事我无法理解,那就是日志中每小时出现一次警告:

显然是ActiveMQ中的某个计划作业输出了此警告, 因为它每小时都在同一分钟出现, 无论是否发送任何消息

但“框架大小”在这里的确切含义是什么?

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

我听说你可以在连接器中增加这个“maxFramesize”,但也没用

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

ActiveMQ到底在抱怨什么?


我如何修复它?

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

您使用的是哪个版本的ActiveMQ?您的客户机使用什么协议?是否有完整的堆栈跟踪?如果您想支持任意大的消息,您可以考虑ActuMeq的下一代代理。它有支持,嗨,贾斯汀。日志中没有stacktrace,只有一行警告消息。也许有一些设置可以获得更多的调试信息?正如我提到的,我们发送的MSG的最大大小只有几KBs,所以不需要更大的MSG。警告每小时出现一次,无论我们是否发送任何MSG,因此它显然与我们发送的微小MSG无关。连接器/协议是“openwire”(参见OP中的配置行)。它可能类似于安全扫描仪。IIRC nCircle IP360做了一些类似的事情,以查看我们的Tomcat服务器是否易受攻击。事实上,听起来像是某种定期探测定期命中代理端口。嗯。。。有趣的输入。我将看看是否可以设置tcpdump来捕获正在发生的事情……我找到了原因,您当然是对的:)---我们现在正在替换的旧/旧代理有一个监视进程,仍然在同一端口上“ping”,但使用完全不同的协议,因此一些损坏的输入导致了此警告。谢谢大家!:)
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 | ...
<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