<%-- JSP全站自动生成HTML下载新闻系统 V3.1 作者:JSP天空网站长 曹进 QQ:173241393 --%> Java内存溢出导致服务器死机之应急解决方案
 
用户名:
密码:
终身会员
  首页 网络文摘 技术专题 下载中心 JSP培训 公司产品 JSP虚拟主机 技术论坛 会员 JSP免费空间  
  技术文摘: JSP基础 | JSP高级 | JSP环境 | JAVA基础 | JAVA高级 | JAVA工具 | JAVA数据库 | WEB框架 | XML相关 | JAVA考试 | J2EE相关 | J2ME相关 |
  视频下载: 程序设计数据库相关教程计算机基础教程图形图像网络技术网络安全时空书库EasyShop虚拟主机JSP培训技术论坛
  书籍教程: JSP教程Java教程图像软件XML教程数据库教程网页教程工具软件服务器相关ASP教程PHP教程CGI教程.NET教程
  代码下载: ASP代码下载JSP代码下载PHP代码下载CGI代码下载Flash代码C/C++/VCPowerBuilderDelphiVisualBasicVisualFoxpro
您的位置: 首页 -> 文章分类 -> JAVA基础 -> Java内存溢出导致服务器死机之应急解决方案
 文摘搜索
 
 文摘资源分类
 
 文摘总排行榜TOP10
 
 最新更新文摘TOP10
 

Java内存溢出导致服务器死机之应急解决方案

[来源]www.jspsky.com管理员   [作者]www.jspcn.net   [时间]2005-09-30
推荐等级: 点击:
最近在做一个网站,使用的编程语言是JSP,Web服务器采用Resin-2.1.6发布,操作系统使用Linux9.0,但是在网站运行过程中发现Java可用内存越来越少,有时程序会报出java.lang.OutOfMemoryError的错误,甚至导致Resin死机。 
    其实这种现象在Java语言中很正常,我们通常称之为Java内存溢出。由于我们在Java程序中声明了好多对象,占用了内存空间,程序结束时没有将这些对象或对象的引用进行释放,从而导致Java虚拟机(JVM)进行垃圾回收(GC)时,不能够回收这些对象。这样,Java所用的内存就会一直增加,直至溢出,进而导致Resin死机。 
    导致Java内存溢出的根本原因是Java程序的不规范或不健壮。因此,从根本上解决Java内存溢出的唯一方法就是修改Java程序,及时地释放没用的对象,释放内存空间。 
    除了这个方法以外,还有一些应急措施,可以临时缓解一下系统的运行。Resin默认情况是死机以后不能访问网站,必须手动重启Resin,但不可能一直看在机器旁边,看Resin有没有死机。所以这里介绍一种让Resin自重启的方法。 
    打开Resin的配置文件resin.conf(一般情况下,该文件在Resin目录的conf文件夹下)。里面有一段内容如下所示: 
  <!-- 
     - Ping to test if the web server is still up.  You can uncomment this 
     - and point it to pages on the webserver that exercise your main 
     - logic (like database access).  If the GET fails, it will restart 
     - the server.  This will catch deadlocks, but not JDK freezes. 
     - <ping sleep-time=’1m’ retry-count=’3’ retry-time=’1s’> 
     -   <url>http://localhost:8080/ping/ping.jsp</url> 
     - </ping> 
   --> 
    这段内容默认情况下是被注释的。它的功能是让Resin每隔一分钟就测试一下能否访问/ping/ping.jsp文件,测试时间是1s,如果不成功,就重试三次。如果三次都不成功,Resin就自动重启。所以将这段话下半部分(从"<ping "到"</ping>")的注释去掉,然后在Resin的发布目录中新建一个文件夹ping,在ping文件夹下新建一个ping.jsp文件,文件中可以写入简单的一句话,如:<% out.println("Hello world");%>。 
   好,大功告成,启动Resin,这样就不用担心Java内存溢出导致Resin死机了,因为Resin死机后会马上重新启动。 
   当然,这只是应急措施,不是长久之计。如果从长计议,还是要耐心的更改Java程序!!!
[收藏][打印][关闭]
在线咨询服务 在线咨询服务 在线咨询服务 在线咨询服务
Copyright©2005-2006陕西思远数码科技有限责任公司 服务电话:029-88212987 传真:029-88278265 售后服务QQ:173241393
地址:陕西省西安市吉祥路186号太白新苑C座2104 陕ICP备05004508号