Tomcat自动closures

我在Windows服务器上使用Apache和Tomcat,从今天上午开始,Tomcat停止工作,没有任何日志。 它不挂,它只是closures。
没有loginTomcat,CPU /内存是罚款,我的代码中没有System.Exit

有人有这个问题吗?

它在5-10分钟后随机发生。 应用程序响应正常,有时候,景气停止工作。

更新:仍然没有线索。 pipe理团队将在另一个框中安装Web应用程序…

这听起来像JVM崩溃。 您是否查找了JVM崩溃日志? 它通常有一个名称,如hs_err_pid * .log,并在JVM的工作目录中创建。

如果您找到这样的文件并上传,那么我们可以帮助更多。

一些问题:

  • 你最近有没有改变你使用的Java版本?
  • 什么是你正在使用的Tomcat的确切版本?
  • 您是否使用Tomcat Native(Apache Portable Runtime)?

我有这个问题,我发现这个链接的原因。 我的脚本启动tomcat有最后一行tail -f catalina.out 。 有时候我没有杀死这个脚本,shell然后超时,并用包括tomcat在内的所有子进程杀死脚本。

最近我有这个问题,如果将来有人面对同样的问题,我希望这会有所帮助。

场景: Tomcat关闭,没有任何日志或错误

我的问题的根本原因:使用TimerTask从任务访问的同步方法

我有一个单一类的同步方法基于定时器或用户操作从各种线程访问有时这种方法将需要花费几分钟时间完成。 当TimerTask正在等待这个方法一段时间(我猜计时器超时/线程死亡或在后台发生的事情),当方法的锁释放的时候,tomcat被杀害。

所以我删除了同步关键字,并删除了单例,并为线程安全做了一些代码更改。 那问题就没有了

我怎么知道的:我在synchronized方法的第一行有一个日志语句,每次tomcat关闭时,我都会在最后几行找到这条消息。

问候,Phanindra Kasturi

在调试像这样的问题时要寻找的东西:

  • 查看日志目录($ TOMCAT_ROOT / logs)以确保没有任何日志文件具有任何堆栈跟踪
  • 查看tomcat启动脚本来检查日志文件的位置,以查看日志是否没有写入其他目录。
  • 另一个原因可能是一些其他的用户/进程可能会发出一个kill -9,这可能会导致tomcat无法登录错误。

另一种可能性是,今天早上在绑定到服务器所需端口的框中启动了一些进程。

您的servlet或它的一个依赖关系是否允许调用System.exit()? (不知道如何锁定Tomcat虚拟机在这个意义上)

我有开发者认为可以使用exit(666); 在检测到一个不可逆矩阵(这是不好的,但肯定不是致命的)。 Arrgh。 也许你的系统中有一些类似的罪魁祸首?

我注意到在我的路径中的CATALINA_OPTS,并设置为较低的JVM大小。 因此,找到了tomcat的崩溃和没有日志的痕迹。 服务器在不到2小时内自动关机。

检查,CATALINA_OPTS或JAVA_OPTS – 这些可能有jvm设置。 要么增加它们,要么将其注释掉,并增加交换内存。

“本地计算机上的服务已启动,然后停止,如果有其他服务或程序未使用,某些服务会自动停止。”

我经历了这个问题,我已经尝试了很多方法来解决问题,最后我得到了如下解决方案。

1)点击开始按钮中的运行命令。

2)输入Services.msc,然后单击确定,您将获得计算机中的所有服务。

3)选择您的服务,并右键单击服务,然后选择属性

4)转到登录属性并选择本地系统帐户,然后单击确定。

这将工作。

这可能是一个Apache问题。 我们重新启动,稍微用Apache配置,然后再次运行…奇怪