最近帮一个朋友做了一个网站,开始因考虑到访问量不算太高,采用了ACCESS作为数据库,采用了JDBC-ODBC驱动桥接方式。写到配置文件中加载到内存,供系统运行时使用。

<dbconfig>
     <type>access</type>
     <driver>sun.jdbc.odbc.JdbcOdbcDriver</driver>
     <url>jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=D://tomcat5.0//server//default//deploy//web-tomcat50.sar//ROOT.war//res//DBSystem.mdb</url>
     <user></user>
     <password></password>
   </dbconfig>

在网站做好后,当时只做了一些功能测试,没有做压力测试,在现场运行几天后开始出现运行一段时间后JVM CRASH掉了,最后不得不每次重新启动,后来更是越来越频繁,一天甚至十次以上。接到朋友电话后,朋友说每天都有客户打电话说网站挂了,让我感到心里一个沉重的石头压下来了,没想到一个简单的网站竟然出了这般严重的一级故障,到现场看了一下,LOG中的运行日志没有异常,在服务器BIN目录,找到服务器CRASH的堆栈日志:

#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c95f350, pid=3964, tid=4024
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0-b64 mixed mode)
# Problematic frame:
# C  [ntdll.dll+0x2f350]
#

---------------  T H R E A D  ---------------

Current thread (0x275ad650):  JavaThread "http-0.0.0.0-80-Processor21" daemon [_thread_in_native, id=4024]

siginfo: ExceptionCode=0xc0000005, writing address 0x00000008

Registers:
EAX=0x00000000, EBX=0x00000000, ECX=0x00000008, EDX=0x00000004
ESP=0x2879ed14, EBP=0x2879ed20, ESI=0x00000008, EDI=0x00000000
EIP=0x7c95f350, EFLAGS=0x00010297

Top of Stack: (sp=0x2879ed14)
0x2879ed14:   00000000 00000000 00000008 2879ed3c
0x2879ed24:   4b784c16 00000004 28a22f8c 4b7527af
0x2879ed34:   28a22f8c 28a22f68 2879ed74 4b758af9
0x2879ed44:   28a22f8c 4b780000 275ad70c 23e621d0
0x2879ed54:   00000001 00000000 2879ed48 2879e940
0x2879ed64:   2879fce8 4b785705 4b758ac8 ffffffff
0x2879ed74:   2879ed8c 4b758a9d 28a22f68 2879edac
0x2879ed84:   26e80418 275ad70c 2879eda4 6d371157

Instructions: (pc=0x7c95f350)
0x7c95f340:   56 8d 72 04 57 89 75 fc b8 00 00 00 00 8b 4d fc
0x7c95f350:   f0 0f b3 01 0f 92 c0 84 c0 0f 84 95 0f 00 00 64

Stack: [0x28760000,0x287a0000),  sp=0x2879ed14,  free space=251k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [ntdll.dll+0x2f350]
C  [ODBC32.dll+0x34c16]
C  [ODBC32.dll+0x8af9]
C  [ODBC32.dll+0x8a9d]
C  [JdbcOdbc.dll+0x1157]
j  sun.jdbc.odbc.JdbcOdbc.allocConnect(J[B)J+0
j  sun.jdbc.odbc.JdbcOdbc.SQLAllocConnect(J)J+30
j  sun.jdbc.odbc.JdbcOdbcDriver.allocConnection(J)J+6
j  sun.jdbc.odbc.JdbcOdbcConnection.initialize(Ljava/lang/String;Ljava/util/Properties;I)V+37
j  sun.jdbc.odbc.JdbcOdbcDriver.connect(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;+129
j  java.sql.DriverManager.getConnection(Ljava/lang/String;Ljava/util/Properties;Ljava/lang/ClassLoader;)Ljava/sql/Connection;+165
j  java.sql.DriverManager.getConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;+41
j  com.foxliucong.common.supportservice.database.DataBaseManager.<init>(Ljava/lang/String;)V+80
j  org.apache.jsp.indexdisplay.topic_005fzfwj_jsp._jspService(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+309
j  org.apache.jasper.runtime.HttpJspBase.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+3
j  javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+30
j  org.apache.jasper.servlet.JspServletWrapper.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Z)V+193
j  org.apache.jasper.servlet.JspServlet.serviceJspFile(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/lang/String;Ljava/lang/Throwable;Z)V+142
j  org.apache.jasper.servlet.JspServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+440
j  javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+30
j  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+478
j  org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+101
j  org.apache.catalina.core.StandardWrapperValve.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;Lorg/apache/catalina/ValveContext;)V+619
J  org.apache.catalina.core.StandardValveContext.invokeNext(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
J  org.apache.catalina.core.StandardPipeline.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
j  org.apache.catalina.core.StandardContextValve.invokeInternal(Lorg/apache/catalina/Wrapper;Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V+172
j  org.apache.catalina.core.StandardContextValve.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;Lorg/apache/catalina/ValveContext;)V+228
J  org.apache.catalina.core.StandardValveContext.invokeNext(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
v  ~RuntimeStub::alignment_frame_return Runtime1 stub
j  org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;Lorg/apache/catalina/ValveContext;)V+350
J  org.apache.catalina.core.StandardValveContext.invokeNext(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
J  org.apache.catalina.core.StandardPipeline.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
v  ~RuntimeStub::alignment_frame_return Runtime1 stub
j  org.apache.catalina.core.StandardHostValve.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;Lorg/apache/catalina/ValveContext;)V+87
J  org.apache.catalina.core.StandardValveContext.invokeNext(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
j  org.apache.catalina.valves.ErrorReportValve.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;Lorg/apache/catalina/ValveContext;)V+3
J  org.apache.catalina.core.StandardValveContext.invokeNext(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
v  ~RuntimeStub::alignment_frame_return Runtime1 stub
j  org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;Lorg/apache/catalina/ValveContext;)V+15
J  org.apache.catalina.core.StandardValveContext.invokeNext(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
J  org.apache.catalina.core.StandardPipeline.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
v  ~RuntimeStub::alignment_frame_return Runtime1 stub
j  org.apache.catalina.core.StandardEngineValve.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;Lorg/apache/catalina/ValveContext;)V+59
J  org.apache.catalina.core.StandardValveContext.invokeNext(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
J  org.apache.catalina.core.StandardPipeline.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
j  org.apache.catalina.core.ContainerBase.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V+6
j  org.apache.coyote.tomcat5.CoyoteAdapter.service(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;)V+137
J  org.apache.coyote.http11.Http11Processor.process(Ljava/io/InputStream;Ljava/io/OutputStream;)V
j  org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Lorg/apache/tomcat/util/net/TcpConnection;[Ljava/lang/Object;)V+113
j  org.apache.tomcat.util.net.TcpWorkerThread.runIt([Ljava/lang/Object;)V+159
j  org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run()V+167
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub
V  [jvm.dll+0x8168d]
V  [jvm.dll+0xd4179]
V  [jvm.dll+0x8155e]
V  [jvm.dll+0x812bb]
V  [jvm.dll+0x9bbe9]
V  [jvm.dll+0xfe77f]
V  [jvm.dll+0xfe74d]
C  [MSVCRT.dll+0x2b530]
C  [kernel32.dll+0x26063]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  sun.jdbc.odbc.JdbcOdbc.allocConnect(J[B)J+0
j  sun.jdbc.odbc.JdbcOdbc.SQLAllocConnect(J)J+30
j  sun.jdbc.odbc.JdbcOdbcDriver.allocConnection(J)J+6
j  sun.jdbc.odbc.JdbcOdbcConnection.initialize(Ljava/lang/String;Ljava/util/Properties;I)V+37
j  sun.jdbc.odbc.JdbcOdbcDriver.connect(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;+129
j  java.sql.DriverManager.getConnection(Ljava/lang/String;Ljava/util/Properties;Ljava/lang/ClassLoader;)Ljava/sql/Connection;+165
j  java.sql.DriverManager.getConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;+41
j  com.foxliucong.common.supportservice.database.DataBaseManager.<init>(Ljava/lang/String;)V+80
j  org.apache.jsp.indexdisplay.topic_005fzfwj_jsp._jspService(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+309
j  org.apache.jasper.runtime.HttpJspBase.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+3
j  javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+30
j  org.apache.jasper.servlet.JspServletWrapper.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Z)V+193
j  org.apache.jasper.servlet.JspServlet.serviceJspFile(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/lang/String;Ljava/lang/Throwable;Z)V+142
j  org.apache.jasper.servlet.JspServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+440
j  javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+30
j  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+478
j  org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+101
j  org.apache.catalina.core.StandardWrapperValve.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;Lorg/apache/catalina/ValveContext;)V+619
J  org.apache.catalina.core.StandardValveContext.invokeNext(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
J  org.apache.catalina.core.StandardPipeline.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
j  org.apache.catalina.core.StandardContextValve.invokeInternal(Lorg/apache/catalina/Wrapper;Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V+172
j  org.apache.catalina.core.StandardContextValve.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;Lorg/apache/catalina/ValveContext;)V+228
J  org.apache.catalina.core.StandardValveContext.invokeNext(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
v  ~RuntimeStub::alignment_frame_return Runtime1 stub
j  org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;Lorg/apache/catalina/ValveContext;)V+350
J  org.apache.catalina.core.StandardValveContext.invokeNext(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
J  org.apache.catalina.core.StandardPipeline.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
v  ~RuntimeStub::alignment_frame_return Runtime1 stub
j  org.apache.catalina.core.StandardHostValve.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;Lorg/apache/catalina/ValveContext;)V+87
J  org.apache.catalina.core.StandardValveContext.invokeNext(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
j  org.apache.catalina.valves.ErrorReportValve.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;Lorg/apache/catalina/ValveContext;)V+3
J  org.apache.catalina.core.StandardValveContext.invokeNext(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
v  ~RuntimeStub::alignment_frame_return Runtime1 stub
j  org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;Lorg/apache/catalina/ValveContext;)V+15
J  org.apache.catalina.core.StandardValveContext.invokeNext(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
J  org.apache.catalina.core.StandardPipeline.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
v  ~RuntimeStub::alignment_frame_return Runtime1 stub
j  org.apache.catalina.core.StandardEngineValve.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;Lorg/apache/catalina/ValveContext;)V+59
J  org.apache.catalina.core.StandardValveContext.invokeNext(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
J  org.apache.catalina.core.StandardPipeline.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V
j  org.apache.catalina.core.ContainerBase.invoke(Lorg/apache/catalina/Request;Lorg/apache/catalina/Response;)V+6
j  org.apache.coyote.tomcat5.CoyoteAdapter.service(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;)V+137
J  org.apache.coyote.http11.Http11Processor.process(Ljava/io/InputStream;Ljava/io/OutputStream;)V
j  org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Lorg/apache/tomcat/util/net/TcpConnection;[Ljava/lang/Object;)V+113
j  org.apache.tomcat.util.net.TcpWorkerThread.runIt([Ljava/lang/Object;)V+159
j  org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run()V+167
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x27aee330 JavaThread "TP-Monitor" daemon [_thread_blocked, id=3580]
  0x27af09a8 JavaThread "TP-Processor4" daemon [_thread_in_native, id=3772]
  0x2761dd48 JavaThread "TP-Processor3" daemon [_thread_blocked, id=3480]
  0x27735ae8 JavaThread "TP-Processor2" daemon [_thread_blocked, id=3688]
  0x27744b80 JavaThread "TP-Processor1" daemon [_thread_blocked, id=2024]
  0x27aea7b0 JavaThread "http-0.0.0.0-80-Monitor" [_thread_blocked, id=4060]
  0x27ae9a30 JavaThread "http-0.0.0.0-80-Processor25" daemon [_thread_blocked, id=264]
  0x27ae8df0 JavaThread "http-0.0.0.0-80-Processor24" daemon [_thread_blocked, id=3384]
  0x27ae81e0 JavaThread "http-0.0.0.0-80-Processor23" daemon [_thread_blocked, id=216]
  0x275ae290 JavaThread "http-0.0.0.0-80-Processor22" daemon [_thread_blocked, id=1244]
=>0x275ad650 JavaThread "http-0.0.0.0-80-Processor21" daemon [_thread_in_native, id=4024]
  0x275aca10 JavaThread "http-0.0.0.0-80-Processor20" daemon [_thread_blocked, id=3492]
  0x275abdd0 JavaThread "http-0.0.0.0-80-Processor19" daemon [_thread_blocked, id=2856]
  0x26fa6ce0 JavaThread "http-0.0.0.0-80-Processor18" daemon [_thread_blocked, id=1520]
  0x26fa60a0 JavaThread "http-0.0.0.0-80-Processor17" daemon [_thread_blocked, id=1864]
  0x26fa54c0 JavaThread "http-0.0.0.0-80-Processor16" daemon [_thread_blocked, id=3208]
  0x26fa4968 JavaThread "http-0.0.0.0-80-Processor15" daemon [_thread_blocked, id=784]
  0x27527ec8 JavaThread "http-0.0.0.0-80-Processor14" daemon [_thread_blocked, id=3960]
  0x27527370 JavaThread "http-0.0.0.0-80-Processor13" daemon [_thread_in_native, id=308]
  0x27526818 JavaThread "http-0.0.0.0-80-Processor12" daemon [_thread_in_native, id=1996]
  0x27525cc0 JavaThread "http-0.0.0.0-80-Processor11" daemon [_thread_blocked, id=3880]
  0x27731480 JavaThread "http-0.0.0.0-80-Processor10" daemon [_thread_blocked, id=3592]
  0x27730928 JavaThread "http-0.0.0.0-80-Processor9" daemon [_thread_in_native, id=3372]
  0x26f1ef58 JavaThread "http-0.0.0.0-80-Processor8" daemon [_thread_in_native, id=1236]
  0x26f1e400 JavaThread "http-0.0.0.0-80-Processor7" daemon [_thread_blocked, id=3144]
  0x27608978 JavaThread "http-0.0.0.0-80-Processor6" daemon [_thread_blocked, id=708]
  0x274b3cd0 JavaThread "http-0.0.0.0-80-Processor5" daemon [_thread_blocked, id=2888]
  0x27671470 JavaThread "http-0.0.0.0-80-Processor4" daemon [_thread_blocked, id=1224]
  0x276712f0 JavaThread "http-0.0.0.0-80-Processor3" daemon [_thread_blocked, id=3056]
  0x27670d70 JavaThread "http-0.0.0.0-80-Processor2" daemon [_thread_blocked, id=3060]
  0x2761e978 JavaThread "http-0.0.0.0-80-Processor1" daemon [_thread_blocked, id=3840]
  0x27670618 JavaThread "Thread-9" [_thread_blocked, id=448]
  0x276c3b18 JavaThread "UILServerILService Accept Thread" [_thread_in_native, id=3600]
  0x2764ec80 JavaThread "JBossMQ Cache Reference Softner" daemon [_thread_blocked, id=3460]
  0x27638940 JavaThread "Thread-8" daemon [_thread_blocked, id=760]
  0x276a3c80 JavaThread "Thread-7" [_thread_blocked, id=3404]
  0x2792c870 JavaThread "Timer-2" daemon [_thread_blocked, id=552]
  0x27941d60 JavaThread "ContainerBackgroundProcessor[StandardEngine[jboss.web]]" daemon [_thread_blocked, id=3680]
  0x278293b8 JavaThread "HSQLDB Timer @dd5681" daemon [_thread_blocked, id=1724]
  0x27525910 JavaThread "Thread-4" [_thread_in_native, id=3368]
  0x2752c708 JavaThread "RMI TCP Accept-4444" daemon [_thread_in_native, id=2028]
  0x274f40e8 JavaThread "Thread-3" daemon [_thread_in_native, id=3848]
  0x274f7170 JavaThread "GC Daemon" daemon [_thread_blocked, id=668]
  0x274e41e0 JavaThread "RMI Reaper" [_thread_blocked, id=2768]
  0x274e3688 JavaThread "Timer-1" daemon [_thread_blocked, id=3760]
  0x274e33c8 JavaThread "RMI TCP Accept-1098" daemon [_thread_in_native, id=3332]
  0x274c4010 JavaThread "ScannerThread" daemon [_thread_blocked, id=3668]
  0x271c2ba0 JavaThread "Timer-0" daemon [_thread_blocked, id=3628]
  0x00036748 JavaThread "DestroyJavaVM" [_thread_blocked, id=2832]
  0x009079f0 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=4068]
  0x00906650 JavaThread "CompilerThread0" daemon [_thread_blocked, id=3836]
  0x00905940 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=3868]
  0x008f6f50 JavaThread "Finalizer" daemon [_thread_blocked, id=1812]
  0x008f5ab8 JavaThread "Reference Handler" daemon [_thread_blocked, id=812]

Other Threads:
  0x00035040 VMThread [id=320]
  0x00908d00 WatcherThread [id=3184]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 def new generation   total 9216K, used 7249K [0x029b0000, 0x033a0000, 0x05110000)
  eden space 8256K,  87% used [0x029b0000, 0x030c4558, 0x031c0000)
  from space 960K,   0% used [0x032b0000, 0x032b0000, 0x033a0000)
  to   space 960K,   0% used [0x031c0000, 0x031c0000, 0x032b0000)
 tenured generation   total 121024K, used 30777K [0x05110000, 0x0c740000, 0x229b0000)
   the space 121024K,  25% used [0x05110000, 0x06f1e668, 0x06f1e800, 0x0c740000)
 compacting perm gen  total 22528K, used 22350K [0x229b0000, 0x23fb0000, 0x269b0000)
   the space 22528K,  99% used [0x229b0000, 0x23f83a90, 0x23f83c00, 0x23fb0000)
No shared spaces configured.

Dynamic libraries:
0x00400000 - 0x0040c000  D:/jboss-4.0.0RC2/jdk1.5.0/bin/java.exe
0x7c930000 - 0x7ca00000  C:/WINDOWS/system32/ntdll.dll
0x7c800000 - 0x7c92b000  C:/WINDOWS/system32/kernel32.dll
0x77f30000 - 0x77fdc000  C:/WINDOWS/system32/ADVAPI32.dll
0x77c20000 - 0x77cbf000  C:/WINDOWS/system32/RPCRT4.dll
0x77b70000 - 0x77bca000  C:/WINDOWS/system32/MSVCRT.dll
0x6d640000 - 0x6d7c5000  D:/jboss-4.0.0RC2/jdk1.5.0/jre/bin/client/jvm.dll
0x77e10000 - 0x77ea1000  C:/WINDOWS/system32/USER32.dll
0x77bd0000 - 0x77c18000  C:/WINDOWS/system32/GDI32.dll
0x769e0000 - 0x76a0a000  C:/WINDOWS/system32/WINMM.dll
0x76180000 - 0x7619d000  C:/WINDOWS/system32/IMM32.DLL
0x63090000 - 0x63099000  C:/WINDOWS/system32/LPK.DLL
0x74ae0000 - 0x74b41000  C:/WINDOWS/system32/USP10.dll
0x6d280000 - 0x6d288000  D:/jboss-4.0.0RC2/jdk1.5.0/jre/bin/hpi.dll
0x76ab0000 - 0x76abb000  C:/WINDOWS/system32/PSAPI.DLL
0x6d610000 - 0x6d61c000  D:/jboss-4.0.0RC2/jdk1.5.0/jre/bin/verify.dll
0x6d300000 - 0x6d31d000  D:/jboss-4.0.0RC2/jdk1.5.0/jre/bin/java.dll
0x6d630000 - 0x6d63f000  D:/jboss-4.0.0RC2/jdk1.5.0/jre/bin/zip.dll
0x6d4c0000 - 0x6d4d3000  D:/jboss-4.0.0RC2/jdk1.5.0/jre/bin/net.dll
0x71b60000 - 0x71b77000  C:/WINDOWS/system32/WS2_32.dll
0x71b50000 - 0x71b58000  C:/WINDOWS/system32/WS2HELP.dll
0x71a80000 - 0x71ac0000  C:/WINDOWS/System32/mswsock.dll
0x76e30000 - 0x76e5a000  C:/WINDOWS/system32/DNSAPI.dll
0x76ed0000 - 0x76ed7000  C:/WINDOWS/System32/winrnr.dll
0x76e70000 - 0x76e9e000  C:/WINDOWS/system32/WLDAP32.dll
0x76ee0000 - 0x76ee5000  C:/WINDOWS/system32/rasadhlp.dll
0x68000000 - 0x6802f000  C:/WINDOWS/system32/rsaenh.dll
0x75870000 - 0x7592f000  C:/WINDOWS/system32/USERENV.dll
0x71ba0000 - 0x71bf8000  C:/WINDOWS/system32/netapi32.dll
0x69660000 - 0x696b6000  C:/WINDOWS/system32/hnetcfg.dll
0x71a40000 - 0x71a48000  C:/WINDOWS/System32/wshtcpip.dll
0x6d4e0000 - 0x6d4e9000  D:/jboss-4.0.0RC2/jdk1.5.0/jre/bin/nio.dll
0x6d370000 - 0x6d37d000  D:/jboss-4.0.0RC2/jdk1.5.0/jre/bin/JdbcOdbc.dll
0x4b750000 - 0x4b78d000  C:/WINDOWS/system32/ODBC32.dll
0x77370000 - 0x77407000  C:/WINDOWS/WinSxS/x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_5.82.3790.1830_x-ww_1B6F474A/COMCTL32.dll
0x761a0000 - 0x761e8000  C:/WINDOWS/system32/comdlg32.dll
0x7ca10000 - 0x7d1f0000  C:/WINDOWS/system32/SHELL32.dll
0x77eb0000 - 0x77f02000  C:/WINDOWS/system32/SHLWAPI.dll
0x77cd0000 - 0x77dd3000  C:/WINDOWS/WinSxS/x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.3790.1830_x-ww_7AE38CCF/comctl32.dll
0x28be0000 - 0x28bf2000  C:/WINDOWS/system32/odbcint.dll
0x774b0000 - 0x775e4000  C:/WINDOWS/system32/ole32.dll
0x775f0000 - 0x7767c000  C:/WINDOWS/system32/OLEAUT32.dll
0x4ebc0000 - 0x4ebda000  C:/WINDOWS/system32/odbccp32.dll
0x77b60000 - 0x77b68000  C:/WINDOWS/system32/VERSION.dll
0x76eb0000 - 0x76ec3000  C:/WINDOWS/system32/Secur32.dll
0x77680000 - 0x77703000  C:/WINDOWS/system32/CLBCatQ.DLL
0x76f70000 - 0x770ca000  C:/WINDOWS/system32/COMRes.dll
0x2e0d0000 - 0x2e0db000  C:/WINDOWS/system32/VBAJET32.DLL

VM Arguments:
jvm_args: -Dprogram.name=run.bat -Xms128m -Xmx512m -Djava.endorsed.dirs=D:/jboss-4.0.0RC2/bin//../lib/endorsed
java_command: org.jboss.Main

Environment Variables:
JAVA_HOME=D:/jboss-4.0.0RC2/bin/../jdk1.5.0/
PATH=C:/Program Files/HP/NCU;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem
USERNAME=Administrator
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 15 Model 6 Stepping 8, GenuineIntel

---------------  S Y S T E M  ---------------

OS: Windows Server 2003 family Build 3790 Service Pack 1

CPU:total 4 family 15, cmov, cx8, fxsr, mmx, sse, sse2, ht

Memory: 4k page, physical 2095276k(1440348k free), swap 4037132k(3452888k free)

vm_info: Java HotSpot(TM) Client VM (1.5.0-b64) for windows-x86, built on Sep 15 2004 03:00:31 by "java_re" with MS VC++ 6.0

起初怀疑是申请数据库连接数过多导致服务器崩溃,优化了连接池,并做了个测试,用上千个线程获得连接,不会导致JVM CRASH。顶多抛得不到连接的警告,最后在机器上不停的开多个浏览器窗口进行刷新页面(首页大概15个IFRAME,每个IFRAME中使用了一个CONNECTION),每次刷新可能会需要15个CONN,大约在刷新很长一段时间后,重现出了此故障。

在百度和GOOGLE上找了一把,大致原因在SUN官网上看到一个BUG,JDBC-ODBC DRIVER的一个BUG,JDBC-ODBC一般就不应该作为商用,一般就做为测试时使用的驱动,本身JDBC-ODBC驱动对多线程的支持不好,在单线程下跑没有问题,但是在多线程下可能导致JVM CRASH。

基本找到原因,于是把JDK升级到1.6,期望在1.6中解决了这个BUG,但是事实上升级后还是有这个问题,看来1.6中依然有这个问题.

于是既然是驱动的问题,索性不用JDBC-ODBC方式驱动,想找一个ACCESS 的纯JDBC驱动,找了很久找到一个HXTT第三方驱动:access.jar

<dbconfig>
     <type>access</type>
     <driver>com.hxtt.sql.access.AccessDriver</driver>
     <url>jdbc:Access:///../server/default/deploy/web-tomcat50.sar/ROOT.war/res/DBSystem.mdb</url>
     <user></user>
     <password></password>
  </dbconfig>

更换驱动后,到是没有这个问题了,但是让人更郁闷的是,网上所有的这个三方驱动都是试用版,最多支持50次请求,超过50次会抛出异常导致无法使用,天哪真是越搞越麻烦了。到HXTT官网上一看,这个驱动要卖100欧元,算了,忍了为了个驱动,太不值了,尝试找了个反编译工具,把这个驱动的代码反编译出来,把请求次数限制并抛异常部分去掉,可惜的是代码经过了混淆,反编译出来有很多问题(也是,人家卖100欧元的东西能让你这么轻易搞定吗?)

浪费太多的时间,为了节省时间,决定不在一棵树上吊死,换了数据库,并采用纯JDBC驱动方式最终解决这个问题,捆扰一时的问题终于解决了。

http://blog.csdn.net/foxliucong/article/details/3750873

http://techbbs.zol.com.cn/1/8_569.html

解决JDBC-ODBC驱动桥导致JVM crash.相关推荐

  1. JVM 系列一:Native memory allocation 导致JVM Crash

    2019独角兽企业重金招聘Python工程师标准>>> JVM Crash抛出如下信息: # # There is insufficient memory for the Java ...

  2. openjdk7的ImageIO.read()导致jvm异常crash

    首先服务器用的是openjdk7,下面是读取图片的代码 public static JSONObject getPicDetail(String picPath) {JSONObject picObj ...

  3. JVM crash at ForUtil.readBlock

    今天同学让帮忙看下JVM错误日志,才发现已经开始接触java3个月,还没看到相关错误日志.平时看的都只是程序运行时写入的日志,关于JVM的错误日志还真没看过.网上收集资料,整理如下. 一.日志文件: ...

  4. jvm crash 的原因以及解决办法

    当JVM crash时,不要慌,首先启动crash的服务,然后再分析原因.那么,应该从哪里入手呢?下面我根据已有的知识,发表下自己的浅见,希望能给和我遇到一样问题的小伙伴一些思路. 谁crash了我们 ...

  5. 反汇编程序导致程序crash的解决思路

    曾经发现win7下程序基地址不停地变动,又发现下移代码会导致程序crash,一度怀疑win7系统或者vs编译器是不是做了什么校验机制,专门针对数据逆向者,限制反汇编修改代码,打断了我学习外挂编写的信心 ...

  6. 如何抓获JVM crash的幕后黑手

    2019独角兽企业重金招聘Python工程师标准>>> 最近几天线上jboss服务器经常莫名地突然停止运行,导致半夜都被报警短信吵醒,元旦几天也基本就在收报警,然后重启系统.查看jb ...

  7. jvm crash分析

    问题描述:线上进程异常退出,查看服务器端日志,有jvm crash文件生成 # # A fatal error has been detected by the Java Runtime Enviro ...

  8. 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果

    一直很纠结,Oracle的快速返回机制,虽然结果集很多,可是它能很快的显示第一个结果,虽然通过MYSQl的客户端可以做到,但是通过JDBC却不行. 今天用了1个多小时,终于搞定此问题,希望对广大Jav ...

  9. 假笨说-协助美团kafka团队定位到的一个JVM Crash问题

    概述 有挺长一段时间没写技术文章了,正好这两天美团kafka团队有位小伙伴加了我微信,然后咨询了一个JVM crash的问题,大家对crash的问题都比较无奈,因为没有现场,信息量不多,碰到这类问题我 ...

最新文章

  1. [前端技术]如何加深对JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解...
  2. 最新款服务器主板,服务器主板
  3. 胡珀:从危到机,AI 时代下的安全挑战
  4. 聊聊高并发(三十六)Java内存模型那些事(四)理解Happens-before规则
  5. Java类类的getDeclaringClass()方法和示例
  6. Docker学习总结(60)——Docker-Compose 基础知识回顾总结
  7. MySQL(三)表记录的更新操作
  8. kibana界面汉化
  9. jupyter调用py文件_解决Jupyter notebook中.py与.ipynb文件的import问题
  10. C#捕获控制台(console)关闭事件
  11. 挂载Linux镜像文件,使用镜像文件安装依赖
  12. adb连接 vivo_vivo手机驱动
  13. 排序——直接选择排序
  14. pip install scikit-image安装失败,而且通过transform.rescale(img,0.6)时,原图像的通道数3变为2了,怎么解决?
  15. 干货 | 一步步拆解 Elasticsearch BM25 模型评分细节
  16. 前端学习之百叶窗效果
  17. 使用Docker搭建实验室共享GPU服务器
  18. vue学习笔记-绑定属性 绑定class及style(2)
  19. 哪款投影仪做家庭影院效果好?家用投影仪哪个好
  20. GitHub中国区前100名到底是什么样的人?向大佬们学习。

热门文章

  1. 基于PHP+MySQL汽车租赁管理系统的设计与实现
  2. 03_根据配置文件创建SqlSessionFactory(Configuration的创建过程)
  3. HiKariCP数据库连接池
  4. java 微信 百度地图_[Java教程]H5微信通过百度地图API实现导航方式二
  5. GIT与SVN的比较
  6. eNSP无线AC控制器的配置(AP 交换机 AC1 AC2 AC3)
  7. Mysql社区版安装教程
  8. c语言单片机与plc通讯,用c51实现单片机和plc之间通讯实例
  9. AI“文化宴”,易碎的市场寻求新的突破
  10. js 根据汉字首字母排序(省份排序) 或 根据英文首字母排序——za排序 az排序