在使用WebSphere中会遇到线程挂起问题,一般会是这样:
SoapConnectorThreadPool : 304 某某线程已经挂起了xxx毫秒
查阅了一些资料,其中IBM中的一份文档说的最是详细:
1.(www-1.ibm.com/support/docview.wss http://www-1.ibm.com/support/docview.wss?rs=180&uid=swg1PK41694)
Error description
DeadLock in WorkSpace.
Local fix
Problem summary
****************************************************************
* USERS AFFECTED: IBM Websphere Application Server version *
* 6.0 and 6.1 users. *
****************************************************************
* PROBLEM DESCRIPTION: If there are two simultaneous *
* operations, like workspace-invoke and *
* workspace-release then a deadlock in *
* workspace might occur. *
****************************************************************
* RECOMMENDATION: *
****************************************************************
(1) Invoke workspace thread locks the RepositoryContext object
and is waiting for the WorkSpaceManager object
(2) Whereas the release thread locks the WorkSpaceManager
object and is waiting for the RepositoryContext object in
order to finish its task and release the WorkSpaceManager
object.
So both the tasks are waiting for a locked resource forever.
Problem conclusion
Replaced method level synchronization with Synchronized blocks
in Workspace code.
The fix for this APAR is currently targeted for inclusion in
service pack 6.0.2.21 and 6.1.0.11
Please refer to the recommended updates page for delivery
information:
http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
2.http://www-1.ibm.com/support/docview.wss?rs=180&context=SSEQTP&dc=D400&uid=swg24015935&loc=en_US&cs=UTF-8&lang=en&rss=ct180websphere
则详细讲述了在WAS6.1中如何解决这个问题,这里不做深入研究。
总结起来,就是不要用restart的方法来重启应用程序,另外,在程序中尽量不要使用 synchronized。再者,还可以升级WAS的fixpack。
分享到:
相关推荐
1. **获取线程堆栈信息**:工具能够快速地打印出服务器上所有线程的当前堆栈信息,这对于识别阻塞或挂起的线程,以及它们在执行路径中的位置非常有帮助。 2. **诊断性能问题**:通过查看线程堆栈,可以发现CPU消耗...
- **Declared Thread Hung Count**和**Cleared Thread Hung Count**: 监控停止或挂起的线程,帮助诊断死锁和性能问题。 - **Concurrent Hung ThreadCount**: 并发停止的线程数,同样与性能和稳定性相关。 使用...
1. **应用程序状态**:检查WebSphere上部署的应用程序是否正在运行,没有出现错误或挂起状态。 2. **JVM内存**:监视Java虚拟机的堆内存使用,防止内存泄漏导致服务器性能下降。 3. **HTTP/HTTPS响应时间**:监控...
IBM Thread and Monitor Dump Analyzer for Java(简称 jca)。它可以识别Java线程中的挂起,死锁,资源竞争,和瓶颈。 使用方法: java -Xmx1000m -jar jca456.jar
具体到本案例中,通过WebSphere日志分析,发现多个线程长时间处于活动状态而未能正常释放,这导致了应用的响应速度变慢和多线程挂起问题。 对于这类性能故障的定位,通常需要对应用服务器和应用程序进行深入的性能...
javacore是一种由Java虚拟机(JVM)生成的诊断文件,当JVM遇到错误或异常时,如系统挂起或崩溃,它会记录下当前JVM的状态,包括线程堆栈信息、类加载情况、内存使用等。javacore文件对于定位问题原因非常有帮助,...
在WebSphere应用服务器中,当遇到应用程序错误、性能瓶颈或是服务器挂起等问题时,WebSphere也会生成dump文件。IBM的WebSphere Support Tools包含了一套名为`wsadmin`的脚本环境,可以用来收集和分析这些dump。此外...
当遇到系统崩溃、挂起或性能问题时,dump文件可以帮助开发者和系统管理员分析问题的根源。 **步骤1:开启WAS的dump生成功能** 1. 登录到WebSphere管理员控制台(通常通过http://hostname:port/ibm/console)。 2. ...
同时,IBM Websphere Compute Grid也提供了完善的日志、监督、暂停(挂起)、定时等功能,以满足批处理的需求。 IBM Websphere Compute Grid是一个非常强大的商业级解决方案,可以满足批处理的需求,并且提供了完善...
- 性能下降或挂起的问题可能是因为线程间的竞争或者资源分配不当。javacore文件中包含了所有活动线程的信息,这对于诊断此类问题是极其有用的。 #### 六、注意事项 - 应用服务器频繁重启通常是JVM崩溃的表现之一...
- **JavaCore**:是一个Java虚拟机(JVM)在某个时间点上的状态快照,包括线程栈、锁信息、类加载情况等,用于分析线程死锁、挂起等问题。 #### 设置环境变量 在AIX系统下的WebSphere应用服务器中,可以通过设置一...
例如,网络请求,同步可能导致应用挂起,异步则可让应用继续其他操作。 12. 线程设计问题:涉及线程同步与协作,可以使用synchronized关键字或wait/notify机制来控制对共享变量j的访问,避免竞态条件。 13. EJB的...
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...
它要完成以下三件事:将分配程序标识为已经初始化,找到系统中最后一个有效内存地址,然后建立起指向我们管理的内存的指针。这三个变量都是全局变量: 清单 1. 我们的简单分配程序的全局变量 int has_...