【问题标题】:Tomcat shutting down unexpectedly without traceTomcat 意外关闭,没有任何痕迹
【发布时间】:2017-05-10 12:19:53
【问题描述】:

首先我必须说,我已经查看了所有相关帖子,但无法找到可行的解决方案。

我在 Centos 7 上运行 Tomcat 8.5.6。

我有一个在 Tomcat(8080、8009、8443)上运行的 API,它运行了很长时间而没有出现问题。上周我不得不创建一个新的 API 并开始出现问题:Tomcat 意外关闭,没有留下任何痕迹。我尝试将端口 8007(转发到端口 8443)用于新的 api。两个 api 都有效,但 Tomcat 一直在关闭。我尝试使用 8081,但无法在其上创建连接。

最后我决定在端口 8081 上安装一个新的 Tomcat 实例,但无法使新的 api 在新的 Tomcat(端口 8081、8007 和 8444)上工作。

我已禁用运行第一个 api 的 Tomcat 的关闭端口 (-1) 并停止了第二个 Tomcat(所以我现在只有 1 个 Tomcat 运行)并回滚了我所做的所有更改,但 Tomcat 一直在关闭向下。

从 Catalina.out 日志中,我不能说太多(它没有说任何关于关闭的内容)。它只是启动结束和以下重新启动(每次我意识到它已关闭时我都必须订购):

Configuring Spring Security Core ...
... finished configuring Spring Security Core


Configuring Spring Security REST 2.0.0.M2...
... finished configuring Spring Security REST


Configuring Spring Security UI ...
... finished configuring Spring Security UI

09-May-2017 22:44:01.315 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /opt/tomcat/tomcat-8.5.6/webapps/myapi-api.war has finished in 40,056 ms

09-May-2017 22:44:01.316 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /opt/tomcat/tomcat-8.5.6/webapps/manager

09-May-2017 22:44:01.363 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /opt/tomcat/tomcat-8.5.6/webapps/manager has finished in 47 ms

09-May-2017 22:44:01.363 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /opt/tomcat/tomcat-8.5.6/webapps/ROOT_

09-May-2017 22:44:01.385 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /opt/tomcat/tomcat-8.5.6/webapps/ROOT_ has finished in 22 ms

09-May-2017 22:44:01.385 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /opt/tomcat/tomcat-8.5.6/webapps/ROOT

09-May-2017 22:44:01.395 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /opt/tomcat/tomcat-8.5.6/webapps/ROOT has finished in 10 ms

09-May-2017 22:44:01.403 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-nio-8080]

09-May-2017 22:44:01.409 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [ajp-nio-8009]

09-May-2017 22:44:01.410 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 40230 ms



10-May-2017 08:22:08.631 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        My App Server

10-May-2017 08:22:08.662 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Nov 1 2016 00:00:00 UTC

10-May-2017 08:22:08.662 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         1.0.0.0

10-May-2017 08:22:08.663 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux

10-May-2017 08:22:08.663 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            3.10.0-514.10.2.el7.x86_64

10-May-2017 08:22:08.663 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64

10-May-2017 08:22:08.663 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/java/jdk1.8.0_112/jre

10-May-2017 08:22:08.664 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           1.8.0_112-b15

10-May-2017 08:22:08.664 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation

10-May-2017 08:22:08.664 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /opt/tomcat/tomcat-8.5.6

10-May-2017 08:22:08.664 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /opt/tomcat/tomcat-8.5.6

10-May-2017 08:22:08.665 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/opt/tomcat/tomcat-8.5.6/conf/logging.properties

10-May-2017 08:22:08.665 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

10-May-2017 08:22:08.665 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048

10-May-2017 08:22:08.665 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources

10-May-2017 08:22:08.665 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/opt/tomcat/tomcat-8.5.6

10-May-2017 08:22:08.666 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/opt/tomcat/tomcat-8.5.6

10-May-2017 08:22:08.666 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/opt/tomcat/tomcat-8.5.6/temp

10-May-2017 08:22:08.666 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

10-May-2017 08:22:08.991 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]

10-May-2017 08:22:09.022 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read

10-May-2017 08:22:09.024 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]

10-May-2017 08:22:09.026 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
10-May-2017 08:22:09.026 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 1112 ms

10-May-2017 08:22:09.061 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina

10-May-2017 08:22:09.062 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: My App Server

10-May-2017 08:22:09.096 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive /opt/tomcat/tomcat-8.5.6/webapps/myapi-api.war

我是 Tomcat 和 Centos 的新手,但我已经为此努力了很多天但没有运气,我不知道为什么我在部署新 api 时开始遇到问题。

我不确定这些信息是否足以进行分析,但我将不胜感激。

谢谢。

【问题讨论】:

  • 我怀疑我们能帮上什么忙,但是您有没有检查系统日志以查看操作系统是否正在杀死 Tomcat? (谷歌“oom 杀手”)
  • 检查是否生成了 hs_err_pid* 文件:oracle.com/technetwork/java/javase/felog-138657.html
  • catalina.sh run 开始并检查std 上的输出,也许它会给你一个关于发生了什么的线索。

标签: java apache tomcat


【解决方案1】:

感谢你们的 cmets。我不知道为什么,但是打开了几个 Tomcat 进程。我重新启动了服务器,启动了 Tomcat,现在一切似乎都运行良好,只有 1 个 Tomcat 进程。

再次感谢!

【讨论】: