SpringBoot应用程序在一小时后停止。

时间:2015-10-04 19:19:02

标签: linux tomcat spring-boot java-7

我有一个在嵌入了Tomcat的Oracle Linux上运行的Spring Boot应用程序(1.2.6)。使用java 1.7.0_45。它会运行20分钟到2个小时。然后某事要么杀了它,要么自我毁灭。我有一个穷人的监视器告诉它何时死亡。除了无法释放jdbc资源之外,应用程序日志记录文件中没有任何有用的内容。我可以做任何事情让Spring或Tomcat告诉我为什么它会停止吗?关闭钩子可以告诉我为什么java进程被终止了吗?我还没有使用Spring Boot Actuator。 linux上的哪些工具可以记录特定pid的活动历史记录?

2 个答案:

答案 0 :(得分:1)

您也可以尝试启用Oracle的黑盒技术。

$JAVA_HOME/bin/java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=dumponexit=true,defaultrecording=true,dumponexitpath=/tmp/crash-data.jfr -jar my.jar

显然,你必须运行Oracle的JDK。

答案 1 :(得分:0)

你可能想要使用类似的东西:

  • visualvm用于监视正在运行的JVM,或
  • jstack + jhat用于分析终止时的堆栈和堆。

要在JVM关闭时获取堆转储(假设它在OutOfMemoryError上死亡),请将其添加到JVM选项中:

-XX:+HeapDumpOnOutOfMemoryError