公司服务系统蹦掉了好几次,因为是个遗留系统,有没有留下开发文档,代码已经很乱了。一直没时间去找原因,只是简单的清理了下重启了tomcat,老板就这问题也说了好几次,要求找出原因。昨天新的一年开工了,首要任务就是解决这个问题。
想想无非就那么几个地放出问题。硬件问题?虽说公司服务器比较烂吧也不至于跑不起这个系统,可以排除。一开始没有第一时间去看tomcat的日志,就去检查是不是数据库connection没有close,看看都关闭了,只是大部分地方没有关闭ResultSet和Statement,关闭了connection应该其余也就关闭了。
今天看日志才知道是内存溢出。
抛出异常:
Exception in thread "http-80-114" java.lang.OutOfMemoryError: PermGen space
Exception in thread "http-80-115" java.lang.OutOfMemoryError: PermGen space
Exception in thread "http-80-116" java.lang.OutOfMemoryError: PermGen space
Exception in thread "http-80-117" java.lang.OutOfMemoryError: PermGen space
Exception in thread "http-80-118" java.lang.OutOfMemoryError: PermGen space
Exception in thread "http-80-119" java.lang.OutOfMemoryError: PermGen space
找到了原因,问题就好解决了,修改jvm的内存大小就ok,不知道后面还会不会有问题,再看了。
转载下网上的解决方法,以防以后忘了。
抛出异常java.lang.OutOfMemoryError: PermGen space 。网上查找资料,解释为:
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。
解决方法:手动设置MaxPermSize大小。网上多为修改配置文件的方式。我的操作系统是windows2003, 用tomcat本身提供的工具(Configure Tomcat)就可以设置。如下图所示,在java options中加入红色方框中的两行语句即可。通过命令行参数-XX:PermSize和-XX:MaxPermSize设置该区域的大小,数值应根据机器实际内存大小来定。注:每行命令前后不要有空格,否则会导致tomcat启动失败。
分享到:
相关推荐
tomcat宕机重启脚本,比较简单的一种设置
java监听Tomcat是否宕机 可以重启
如果Tomcat应用依赖的数据库服务出现故障,如数据库服务器宕机、网络中断或数据库连接池配置不当,都可能导致Tomcat服务因无法正常访问数据源而自动关闭。 ### 5. 安全攻击与恶意软件 虽然在给定的部分内容中没有...
shell监控tomcat进程,宕机重启,其他服务也是类似。
此程序用于运行在服务器中,预留在内存中,监控...(TOMCAT运行状态) 原理即间隔性的访问指定的服务器中运行的网站,如果能够打开就正常,打不开就执行重启命令 使用前,请修改conf.properties文件,其中有各项配置
在Windows操作系统中,为了实现Apache Tomcat服务器的自动启动,我们可以编写VBScript(Visual Basic Script)脚本。VBScript是一种轻量级的脚本语言,常用于Windows系统的批处理任务,如定时启动服务、程序等。下面...
本文提供的实例代码展示了如何使用Java来检测Tomcat是否宕机,并在检测到宕机时自动控制重启,这对于保障服务的可用性至关重要。以下是该方法的核心知识点: 1. **HTTP连接检查**:首先,通过创建一个`URL`对象并...
【标题】:“Tomcat监控及自动重启” 在Java Web开发中,Tomcat是一个广泛应用的开源应用服务器,负责运行Servlet和JSP应用。监控Tomcat的状态和自动重启是系统管理员日常维护工作的重要部分,确保服务的稳定性和高...
主要介绍了tomcat服务器宕机解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
更重要的是,nginx还提供了宕机自动切换的能力,这确保了在某后端服务器发生故障时,能够快速切换到健康节点继续提供服务,从而保障了服务的连续性和稳定性。 在nginx中进行负载均衡配置,一般会利用到默认安装的...
Shell脚本定时监控tomcat,服务挂掉自动重启
TongWeb 5.0版本在4.6版本的基础上进行了性能的提升,提供了真正的“零宕机”服务性能。它全面支持J2EE5的标准规范和其他标准规范,如WebService、SSL、Xml等。相比之下,Tomcat只支持部分J2EE标准,应用局限性强,...
这种方式不仅可以解决Session丢失的问题,还具有高可用性,因为Redis可以提供持久化存储,即使某个Tomcat实例宕机,恢复后也能快速找回Session信息。同时,由于Session数据存储在独立的Redis中,对于提升应用性能也...
然而,由于各种原因(如系统故障、资源耗尽或应用程序错误),Tomcat可能会意外停止运行。为了解决这个问题,我们可以创建一个监测和自动启动Tomcat的脚本来确保服务的连续性。针对"监测tomcat应用down自动启动脚本...
3. **持久化**:Redis可以通过配置实现数据的持久化,即使服务器宕机,session数据也不会丢失。 4. **集群支持**:Redis支持集群模式,可以方便地扩展到更大的规模。 5. **跨应用共享**:如果多个应用需要共享...
本案例中的“tomcat异常结束自动重启脚本”就是针对这一需求的具体解决方案,主要用于确保Tomcat应用服务器在遇到异常情况时能够快速恢复服务,减少因服务器宕机导致的数据丢失和用户体验下降。 Tomcat是一款广泛...
由于工作需求,本人自己制作的 Tomcat 定时重启小工具,监听Tomcat的CMD运行窗口,计算运行时间,来完成 定时重启任务,配置可以自动临时保存...打算在后续版本中加入一个 HTTP监听任务,判断是否宕机。联系Q 58599886
【标题】"Tomcat监控脚本(支持Windows、Linux)"涉及到的是如何确保Tomcat服务器的稳定运行,通过自动化脚本来实现对服务器状态的实时监控,防止宕机情况的发生。这通常包括性能指标的采集、异常检测和自动处理机制。...
如果某个Tomcat或WebLogic实例宕机,Nginx会自动停止向该实例发送请求,直到它恢复。此外,可以通过调整Nginx配置中的权重参数来实现故障切换时的流量重新分配。 对于性能调优,Tomcat可以通过调整`server.xml`中的...
* 高可用性:如果一个Tomcat实例宕机,其他Tomcat实例可以继续处理请求,从而实现高可用性。 * 扩展性:可以根据需要添加更多的Tomcat实例,以满足不断增长的访问请求。 Aapche+Tomcat实现服务数据集群可以解决...