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