SpringBoot 应用程序在一小时后停止。
SpringBoot app stops after a hour.
我在 Oracle Linux 上有一个 Spring 启动应用程序 (1.2.6) 运行ning,其中嵌入了 Tomcat。使用 java 1.7.0_45。它将 运行 罚款 20 分钟到 2 小时。然后有些东西要么杀死它,要么自毁。我有一个穷人的监视器可以告诉它什么时候死了。除了无法释放 jdbc 资源外,应用程序 logback 日志文件中没有显示任何有用信息。我可以做任何事情让 Spring 或 Tomcat 告诉我它停止的原因吗?关闭挂钩可以告诉我 java 进程被终止的原因吗?我还没有使用 Spring Boot Actuator。 linux 上的哪些工具可以记录特定 pid 的 activity 历史记录?
您可能想使用类似的东西:
要在 JVM 关闭时获取堆转储(假设它死于 OutOfMemoryError),请将此添加到您的 JVM 选项:
-XX:+HeapDumpOnOutOfMemoryError
您也可以尝试启用 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。
我在 Oracle Linux 上有一个 Spring 启动应用程序 (1.2.6) 运行ning,其中嵌入了 Tomcat。使用 java 1.7.0_45。它将 运行 罚款 20 分钟到 2 小时。然后有些东西要么杀死它,要么自毁。我有一个穷人的监视器可以告诉它什么时候死了。除了无法释放 jdbc 资源外,应用程序 logback 日志文件中没有显示任何有用信息。我可以做任何事情让 Spring 或 Tomcat 告诉我它停止的原因吗?关闭挂钩可以告诉我 java 进程被终止的原因吗?我还没有使用 Spring Boot Actuator。 linux 上的哪些工具可以记录特定 pid 的 activity 历史记录?
您可能想使用类似的东西:
要在 JVM 关闭时获取堆转储(假设它死于 OutOfMemoryError),请将此添加到您的 JVM 选项:
-XX:+HeapDumpOnOutOfMemoryError
您也可以尝试启用 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。