日期:2014-05-17  浏览次数:20611 次

一个关于WebService应用的问题。求解!
我有两套web应用系统A,B分别部署在两个服务器中。
在A系统中通过WebService去调用B系统的某些方法,前期都没问题。
不过当B系统连续运行大概一周左右,A系统再通过WebService去调用B系统的方法就调用不到了。
必须将B系统重启后才能正常使用。所以搞到现在经常要去重启B系统。

这到底是什么原因导致的呢?还请相关人事能帮忙解决下。 谢谢!

------解决方案--------------------
不会是内存溢出了吧。
------解决方案--------------------
第一,楼主查看下当A调用B不行的时候,B系统本身是否运行正常,也许B本身已经内存溢出了。
第二,如果B本身运行正常,webservice创建的连接没有释放掉,导致到达最大连接数或者网络阻塞。
第三,B是否有数据库操作,数据库连接是否释放。
------解决方案--------------------
探讨
第一,楼主查看下当A调用B不行的时候,B系统本身是否运行正常,也许B本身已经内存溢出了。
第二,如果B本身运行正常,webservice创建的连接没有释放掉,导致到达最大连接数或者网络阻塞。
第三,B是否有数据库操作,数据库连接是否释放。

------解决方案--------------------
webservice不会创建连接,是你webservice类中代码创建的连接没有释放
------解决方案--------------------
如果B的log里没有exception的话,是不是B里面有死锁,拿住一个唯一的资源,其它的web service call都被挡在锁外了。

把thread dump打出来看下