Tomcat 套接字侦听超时
Tomcat socket listening timeouts
我们刚刚从 JDK8 更新到 JDK11,我们的 Tomcat 开始报告此警告(我们使用 Docker 图片 tomcat:9-jre11-slim
):
2019-04-17 10:17:35.060 WARNING [:tomcat] org.apache.catalina.core.StandardServer The socket listening for the shutdown command experienced an unexpected timeout [256] milliseconds after the call to accept(). Is this an instance of bug 56684?
java.net.SocketTimeoutException: Accept timed out
at java.base/java.net.PlainSocketImpl.socketAccept(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458)
at java.base/java.net.ServerSocket.implAccept(ServerSocket.java:551)
at java.base/java.net.ServerSocket.accept(ServerSocket.java:519)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:607)
at org.apache.catalina.startup.Catalina.await(Catalina.java:722)
at org.apache.catalina.startup.Catalina.start(Catalina.java:668)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
警告中提到的错误 #56684 指的是:https://bz.apache.org/bugzilla/show_bug.cgi?id=56684 - 可能已修复但不是很相关。
- 我们可以忽略这个错误吗?这似乎只是 Tomcat.
内部的东西
- 如果是这样,将它放在
logging.properties
中就足够了吗?
org.apache.catalina.core.StandardServer = SEVERE
错误 #56684 是一个旧错误,这可能是一个(预期的?!)回归,因为错误消息提到了错误 :-P
这是一个 WARNING
关于 shutdown socket 通常在端口 8005 上侦听。
1- 如果您停止 tomcat 的方法按预期工作,则可以忽略警告。
2- 除非这些消息是垃圾邮件,否则我建议不要更改日志记录配置。
如上面 link 中所述,关闭套接字可以禁用设置端口为 -1
。这可能会使警告消失。
我们刚刚从 JDK8 更新到 JDK11,我们的 Tomcat 开始报告此警告(我们使用 Docker 图片 tomcat:9-jre11-slim
):
2019-04-17 10:17:35.060 WARNING [:tomcat] org.apache.catalina.core.StandardServer The socket listening for the shutdown command experienced an unexpected timeout [256] milliseconds after the call to accept(). Is this an instance of bug 56684?
java.net.SocketTimeoutException: Accept timed out
at java.base/java.net.PlainSocketImpl.socketAccept(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458)
at java.base/java.net.ServerSocket.implAccept(ServerSocket.java:551)
at java.base/java.net.ServerSocket.accept(ServerSocket.java:519)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:607)
at org.apache.catalina.startup.Catalina.await(Catalina.java:722)
at org.apache.catalina.startup.Catalina.start(Catalina.java:668)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
警告中提到的错误 #56684 指的是:https://bz.apache.org/bugzilla/show_bug.cgi?id=56684 - 可能已修复但不是很相关。
- 我们可以忽略这个错误吗?这似乎只是 Tomcat. 内部的东西
- 如果是这样,将它放在
logging.properties
中就足够了吗?
org.apache.catalina.core.StandardServer = SEVERE
错误 #56684 是一个旧错误,这可能是一个(预期的?!)回归,因为错误消息提到了错误 :-P
这是一个 WARNING
关于 shutdown socket 通常在端口 8005 上侦听。
1- 如果您停止 tomcat 的方法按预期工作,则可以忽略警告。
2- 除非这些消息是垃圾邮件,否则我建议不要更改日志记录配置。
如上面 link 中所述,关闭套接字可以禁用设置端口为 -1
。这可能会使警告消失。