我在系统上安装了tomcat 9.0.14(Windows 10,Windows Server 2016 R2) 启动tomcat服务(2-3秒内启动)时我没有问题。 但是,它需要1分钟才能停止。 我以为我的一个驻留在webapps下的项目需要花费一些时间,因此我删除了所有项目,但结果是一样的。 之后,我将其空的webapps文件夹清空,以进一步检查tomcat花费了1分钟才能停止。 我检查了日志文件,它们没有错误。Tomcat在停止时空闲了1分钟。
Common-deamon.log-------
[2019-01-08 16:30:02] [info] [13948] Stopping service...
[2019-01-08 16:30:03] [info] [13948] Service stop thread completed.
[2019-01-08 16:31:03] [info] [ 1940] Run service finished.
[2019-01-08 16:31:03] [info] [ 1940] Commons Daemon procrun finished
catalina.log--------
08-Jan-2019 16:30:02.399 INFO [Thread-6] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
08-Jan-2019 16:30:02.431 INFO [Thread-6] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"]
08-Jan-2019 16:30:02.453 INFO [Thread-6] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
08-Jan-2019 16:30:02.453 INFO [Thread-6] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
08-Jan-2019 16:30:02.453 INFO [Thread-6] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-8009"]
无论如何,它们都可以减少tomcat 9的浸入时间。 在tomcat 8中,停止时间为3-5秒 任何帮助表示赞赏.....
答案 0 :(得分:1)
我很乐意将其复制
apache-tomcat-9.0.14-windows-x64.zip
apache-tomcat/bin
service.bat install
这似乎是Tomcat的问题,但是当前的developer snapchot (trunk) changelog表示它已经针对尚未发布的Tomcat 9.0.15+(未分配明确的错误报告)进行了修复:
正在开发中的Tomcat 9.0.15(市场)/ Catalina:
更正9.0.14中暴露的错误,并确保Tomcat作为服务运行时及时终止。 (市场)
答案 1 :(得分:0)
我们在 Tomcat v9.0.26 上遇到了同样的问题。终止服务器后,Tomcat 刚好用了 60 秒才完成。我们努力关闭和关闭我们应用程序中的所有内容,最后我们意识到我们有一个 ThreadPoolExecutor 创建了一个 newCachedThreadPool() 并且这个缓存池有一个 “keepAliveTime” 60 秒。。 >
因此,在终止 tomcat 后,线程池等待 60 秒以检查是否仍需要重用线程。只有在这之后它才真正关闭。所以解决方案是在我们关闭应用程序后关闭缓存的线程池。