我的这个程序需要运行很长时间,同时开很多的线程从网络上下载网页,数据量非常大.结果昨天运行的时候导致jvm崩溃?希望高手帮忙看看应该怎么改?以下是异常信息
#
# An unexpected error has been detected by Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c930a19, pid=3940, tid=3944
#
# Java VM: Java HotSpot(TM) Client VM (1.6.0_01-b06 mixed mode)
# Problematic frame:
# C [ntdll.dll+0x10a19]
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#--------------- T H R E A D ---------------Current thread (0x0b52bc00): JavaThread "Thread-3701" [_thread_in_native, id=3944]siginfo: ExceptionCode=0xc0000005, reading address 0x61502635Registers:
EAX=0x119a12d8, EBX=0x0c3b0000, ECX=0x61502635, EDX=0x37393933
ESP=0x1075cdb4, EBP=0x1075cdc0, ESI=0x119a12d0, EDI=0x119a12a8
EIP=0x7c930a19, EFLAGS=0x00010283Top of Stack: (sp=0x1075cdb4)
0x1075cdb4: 0c3b0000 119a12a8 00000000 1075ce94
0x1075cdc4: 7c93084c 0c3b0000 61502635 1075ce78
0x1075cdd4: 00000000 00000000 119a12b0 000000ba
0x1075cde4: 00000000 00000000 0000000c 0000000c
0x1075cdf4: 00000000 0bba9a58 00000028 0c3b01b8
0x1075ce04: 1075ceb4 0000000f 003bef2f 00000004
0x1075ce14: 1075ce2c 0c375618 1075ceb4 0c3b0000
0x1075ce24: 0c3b0000 00000055 00000038 0000000c Instructions: (pc=0x7c930a19)
0x7c930a09: 85 92 00 00 00 8b 4e 0c 8d 46 08 8b 10 89 4d 0c
0x7c930a19: 8b 09 3b 4a 04 89 55 14 0f 85 2b 0d 00 00 3b c8
Stack: [0x10660000,0x10760000), sp=0x1075cdb4, free space=1011k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [ntdll.dll+0x10a19]
C [ntdll.dll+0x1084c]
C [nlsp.dll+0x216b6]
C [nlsp.dll+0x1d3e0]
C [nlsp.dll+0x1ad85]
C [WS2_32.dll+0x4c95]
C [net.dll+0x7219]
j java.net.SocketOutputStream.socketWrite0(Ljava/io/FileDescriptor;[BII)V+0
j java.net.SocketOutputStream.socketWrite([BII)V+44
j java.net.SocketOutputStream.write([BII)V+4
j java.io.BufferedOutputStream.flushBuffer()V+20
j java.io.BufferedOutputStream.flush()V+1
J sun.net.www.MessageHeader.print(Ljava/io/PrintStream;)V
j sun.net.www.http.HttpClient.writeRequests(Lsun/net/www/MessageHeader;Lsun/net/www/http/PosterOutputStream;)V+13
j sun.net.www.protocol.http.HttpURLConnection.writeRequests()V+569
J sun.net.www.protocol.http.HttpURLConnection.getInputStream()Ljava/io/InputStream;
J searchengineplugin.query.JQueryBase.downBinaryFile(Ljava/lang/String;ILjava/net/Proxy;)[B
j searchengineplugin.query.JQuery.downBinaryFile(Ljava/lang/String;)[B+51
j jtoptrack.tools.Html2MHTCompiler$AttachmentDataSource.<init>(Ljtoptrack/tools/Html2MHTCompiler;Ljava/lang/String;Ljava/lang/String;)V+90
J jtoptrack.tools.Html2MHTCompiler.createMhtArchive(Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
j jtoptrack.tools.Html2MHTCompiler.compile()Z+124
j searchengineplugin.down.JUsptoDown.down(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z+56
j jtoptrack.tools.MyJob$1.run()V+41
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stubJava frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j java.net.SocketOutputStream.socketWrite0(Ljava/io/FileDescriptor;[BII)V+0
j java.net.SocketOutputStream.socketWrite([BII)V+44
j java.net.SocketOutputStream.write([BII)V+4
j java.io.BufferedOutputStream.flushBuffer()V+20
j java.io.BufferedOutputStream.flush()V+1
J sun.net.www.MessageHeader.print(Ljava/io/PrintStream;)V
j sun.net.www.http.HttpClient.writeRequests(Lsun/net/www/MessageHeader;Lsun/net/www/http/PosterOutputStream;)V+13
j sun.net.www.protocol.http.HttpURLConnection.writeRequests()V+569
J sun.net.www.protocol.http.HttpURLConnection.getInputStream()Ljava/io/InputStream;
J searchengineplugin.query.JQueryBase.downBinaryFile(Ljava/lang/String;ILjava/net/Proxy;)[B
j searchengineplugin.query.JQuery.downBinaryFile(Ljava/lang/String;)[B+51
j jtoptrack.tools.Html2MHTCompiler$AttachmentDataSource.<init>(Ljtoptrack/tools/Html2MHTCompiler;Ljava/lang/String;Ljava/lang/String;)V+90
J jtoptrack.tools.Html2MHTCompiler.createMhtArchive(Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
j jtoptrack.tools.Html2MHTCompiler.compile()Z+124
j searchengineplugin.down.JUsptoDown.down(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z+56
j jtoptrack.tools.MyJob$1.run()V+41
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub--------------- P R O C E S S ---------------Java Threads: ( => current thread )
0x0b9aec00 JavaThread "Thread-3705" [_thread_in_native, id=596]
0x0b7e3000 JavaThread "Keep-Alive-Timer" daemon [_thread_blocked, id=1836]
0x0b80b800 JavaThread "Thread-3703" [_thread_in_native, id=188]
0x0b8fc800 JavaThread "Thread-3702" [_thread_in_native, id=3536]
=>0x0b52bc00 JavaThread "Thread-3701" [_thread_in_native, id=3944]
0x0b51b800 JavaThread "Worker-30" [_thread_blocked, id=3360]
0x0b799c00 JavaThread "Thread-3697" [_thread_in_native, id=1592]
0x11b97400 JavaThread "Thread-3696" [_thread_in_native, id=3068]
0x0b869c00 JavaThread "Thread-3694" [_thread_in_native, id=2180]
0x0b549000 JavaThread "Thread-3693" [_thread_in_native, id=484]
0x0b89b000 JavaThread "Thread-3692" [_thread_in_native, id=1616]
0x0b8ddc00 JavaThread "Thread-3687" [_thread_in_native, id=2448]
0x0b9b6c00 JavaThread "Thread-3686" [_thread_in_native, id=276]
0x0b954c00 JavaThread "Thread-3684" [_thread_in_native, id=3960]
0x0b7f2400 JavaThread "Thread-3663" [_thread_in_native, id=3500]
0x0b8d9400 JavaThread "Worker-29" [_thread_blocked, id=3328]
0x0b986400 JavaThread "Worker-28" [_thread_blocked, id=788]
0x0b8ecc00 JavaThread "Worker-26" [_thread_blocked, id=3640]
0x0b94c800 JavaThread "Worker-25" [_thread_blocked, id=300]
0x0b53f800 JavaThread "Worker-24" [_thread_blocked, id=2256]
0x0b899c00 JavaThread "Worker-22" [_thread_blocked, id=2464]
0x11b68c00 JavaThread "Worker-20" [_thread_blocked, id=3104]
0x0b54ac00 JavaThread "Thread-177" [_thread_in_Java, id=256]
0x0b89a800 JavaThread "Worker-9" [_thread_blocked, id=1900]
0x0b89a000 JavaThread "Worker-8" [_thread_blocked, id=2052]
0x0b7a4800 JavaThread "Worker-5" [_thread_blocked, id=1272]
0x0b52e400 JavaThread "Worker-4" [_thread_blocked, id=1368]
0x0b52d400 JavaThread "Worker-3" [_thread_blocked, id=3036]
0x0b52a800 JavaThread "Worker-1" [_thread_blocked, id=2268]
0x0b7aa400 JavaThread "Timer-1" [_thread_blocked, id=2420]
0x0aba4000 JavaThread "Timer-0" [_thread_blocked, id=2096]
0x0b47a800 JavaThread "db4o WeakReference collector" daemon [_thread_blocked, id=3516]
0x0b4b2c00 JavaThread "db4o WeakReference collector" daemon [_thread_blocked, id=244]
0x0ab6c000 JavaThread "db4o WeakReference collector" daemon [_thread_blocked, id=2588]
0x0b5f2800 JavaThread "Start Level Event Dispatcher" daemon [_thread_blocked, id=1036]
0x0b5fc400 JavaThread "Framework Event Dispatcher" daemon [_thread_blocked, id=544]
0x0b5cc400 JavaThread "State Data Manager" daemon [_thread_blocked, id=2924]
0x0ab61800 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=4020]
0x0ab59000 JavaThread "CompilerThread0" daemon [_thread_blocked, id=948]
0x0ab57c00 JavaThread "Attach Listener" daemon [_thread_blocked, id=3872]
0x0ab6e800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2792]
0x0ab46800 JavaThread "Finalizer" daemon [_thread_blocked, id=2128]
0x0ab42400 JavaThread "Reference Handler" daemon [_thread_blocked, id=4056]
0x003f6000 JavaThread "main" [_thread_in_native, id=2532]Other Threads:
0x0ab3f000 VMThread [id=3524]
0x0ab63000 WatcherThread [id=356]VM state:not at safepoint (normal execution)VM Mutex/Monitor currently owned by a thread: NoneHeap
def new generation total 4544K, used 3972K [0x02a30000, 0x02f10000, 0x02f10000)
eden space 4096K, 86% used [0x02a30000, 0x02da11d8, 0x02e30000)
from space 448K, 100% used [0x02ea0000, 0x02f10000, 0x02f10000)
to space 448K, 0% used [0x02e30000, 0x02e30000, 0x02ea0000)
tenured generation total 60544K, used 52355K [0x02f10000, 0x06a30000, 0x06a30000)
the space 60544K, 86% used [0x02f10000, 0x06230e70, 0x06231000, 0x06a30000)
compacting perm gen total 26368K, used 26156K [0x06a30000, 0x083f0000, 0x0aa30000)
the space 26368K, 99% used [0x06a30000, 0x083bb3c0, 0x083bb400, 0x083f0000)
No shared spaces configured.
#
# An unexpected error has been detected by Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c930a19, pid=3940, tid=3944
#
# Java VM: Java HotSpot(TM) Client VM (1.6.0_01-b06 mixed mode)
# Problematic frame:
# C [ntdll.dll+0x10a19]
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#--------------- T H R E A D ---------------Current thread (0x0b52bc00): JavaThread "Thread-3701" [_thread_in_native, id=3944]siginfo: ExceptionCode=0xc0000005, reading address 0x61502635Registers:
EAX=0x119a12d8, EBX=0x0c3b0000, ECX=0x61502635, EDX=0x37393933
ESP=0x1075cdb4, EBP=0x1075cdc0, ESI=0x119a12d0, EDI=0x119a12a8
EIP=0x7c930a19, EFLAGS=0x00010283Top of Stack: (sp=0x1075cdb4)
0x1075cdb4: 0c3b0000 119a12a8 00000000 1075ce94
0x1075cdc4: 7c93084c 0c3b0000 61502635 1075ce78
0x1075cdd4: 00000000 00000000 119a12b0 000000ba
0x1075cde4: 00000000 00000000 0000000c 0000000c
0x1075cdf4: 00000000 0bba9a58 00000028 0c3b01b8
0x1075ce04: 1075ceb4 0000000f 003bef2f 00000004
0x1075ce14: 1075ce2c 0c375618 1075ceb4 0c3b0000
0x1075ce24: 0c3b0000 00000055 00000038 0000000c Instructions: (pc=0x7c930a19)
0x7c930a09: 85 92 00 00 00 8b 4e 0c 8d 46 08 8b 10 89 4d 0c
0x7c930a19: 8b 09 3b 4a 04 89 55 14 0f 85 2b 0d 00 00 3b c8
Stack: [0x10660000,0x10760000), sp=0x1075cdb4, free space=1011k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [ntdll.dll+0x10a19]
C [ntdll.dll+0x1084c]
C [nlsp.dll+0x216b6]
C [nlsp.dll+0x1d3e0]
C [nlsp.dll+0x1ad85]
C [WS2_32.dll+0x4c95]
C [net.dll+0x7219]
j java.net.SocketOutputStream.socketWrite0(Ljava/io/FileDescriptor;[BII)V+0
j java.net.SocketOutputStream.socketWrite([BII)V+44
j java.net.SocketOutputStream.write([BII)V+4
j java.io.BufferedOutputStream.flushBuffer()V+20
j java.io.BufferedOutputStream.flush()V+1
J sun.net.www.MessageHeader.print(Ljava/io/PrintStream;)V
j sun.net.www.http.HttpClient.writeRequests(Lsun/net/www/MessageHeader;Lsun/net/www/http/PosterOutputStream;)V+13
j sun.net.www.protocol.http.HttpURLConnection.writeRequests()V+569
J sun.net.www.protocol.http.HttpURLConnection.getInputStream()Ljava/io/InputStream;
J searchengineplugin.query.JQueryBase.downBinaryFile(Ljava/lang/String;ILjava/net/Proxy;)[B
j searchengineplugin.query.JQuery.downBinaryFile(Ljava/lang/String;)[B+51
j jtoptrack.tools.Html2MHTCompiler$AttachmentDataSource.<init>(Ljtoptrack/tools/Html2MHTCompiler;Ljava/lang/String;Ljava/lang/String;)V+90
J jtoptrack.tools.Html2MHTCompiler.createMhtArchive(Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
j jtoptrack.tools.Html2MHTCompiler.compile()Z+124
j searchengineplugin.down.JUsptoDown.down(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z+56
j jtoptrack.tools.MyJob$1.run()V+41
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stubJava frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j java.net.SocketOutputStream.socketWrite0(Ljava/io/FileDescriptor;[BII)V+0
j java.net.SocketOutputStream.socketWrite([BII)V+44
j java.net.SocketOutputStream.write([BII)V+4
j java.io.BufferedOutputStream.flushBuffer()V+20
j java.io.BufferedOutputStream.flush()V+1
J sun.net.www.MessageHeader.print(Ljava/io/PrintStream;)V
j sun.net.www.http.HttpClient.writeRequests(Lsun/net/www/MessageHeader;Lsun/net/www/http/PosterOutputStream;)V+13
j sun.net.www.protocol.http.HttpURLConnection.writeRequests()V+569
J sun.net.www.protocol.http.HttpURLConnection.getInputStream()Ljava/io/InputStream;
J searchengineplugin.query.JQueryBase.downBinaryFile(Ljava/lang/String;ILjava/net/Proxy;)[B
j searchengineplugin.query.JQuery.downBinaryFile(Ljava/lang/String;)[B+51
j jtoptrack.tools.Html2MHTCompiler$AttachmentDataSource.<init>(Ljtoptrack/tools/Html2MHTCompiler;Ljava/lang/String;Ljava/lang/String;)V+90
J jtoptrack.tools.Html2MHTCompiler.createMhtArchive(Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
j jtoptrack.tools.Html2MHTCompiler.compile()Z+124
j searchengineplugin.down.JUsptoDown.down(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z+56
j jtoptrack.tools.MyJob$1.run()V+41
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub--------------- P R O C E S S ---------------Java Threads: ( => current thread )
0x0b9aec00 JavaThread "Thread-3705" [_thread_in_native, id=596]
0x0b7e3000 JavaThread "Keep-Alive-Timer" daemon [_thread_blocked, id=1836]
0x0b80b800 JavaThread "Thread-3703" [_thread_in_native, id=188]
0x0b8fc800 JavaThread "Thread-3702" [_thread_in_native, id=3536]
=>0x0b52bc00 JavaThread "Thread-3701" [_thread_in_native, id=3944]
0x0b51b800 JavaThread "Worker-30" [_thread_blocked, id=3360]
0x0b799c00 JavaThread "Thread-3697" [_thread_in_native, id=1592]
0x11b97400 JavaThread "Thread-3696" [_thread_in_native, id=3068]
0x0b869c00 JavaThread "Thread-3694" [_thread_in_native, id=2180]
0x0b549000 JavaThread "Thread-3693" [_thread_in_native, id=484]
0x0b89b000 JavaThread "Thread-3692" [_thread_in_native, id=1616]
0x0b8ddc00 JavaThread "Thread-3687" [_thread_in_native, id=2448]
0x0b9b6c00 JavaThread "Thread-3686" [_thread_in_native, id=276]
0x0b954c00 JavaThread "Thread-3684" [_thread_in_native, id=3960]
0x0b7f2400 JavaThread "Thread-3663" [_thread_in_native, id=3500]
0x0b8d9400 JavaThread "Worker-29" [_thread_blocked, id=3328]
0x0b986400 JavaThread "Worker-28" [_thread_blocked, id=788]
0x0b8ecc00 JavaThread "Worker-26" [_thread_blocked, id=3640]
0x0b94c800 JavaThread "Worker-25" [_thread_blocked, id=300]
0x0b53f800 JavaThread "Worker-24" [_thread_blocked, id=2256]
0x0b899c00 JavaThread "Worker-22" [_thread_blocked, id=2464]
0x11b68c00 JavaThread "Worker-20" [_thread_blocked, id=3104]
0x0b54ac00 JavaThread "Thread-177" [_thread_in_Java, id=256]
0x0b89a800 JavaThread "Worker-9" [_thread_blocked, id=1900]
0x0b89a000 JavaThread "Worker-8" [_thread_blocked, id=2052]
0x0b7a4800 JavaThread "Worker-5" [_thread_blocked, id=1272]
0x0b52e400 JavaThread "Worker-4" [_thread_blocked, id=1368]
0x0b52d400 JavaThread "Worker-3" [_thread_blocked, id=3036]
0x0b52a800 JavaThread "Worker-1" [_thread_blocked, id=2268]
0x0b7aa400 JavaThread "Timer-1" [_thread_blocked, id=2420]
0x0aba4000 JavaThread "Timer-0" [_thread_blocked, id=2096]
0x0b47a800 JavaThread "db4o WeakReference collector" daemon [_thread_blocked, id=3516]
0x0b4b2c00 JavaThread "db4o WeakReference collector" daemon [_thread_blocked, id=244]
0x0ab6c000 JavaThread "db4o WeakReference collector" daemon [_thread_blocked, id=2588]
0x0b5f2800 JavaThread "Start Level Event Dispatcher" daemon [_thread_blocked, id=1036]
0x0b5fc400 JavaThread "Framework Event Dispatcher" daemon [_thread_blocked, id=544]
0x0b5cc400 JavaThread "State Data Manager" daemon [_thread_blocked, id=2924]
0x0ab61800 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=4020]
0x0ab59000 JavaThread "CompilerThread0" daemon [_thread_blocked, id=948]
0x0ab57c00 JavaThread "Attach Listener" daemon [_thread_blocked, id=3872]
0x0ab6e800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2792]
0x0ab46800 JavaThread "Finalizer" daemon [_thread_blocked, id=2128]
0x0ab42400 JavaThread "Reference Handler" daemon [_thread_blocked, id=4056]
0x003f6000 JavaThread "main" [_thread_in_native, id=2532]Other Threads:
0x0ab3f000 VMThread [id=3524]
0x0ab63000 WatcherThread [id=356]VM state:not at safepoint (normal execution)VM Mutex/Monitor currently owned by a thread: NoneHeap
def new generation total 4544K, used 3972K [0x02a30000, 0x02f10000, 0x02f10000)
eden space 4096K, 86% used [0x02a30000, 0x02da11d8, 0x02e30000)
from space 448K, 100% used [0x02ea0000, 0x02f10000, 0x02f10000)
to space 448K, 0% used [0x02e30000, 0x02e30000, 0x02ea0000)
tenured generation total 60544K, used 52355K [0x02f10000, 0x06a30000, 0x06a30000)
the space 60544K, 86% used [0x02f10000, 0x06230e70, 0x06231000, 0x06a30000)
compacting perm gen total 26368K, used 26156K [0x06a30000, 0x083f0000, 0x0aa30000)
the space 26368K, 99% used [0x06a30000, 0x083bb3c0, 0x083bb400, 0x083f0000)
No shared spaces configured.
byte[] ret = null;
ByteArrayOutputStream out = new ByteArrayOutputStream();
InputStream urlStream = null;
HttpURLConnection httpConnection = null;
BufferedInputStream in = null;
URL url = null;
try {
url = new URL(strUrl);
if (proxy != null) {
httpConnection = (HttpURLConnection) url.openConnection(proxy);
}
else {
httpConnection = (HttpURLConnection) url.openConnection();
}
httpConnection.addRequestProperty("User-Agent", "IcewolfHttp/1.0");
httpConnection.addRequestProperty("Accept",
"www/source; text/html; image/gif; */*");
httpConnection.addRequestProperty("Accept-Language", "");
httpConnection.setConnectTimeout(timeout);
httpConnection.setReadTimeout(timeout); urlStream = httpConnection.getInputStream();
String strEncoding = httpConnection.getContentEncoding();
if (strEncoding != null && strEncoding.compareTo("gzip") == 0) {
urlStream = new java.util.zip.GZIPInputStream(urlStream);
}
in = new BufferedInputStream(urlStream);
int b;
byte[] a = new byte[1024];
while ((b = in.read(a)) != -1) {
out.write(a, 0, b);
}
in.reset();
in.close();
urlStream.reset();
urlStream.close();
ret = out.toByteArray();
out.reset();
out.close();
} catch (Exception e) {
//System.out.println(e.getClass() + "下载网页资源" + strUrl + "失败");
} finally{
try {
if (in != null) {
in.reset();
in.close();
}
if (urlStream != null) {
urlStream.reset();
urlStream.close();
}
if (out != null) {
out.reset();
out.close();
}
} catch (Exception e) {
//System.out.println(e.getClass() + "下载网页资源" + strUrl + "连接关闭失败");
}
}
return ret;
}
我要添加的是-XX:+HeapDumpOnCtrlBreak,这个参数,可以得到程序的堆文件.黄圈里面应该选什么?
红圈的地方应该怎么写?
我试了很多种写法都不对.