java - 当出现内存不足错误时自动重启tomcat

标签 java tomcat jvm tomcat7 apache-tomee

如何将 Tomcat 配置为在出现内存不足 [OOME] 错误时自动重启。

我觉得

-XX:OnOutOfMemoryError="/yourscripts/tomcat-restart"

但不确定这里“yourscripts”代表什么目录?

最佳答案

您提供给 -XX:OnOutOfMemoryError 的值必须是可执行文件(可以是可执行脚本)的完全限定路径。该脚本必须基本上立即返回,以便 jvm 可以继续并关闭。所以它需要尝试在后台停止和启动 tomcat。这可能会产生有效的 2 个脚本:

脚本 1:

#!/bin/bash
script2.sh &

脚本 2:

# stop tomcat
# make sure it is dead (kill "zombie" process if necessary)
# start tomcat

-XX:OnOutOfMemoryError 应该指向脚本 1。

关于java - 当出现内存不足错误时自动重启tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24781056/

相关文章:

jvm - 如何使用 Micrometer 和 Alertmanager 警告 Prometheus 中的 JVM 内存使用情况

java - cat Unix命令直接来自java,不应该调用shell脚本

Java – 在运行时引用对象名称的问题

java - 如何在不显示端口的情况下使用域直接访问部署在 aws tomcat 中的 Web 应用程序?

java - Jersey 在 Servlet 3.0/Tomcat 7.0 上运行的简单 REST 服务未运行但 http 状态为 500

java - 支持JVM的平台

Java - 当我使用 PrintWriter、BufferedWriter 和 FileWriter 写入时如何从文件中读取?

java - 在RESTFul Web服务中调用POST方法

java - Tomcat/websocket 响应错误 404

java - JVM 进程如何分配内存?