当外部服务尚未回复时,Websphere 7.0 恰好在 180 秒后抛出 503

Posted

技术标签:

【中文标题】当外部服务尚未回复时,Websphere 7.0 恰好在 180 秒后抛出 503【英文标题】:Websphere 7.0 throwing 503 exactly after 180 seconds when the external service hasn't replied yet 【发布时间】:2018-09-11 21:16:21 【问题描述】:

我开发了一个 struts2 应用程序,它将文件写入外部系统(用 php 编写的 RESTful Web 服务),该系统必须将文件转换为 TIFF 并扫描这些文件。 这是sn-p的代码:

    HttpURLConnection conn = getConnection(Resource.VIRUS_SCAN_URL.getValue(), Constants.POST);
    conn.setDoInput(true);
    conn.setDoOutput(true);
    OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream(), Constants.UTF8);

    String payload = createJsonString(dto);
    writer.write(payload);
    writer.close();

    BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    StringBuffer jsonString = new StringBuffer();

问题是当文件很大并且外部系统花费超过 180 秒(3 分钟)时,我的服务器(websphere 7.0)会抛出 503 异常。我确定问题出在服务器配置上,因为使用相同的文件集,我尝试从 jboss 服务器提交文件,花了 5 分钟,响应成功。

我尝试的是通过根据this 指南将 WSHTTP 超时设置从 180 更改为 500 来配置它,但我的服务器仍然按原样运行。

高度赞赏这方面的任何指导。

【问题讨论】:

【参考方案1】:

我终于解决了这个问题。问题不在于配置。我加了

conn.setConnectTimeout(0);

到连接对象,它解决了这个问题。

【讨论】:

以上是关于当外部服务尚未回复时,Websphere 7.0 恰好在 180 秒后抛出 503的主要内容,如果未能解决你的问题,请参考以下文章

IBM WebSphere MQ请求/回复方案

框架内部日志转到system.out(websphere 7.0)

websphere MQ 7.0 - 接受任何用户

Websphere 6.1 到 7.0 缺少 JmqiObject 和 JmsQueue

在 Android 8.0 中未创建外部目录文件夹,但当目标 SDK 版本为 26 时,它在 6.0 和 7.0 设备中工作

漏洞预警 | WebSphere XML外部实体注入漏洞