#
从调用本地动态库的模块上线以后,有时会出现JBOSS崩溃,JAVA虚拟机崩溃的现象,求高手指点解决
调用动态库
j  loaddll.loaddll.LoadLibrary(Ljava/lang/String;)I+0
j  com.known.sercet.SecretMac.LoadDLL()I+14
j  com.known.sercet.SecretMac.<init>()V+49# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x07334836, pid=2732, tid=3248
#
# Java VM: Java HotSpot(TM) Server VM (1.4.2_14-b05 mixed mode)
# Problematic frame:
# C  [nornjni.dll+0x4836]
#---------------  T H R E A D  ---------------Current thread (0x05a65a30):  JavaThread "http-0.0.0.0-8001-42" daemon [_thread_in_native, id=3248]siginfo: ExceptionCode=0xc0000005, writing address 0x00000004Registers:
EAX=0x0e823690, EBX=0x07356910, ECX=0x0e8234d8, EDX=0x07361fa0
ESP=0x070af108, EBP=0x0e823690, ESI=0x00000000, EDI=0x00000000
EIP=0x07334836, EFLAGS=0x00010287Top of Stack: (sp=0x070af108)
0x070af108:   0e823590 07361fa0 07356910 070af1d4
0x070af118:   07332db0 070af144 07361fa0 0e823590
0x070af128:   070af1d4 00015e6d 0d55d027 0000000f
0x070af138:   041eec05 00015e6d 070af1d8 070af200
0x070af148:   0734e4e8 073314bb 070af1a4 0e823590
0x070af158:   05a65a30 375f8618 070af238 375f85c0
0x070af168:   11f34588 07361fe8 11f34370 11f34311
0x070af178:   0e8234a1 0000000f 0000001f 00015e6d Instructions: (pc=0x07334836)
0x07334826:   08 8b 32 89 71 08 8b 32 3b 35 24 69 35 07 74 03
0x07334836:   89 4e 04 8b 71 04 89 72 04 8b 73 04 3b 4e 04 75 
Stack: [0x07070000,0x070b0000),  sp=0x070af108,  free space=252k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [nornjni.dll+0x4836]Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  loaddll.loaddll.LoadLibrary(Ljava/lang/String;)I+0
j  com.known.sercet.SecretMac.LoadDLL()I+14
j  com.known.sercet.SecretMac.<init>()V+49
v  ~C2IAdapter
J  com.known.sercet.SecretMac.getTraMac(Ljava/lang/Object;)Ljava/lang/String;
v  ~I2CAdapter
j  com.known.selfassist.bustier.facade.BusinessSocketHelp.Pay(Ljava/lang/Object;)Lcom/known/selfassist/vo/BaseReceivePackage;+90
v  ~C2IAdapter
J  com.known.selfassist.bustier.facade.BusinessSocketHelp.Sockets(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
J  com.known.selfassist.bustier.facade.BusinessSocket.baseService(Ljava/lang/Object;)Ljava/lang/Object;
J  sun.reflect.GeneratedMethodAccessor154.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
J  sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
J  org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(Lorg/jboss/invocation/Invocation;)Ljava/lang/Object;
J  org.jboss.ejb.plugins.CallValidationInterceptor.invoke(Lorg/jboss/invocation/Invocation;)Ljava/lang/Object;
J  org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(Lorg/jboss/invocation/Invocation;Z)Ljava/lang/Object;
J  org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(Lorg/jboss/invocation/Invocation;)Ljava/lang/Object;
J  org.jboss.ejb.plugins.TxInterceptorBMT.invoke(Lorg/jboss/invocation/Invocation;)Ljava/lang/Object;
J  org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(Lorg/jboss/invocation/Invocation;)Ljava/lang/Object;
J  org.jboss.ejb.plugins.SecurityInterceptor.invoke(Lorg/jboss/invocation/Invocation;)Ljava/lang/Object;
J  org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(Lorg/jboss/invocation/Invocation;)Ljava/lang/Object;
J  org.jboss.ejb.SessionContainer.internalInvoke(Lorg/jboss/invocation/Invocation;)Ljava/lang/Object;
J  org.jboss.ejb.Container.invoke(Lorg/jboss/invocation/Invocation;)Ljava/lang/Object;
J  org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
J  org.jboss.ejb.plugins.local.StatelessSessionProxy.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
J  com.known.selfassist.webtier.client.FacadeClientLocalhost.getObjectValue(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
J  com.known.selfassist.webtier.action.JNHFAction.doCashPay(Lorg/apache/struts/action/ActionMapping;Lorg/apache/struts/action/ActionForm;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lorg/apache/struts/action/ActionForward;
v  ~I2CAdapter
j  sun.reflect.GeneratedMethodAccessor275.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+64
v  ~C2IAdapter
J  sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
J  org.apache.struts.actions.DispatchAction.execute(Lorg/apache/struts/action/ActionMapping;Lorg/apache/struts/action/ActionForm;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lorg/apache/struts/action/ActionForward;
J  org.apache.struts.action.RequestProcessor.process(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V
J  org.apache.struts.action.ActionServlet.doPost(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V
J  javax.servlet.http.HttpServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V
J  javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
J  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
J  org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
J  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
J  org.apache.catalina.core.StandardWrapperValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
J  org.apache.catalina.core.StandardContextValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
J  org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
J  org.apache.catalina.core.StandardHostValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
J  org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
J  org.apache.catalina.connector.CoyoteAdapter.service(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;)V
J  org.apache.coyote.http11.Http11Processor.process(Ljava/io/InputStream;Ljava/io/OutputStream;)V
J  org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Lorg/apache/tomcat/util/net/TcpConnection;[Ljava/lang/Object;)V
J  org.apache.tomcat.util.net.MasterSlaveWorkerThread.run()V
v  ~OSRAdapter
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub---------------  P R O C E S S  ---------------
VM state:not at safepoint (normal execution)VM Mutex/Monitor currently owned by a thread: NoneHeap
 def new generation   total 61440K, used 33936K [0x10010000, 0x142b0000, 0x142b0000)
  eden space 54656K,  58% used [0x10010000, 0x11f58bd0, 0x13570000)
  from space 6784K,  28% used [0x13c10000, 0x13deb570, 0x142b0000)
  to   space 6784K,   0% used [0x13570000, 0x13570000, 0x13c10000)
 tenured generation   total 546176K, used 130981K [0x142b0000, 0x35810000, 0x35810000)
   the space 546176K,  23% used [0x142b0000, 0x1c2994c8, 0x1c299600, 0x35810000)
 compacting perm gen  total 34048K, used 33973K [0x35810000, 0x37950000, 0x39810000)
   the space 34048K,  99% used [0x35810000, 0x3793d440, 0x3793d600, 0x37950000)VM Arguments:
jvm_args: -Dprogram.name=run.bat -Xms600m -Xmx600m -XX:MaxNewSize=150m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.endorsed.dirs=D:\JBoss\jboss8001\bin\\..\lib\endorsed
java_command: org.jboss.Main
Launcher Type: SUN_STANDARDEnvironment Variables:
JAVA_HOME=C:\j2sdk1.4.2_14
CLASSPATH=.;
PATH=C:\j2sdk1.4.2_14\bin;E:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Tuxedo7.1\bin;C:\j2sdk1.4.2_14\bin;C:\Program Files\Symantec\pcAnywhere\
USERNAME=Administrator
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 6 Model 23 Stepping 6, GenuineIntel
---------------  S Y S T E M  ---------------OS: Windows Server 2003 family Build 3790 Service Pack 2CPU:total 8 family 6, cmov, cx8, fxsr, mmx, sse, sse2Memory: 4k page, physical 2097151k(2097151k free), swap 4194303k(4194303k free)vm_info: Java HotSpot(TM) Server VM (1.4.2_14-b05) for windows-x86, built on Mar 14 2007 16:37:27 by "java_re" with MS VC++ 6.0

解决方案 »

  1.   

    晕死,贴一堆 JVM 调试信息就能回答问题的人,除了不是人的人之外,没有人能回答。
      

  2.   

    赶紧去检查你的dll的相关代码,怀疑里面有内存没有free!
      

  3.   

    JBOSS我很少用,但是从出现Ljava/lang/Object来看,你的程序出现了参数兼容性问题,review你的code吧!从 compacting perm gen total 34048K, used 33973K [0x35810000, 0x37950000, 0x39810000)
      the space 34048K, 99% used [0x35810000, 0x3793d440, 0x3793d600, 0x37950000)来看,你的配置少如下配置-XX:PermSize=64M 
    -XX:MaxPermSize=256m从综合情况来看,可能你的jdk版本该升级了。哈哈!原来用至强系统低版本也出问题,后来用1.6 18kit 就很少出问题了!
      

  4.   


    既然是 DES,那应该就是标准的了,否则也不叫 DES 了,呵呵。Java 中的安全类库很强大的,如果不是必须要调用 dll 组件的话,建议从 Java 代码这块来实现。估计是 dll 的实现有问题才导致 JVM 崩溃了,要不先用新版本的 JDK 在其他机器上试试看看有没有这种情况出现。
      

  5.   

    发现SOCKET调用过多,异常过多。现在屏蔽了观察一下。