WebSphere 中的线程挂起问题

在使用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。

你可能感兴趣的:(thread,IBM,SOAP,websphere)