tomcat报BAD packet signature 18245错误的原因

最近把项目部署到windows服务器上面,通过tomcat跑80端口,一直很稳定。今天在查tomcat日志时,发现了大量的错误日志,错误详细信息如下:

2009-11-15 16:09:05 org.apache.jk.common.MsgAjp processHeader
严重: BAD packet signature 18245
2009-11-15 16:09:05 org.apache.jk.common.ChannelSocket processConnection
严重: Error, processing connection
java.lang.IndexOutOfBoundsException

 

    at java.io.BufferedInputStream.read(BufferedInputStream.java:310)
    at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:620)
    at org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:577)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:685)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
    at java.lang.Thread.run(Thread.java:619)

 

通过日志错误信息,可以判定不是程序问题。通过查看相关资料可以判定是有人访问程序的ajp端口造成的,于是我模拟访问ajp的端口,结果真的重现出来了。于是我把tomcat配置文件service.xml中的相关内容注解掉就可以了。

<!–

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

  –>

结果这个错误就不会出现了。

根据您提供的引用内容,max_allowed_packet变量可能由于以下原因出现问题: 1. 查询包大小限制:max_allowed_packet变量用于设置MySQL服务器接受的单个包的最大大小。如果您执行的查询包超过了这个限制,服务器将会返回一个错误。这通常会导致"Packet for query is too large"的错误消息。 2. 默认值设定不当:max_allowed_packet变量的默认值取决于MySQL的配置。在某些情况下,默认值可能设置得过小(例如1MB或4MB)。如果您的查询包的大小超过了默认值,您可能需要将max_allowed_packet变量的值增加到足够大的大小。 为了解决这个问题,您可以尝试以下方法: 1. 检查查询包大小:可以通过执行"show VARIABLES like '%max_allowed_packet%';"语句来查看当前max_allowed_packet变量的值。确保查询包的大小不超过该限制。 2. 调整max_allowed_packet变量的值:如果您的查询包超过了max_allowed_packet变量的限制,则需要将其值增加到足够大的大小。可以通过修改MySQL配置文件(如my.cnf或my.ini)来设置max_allowed_packet的值。找到并修改max_allowed_packet的值,并重新启动MySQL服务器以使更改生效。 请注意,改变max_allowed_packet的值可能会影响服务器的性能和资源使用情况。因此,在增加max_allowed_packet的值之前,请确保您的服务器有足够的资源来处理更大的查询包。 综上所述,max_allowed_packet变量可能会由于查询包大小超过限制或默认值设定不当而出现问题。通过检查查询包大小并适当调整max_allowed_packet的值,您应该能够解决这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值