我在Websphere Application Server 6.1.0.43上运行了一个应用程序。而且,当我想要调用远程服务时,我遇到了减速问题。
减速是来自类outboundConnectionCache的方法findGroupAndGetConnection。
根据IBM APAR PK94494:
在调用客户端JAX-RPC处理程序(如果存在)之后以及将实际SOAP消息发送到提供程序之前发生延迟。 因为延迟发生在IBM Web服务引擎中,这个问题 可能很难察觉。 com.ibm.ws.webservices.engine.transport。* =所有跟踪将显示类似于重复的条目:
[8/19/09 18:08:29:658 GMT] 00000047 OutboundConne 1输入: WSWS3595I:当前池大小:25。连接使用大小:0。 配置的池大小:25
此外,相同的跟踪规范将显示执行中的长时间延迟 .findGroupAndGetConnection()方法:
[8/19/09 18:08:03:428 GMT] 00000047 OutboundConne> OutboundConnectionCache.findGroupAndGetConnection() WAITING_THREADS_THRESHOLD是5条
[8/19/09 18:08:38:358 GMT] 00000047 OutboundConne< OutboundConnectionCache.findGroupAndGetConnection()退出
他们建议如下:
- 减少' com.ibm.websphere.webservices.http.connectionPoolCleanUpTime'从 默认值为180到120秒
- 增加最大连接数' com.ibm.websphere.webservices.http.maxConnection'物业来自 默认值为25到50.这也需要增加网络 容器线程池大小为100。
在更改默认属性之前,我决定监视Web容器线程使用情况,我注意到从未达到最大线程池大小(50),但是经常达到最小池大小(10),从而强制连接被破坏并重新创建。
运行最小池大小会导致这种减速吗?我应该增加最小池大小吗?我的问题是除http出站连接池之外的问题吗?