0

应用服务器 Sun appserver 8.1 JVM - java 1.5.0.11

我们在 Sun 应用服务器 9.x 中部署了一个处理消息的 JMS 接收器。在处理了大约 50 条奇怪的消息后,应用服务器挂起。重新启动后,50 条奇数消息被处理并再次挂起。

没有抛出异常/错误(我们修改了代码以捕获 Throwable 并以严重模式登录)。因此,当它们被重新处理时,不能将行为归因于代码或消息。

非常感谢我无法加载整个堆栈的任何 f/b 建议,有没有办法附加文件?

附上 JSTACK o/p

regds, Chiths

Thread t@139: (state = BLOCKED)
 - com.sun.httpservice.spi.HttpService.stop() @bci=0, line=286 (Interpreted frame)
 - com.sun.enterprise.web.HttpServiceWebContainer.stopHttpService() @bci=16, line=1080 (Interpreted frame)
 - com.sun.enterprise.web.HttpServiceWebContainer.stopInstance() @bci=24, line=913 (Interpreted frame)
 - com.sun.enterprise.web.HttpServiceWebContainerLifecycle.onShutdown() @bci=9, line=62 (Interpreted frame)
 - com.sun.enterprise.server.ApplicationServer.onShutdown() @bci=55, line=414 (Interpreted frame)
 - com.sun.enterprise.server.Shutdown.startShutdown(com.sun.enterprise.admin.event.ShutdownEvent) @bci=3, line=41 (Interpreted frame)
 - com.sun.enterprise.admin.event.AdminEventMulticaster.invokeShutdownEventListener(com.sun.enterprise.admin.event.ShutdownEventListener, com.sun.enterprise.admin.event.ShutdownEvent) @bci=7, line=1445 (Interpreted frame)
 - com.sun.enterprise.admin.event.AdminEventMulticaster.handleShutdownEvent(com.sun.enterprise.admin.event.AdminEvent) @bci=56, line=1434 (Interpreted frame)
 - com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(com.sun.enterprise.admin.event.AdminEvent) @bci=247, line=443 (Interpreted frame)
 - com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(com.sun.enterprise.admin.event.AdminEvent) @bci=37, line=139 (Interpreted frame)
 - com.sun.enterprise.admin.server.core.channel.AdminChannelServer.sendNotification(byte[], com.sun.enterprise.admin.event.AdminEvent) @bci=52, line=90 (Interpreted frame)
 - sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) @bci=0 (Compiled frame)
 - sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) @bci=87, line=39 (Compiled frame)
 - sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) @bci=6, line=25 (Compiled frame)
 - java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) @bci=111, line=585 (Compiled frame)
 - sun.rmi.server.UnicastServerRef.dispatch(java.rmi.Remote, java.rmi.server.RemoteCall) @bci=246, line=294 (Compiled frame)
 - sun.rmi.transport.Transport$1.run() @bci=23, line=153 (Interpreted frame)
 - java.security.AccessController.doPrivileged(java.security.PrivilegedExceptionAction, java.security.AccessControlContext) @bci=0 (Interpreted frame)
 - sun.rmi.transport.Transport.serviceCall(java.rmi.server.RemoteCall) @bci=163, line=149 (Interpreted frame)
 - sun.rmi.transport.tcp.TCPTransport.handleMessages(sun.rmi.transport.Connection, boolean) @bci=185, line=460 (Compiled frame)
 - sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run() @bci=685, line=701 (Interpreted frame)
 - java.lang.Thread.run() @bi=11, line=595 (Interpreted frame)
4

1 回答 1

0

线程被阻塞,没有上下文就无法分析。

考虑附加 jvisualvm 以进行更好的调查。它还可以检测死锁。

于 2011-07-01T10:11:28.163 回答