You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复WebSphere 6.1调用外部WebService时的probeid=337异步IO异常

解决WebSphere 6.1调用外部WebService间歇性Async IO失败问题

我之前处理过好几起WAS6.1上类似的WebService调用间歇性IO错误,结合你已经排除WAS7专属端口问题的排查结果,这个RC:107 Transport endpoint is not connected错误本质是TCP连接被远端或网络设备提前关闭,但WAS的异步IO通道还在尝试读取数据导致的。下面是几个针对性的解决方案:

一、调整WebService客户端连接池配置

WAS的WebService客户端默认复用连接池中的连接,如果远端服务主动关闭了连接但池里的连接还没被回收,就会触发这个异常。你可以这么调整:

  • 登录WAS管理控制台,依次进入 应用程序 > 企业应用程序 > [你的目标应用] > Web服务客户端属性
  • 找到对应外部WebService的客户端配置,把最大空闲时间设得比远端服务的连接超时时间短(比如30秒),确保无效连接会被及时回收
  • 同步设置连接超时和读取超时,和外部WebService的配置对齐,避免长时间等待无效连接

二、禁用异步IO(AIO)支持

WAS6.1的AIO实现存在一些兼容性问题,尤其是和老版本服务端或某些网络设备交互时。尝试关闭AIO:

  • 进入 服务器 > 服务器类型 > WebSphere应用服务器 > [你的服务器] > 端口
  • 找到HTTP传输端口(一般是WC_defaulthost),进入后取消勾选使用异步IO选项
  • 重启服务器生效

三、优化TCP通道超时设置

TCP层面的超时配置会直接影响连接有效性:

  • 导航到 服务器 > 服务器类型 > WebSphere应用服务器 > [你的服务器] > TCP传输通道
  • 找到对应通道,把保持活动时间设为120秒左右,让WAS主动检测空闲连接是否有效
  • 同时调整连接超时和读取超时,避免连接长时间处于半开状态

四、启用WebService客户端连接验证

让客户端在使用连接前先验证有效性:

  • 编辑应用里的WebService客户端配置文件(比如ibm-webservicesclient-bnd.xmi或者WSDL绑定文件)
  • 添加参数com.ibm.ws.websvcs.transport.http.connectionValidationEnabled并设为true
  • 或者在代码层面做一层封装,调用WebService前先检查连接状态,无效则重新创建连接

五、排查网络中间设备

如果以上配置都没用,就得查网络层面:

  • 检查防火墙、负载均衡器的空闲连接超时设置,要是这个时间比WAS连接池的空闲时间短,就会导致连接被提前关闭
  • 确认外部WebService服务端的连接复用限制,比如最大连接数、空闲连接回收策略

验证方式

调整后可以这么验证效果:

  • 给应用加详细日志,记录每次WebService调用的连接状态和错误信息
  • 用压力测试工具模拟并发请求,观察是否还会出现间歇性异常
  • 监控TCP连接状态,看是否有大量TIME_WAIT或CLOSE_WAIT状态的连接

内容的提问来源于stack exchange,提问作者Sudersan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:02:13