这个星期已经是第二次了,今天早上我来到公司,打开公司网站,发现打不开,进服务器看TOMCAT的运行情况,发现已死掉,报如下错误#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x60007e8e, pid=2916, tid=2236
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_04-b05 mixed mode)
# Problematic frame:
# C [kmon.dll+0x7e8e]
#
# An error report file with more information is saved as hs_err_pid2916.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x60007e8e, pid=2916, tid=2236
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_04-b05 mixed mode)
# Problematic frame:
# C [kmon.dll+0x7e8e]
#
# An error report file with more information is saved as hs_err_pid2916.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
解决方案 »
- JSP页面若长时间得不到响应,是否会自动重发请求?
- 调用applet方法引起session失效
- FusionCharts动态刷新
- 调试servlet时,怎么会自动跳出下载窗口,会把这个servlet下载下来
- html:hidden 的 value怎么动态赋值
- 网页登录成功后,不跳转,如何在原先输入登录信息的位置上,显示登录成功后的用户信息?
- 求教lucene问题?
- 怎么强制刷新页面一次..???
- jspsmartupload应该怎么配置?
- 我发现Resin很好用,安装配置也方便,中文支持得也不错!
- Jsp java.lang.NullPointerException
- 在show.jsp上点一button,获取Action的数据,显示在show.jsp弹出的层上?
可以查看hs_err_pid2916.log,里面有异常信息。
at org.apache.jasper.runtime.JspWriterImpl.ensureOpen(JspWriterImpl.java:202)
at org.apache.jasper.runtime.JspWriterImpl.clearBuffer(JspWriterImpl.java:157)
at org.apache.jsp.pages.showrange_jsp._jspService(showrange_jsp.java:243)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service//这个刚才已经解决了
java.io.IOException: reading encoded JPEG Stream
at sun.awt.image.codec.JPEGImageEncoderImpl.writeJPEGStream(Native Method)
at sun.awt.image.codec.JPEGImageEncoderImpl.encode(JPEGImageEncoderImpl.java:472)
at sun.awt.image.codec.JPEGImageEncoderImpl.encode(JPEGImageEncoderImpl.java:228)
at org.apache.jsp.pages.random_jsp._jspService(random_jsp.java:107)//这个是验证码的,昨天弄了一下,没解决掉。
日志贴出来看看?
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x60007e8e, pid=2916, tid=2236
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_04-b05 mixed mode)
# Problematic frame:
# C [kmon.dll+0x7e8e]
#--------------- T H R E A D ---------------Current thread (0x274b4ca0): JavaThread "http-80-Processor10" daemon [_thread_in_native, id=2236]siginfo: ExceptionCode=0xc0000005, reading address 0x27a87000Registers:
EAX=0x003f8e20, EBX=0x2819e46c, ECX=0x00000011, EDX=0x00000001
ESP=0x2819e0d4, EBP=0x00000011, ESI=0x27a86fff, EDI=0x003f8e29
EIP=0x60007e8e, EFLAGS=0x00010246Top of Stack: (sp=0x2819e0d4)
0x2819e0d4: 003f4740 00000000 27a86888 2819e4c4
0x2819e0e4: 00000011 2a17f198 00853874 2a161770
0x2819e0f4: 032648c0 2a18a730 00000004 2a179c58
0x2819e104: 2819e124 2a14cfd8 03258fa4 2a179d38
0x2819e114: 00000007 2a18ad58 274b4ca0 003f7640
0x2819e124: 2819e14c 003fbf48 274b4ca0 2a161a38
0x2819e134: 6d748335 003f70d8 00000006 2a167a08
0x2819e144: 274b4ca0 2a159c48 2819e18c 003f9fc0 Instructions: (pc=0x60007e8e)
0x60007e7e: 00 8b f3 8b 9c 24 48 03 00 00 89 4c 24 10 8b e9
0x60007e8e: 8a 46 01 46 84 c0 0f 85 16 ff ff ff 33 c9 33 f6
Stack: [0x28160000,0x281a0000), sp=0x2819e0d4, free space=248k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [kmon.dll+0x7e8e][error occurred during error reporting, step 120, id 0xc0000005]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [kmon.dll+0x7e8e]
============================================
感觉好像栈溢出,但java栈溢出应该报 stackoverflow
而不是jvm崩掉你程序里面是不是java代码和c或c++代码公用了一个栈?
Stack: [0x28160000,0x281a0000), sp=0x2819e0d4, free space=248k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [kmon.dll+0x7e8e]总觉得这段jvm崩掉是因为栈引起的,可是栈的话应该出个exception而不是jvm崩掉
感觉思路有点卡在这里死循环了*(@……%@(#)!#%#
数据库连接顺序关闭!!
优化JAVA虚拟机 加入相应的内存参数!
TOMCAT 在LINUX 下不是很稳定!
String 类型使用,不符合规范!!
不要在数据库中获取大段文本!!!
JAVA 不推荐 用String 获取大量信息,造成内存溢出就是它!!!
每隔一段时间后,重新启动服务器,是必要的!!
大约2个周左右吧----------
我遇到的问题,差不多就是这些了! 欢迎指教!!
数据库连接顺序关闭!!
优化JAVA虚拟机 加入相应的内存参数!
TOMCAT 在LINUX 下不是很稳定!
String 类型使用,不符合规范!!
不要在数据库中获取大段文本!!!
JAVA 不推荐 用String 获取大量信息,造成内存溢出就是它!!!
每隔一段时间后,重新启动服务器,是必要的!!
大约2个周左右吧----------
我遇到的问题,差不多就是这些了! 欢迎指教!!
数据库连接顺序关闭!!
优化JAVA虚拟机 加入相应的内存参数!
TOMCAT 在LINUX 下不是很稳定!
String 类型使用,不符合规范!!
不要在数据库中获取大段文本!!!
JAVA 不推荐 用String 获取大量信息,造成内存溢出就是它!!!
每隔一段时间后,重新启动服务器,是必要的!!
大约2个周左右吧----------
我遇到的问题,差不多就是这些了! 欢迎指教!!
数据库连接顺序关闭!!
优化JAVA虚拟机 加入相应的内存参数!
TOMCAT 在LINUX 下不是很稳定!
String 类型使用,不符合规范!!
不要在数据库中获取大段文本!!!
JAVA 不推荐 用String 获取大量信息,造成内存溢出就是它!!!
每隔一段时间后,重新启动服务器,是必要的!!
大约2个周左右吧----------
我遇到的问题,差不多就是这些了! 欢迎指教!!
把你上传图片的那段代码,发上来看看吧,很有可能是多个线程使用了同一个OutputStream的问题!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page autoFlush="false" import="java.util.*,java.awt.*,java.awt.image.*,com.sun.image.codec.jpeg.*,java.util.*" %><%
//set Chinese Char
//Cody by [email protected];
//homepage:jiarry.126.com
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK");
response.setContentType("text/html; charset=GBK");
%>
<%
String chose="0123456789";
//abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
char display[]={'0',' ','0',' ','0',' ','0'},ran[]={'0','0','0','0'},temp;Random rand=new Random();for(int i=0;i<4;i++)
{ temp=chose.charAt(rand.nextInt(chose.length())); display[i*2]=temp; ran[i]=temp;
}
String random=String.valueOf(display);session.setAttribute("random",String.valueOf(ran));
%>
<% out.clear();
response.setContentType("image/jpeg");
response.addHeader("pragma","NO-cache");
response.addHeader("Cache-Control","no-cache");
response.addDateHeader("Expries",0);
int width=80, height=30;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
//以下填充背景颜色
Color c = new Color(Integer.parseInt("000000",16));
g.setColor(c);
g.fillRect(0, 0, width, height);
//设置字体颜色
g.setColor(Color.WHITE);
Font font=new Font("Arial",Font.PLAIN,20);
g.setFont(font);
// g.drawString(random,5,14);
g.drawString(random,5,20);
g.dispose();
ServletOutputStream outStream = response.getOutputStream();
JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(outStream);
encoder.encode(image);
outStream.close();
out.clear();
out = pageContext.pushBody();
%>这个是验证码的代码。
这样数据大了,就会溢出的。
建议你把处理验证码的那些代码先屏蔽掉,试试看还会不会崩掉。
JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(response.getOutputStream());
encoder.encode(image);
//outStream.close();
out.clear();
out = pageContext.pushBody();
不过我刚才没进去他的主站!你试试吧
google一下Lambda Probe
encoder.encode(image);
怎么修改????
cat死了,就埋了它,重新买个cat,呵呵!好好喂养cat!
严重吗?
我想这是相同的情况
那是由于你的加载项太多造成的
他们超出了tomcat的承受能力
并不是说启动加载项问题
而是过程中造成的
An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_FLT_STACK_CHECK (0xc0000092) at pc=0x00dd0a59, pid=7088, tid=6968
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0-b64 mixed mode, sharing)
# Problematic frame:
# v ~SafepointBlob
#
# An error report file with more information is saved as hs_err_pid7088.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#你的计算机是两根内存条吧(多半是现代的)!这两根内存条工作频率可能不一样,或者可能有一根是打磨条,用cpuZ检查一下。简而言之,是内存条质量问题造成的哈。解决方法:
1、取下打磨条,只用性能可靠的条子。
2、去买有质量保证的条子(建议买一根大容量的,不要多根装在一起,这样稳定)。
3、用KeepResident插件,设置eclipse的最大内存为单个内存条的容量。(这种方法可以降低eclipse 的 crash频率,但有时还是会crash)
只能杀掉进程,重新启动项目。