Sun 应用程序服务器中的应用程序在处理一些消息后挂起
应用程序服务器 Sun appserver 8.1 JVM - java 1.5.0.11
我们有一个 JMS 接收器处理消息,部署在 Sun application Server 9.x 中 处理大约 50 条奇怪的消息后,应用程序服务器挂起。 重新启动后,50 条奇怪的消息将被处理并再次挂起。
不会抛出任何异常/错误(我们修改了代码以捕获 Throwable 并以严重模式登录)。因此,当代码或消息被重新处理时,该行为不能归因于它们。
非常感谢任何餐饮建议 我无法加载整个堆栈,有没有办法附加文件?
附件是 JSTACK o/p
regds, 奇斯
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)
Appliation server Sun appserver 8.1
JVM - java 1.5.0.11
We have a JMS receiver processing messages deployed in Sun application Server 9.x
After processing about 50 odd messages the appserver hangs.
Upon restart the 50 odd messages gets processed and hangs again.
No exceptions / error are thrown (We modified the code to catch Throwable and log in severe mode). Hence the bhavior cannot be attributed to code or messages as they get re-processed.
Would deeply appreciate any f/b suggestions
I could not load the entire stack, is there a way to attach a file?
Attached is 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)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
线程被阻塞,没有上下文就无法分析。
考虑附加 jvisualvm 以更好地进行调查。它还可以检测死锁。
The thread is blocked which is impossible to analyze without context.
Consider attaching with jvisualvm to investigate better. It can also detect a deadlock.