首页 > 解决方案 > dp:url-open 的超时值在 datapower 中被忽略

问题描述

我提供了一秒的超时时间,但是当 URL 关闭时,响应需要 120 多秒。是否有一些变量或某些东西会覆盖 do:url-open 中的超时?

更新:我在请求转换和响应转换上调用 dp:url-open。所以覆盖的超时时间是 60 秒,加上两边它变成了 120 秒。

这是我的调用方式(我存储 dp:url-open 调用前后的时间,然后在响应中返回它们): 在此处输入图像描述

案例 1:当 url 可访问时,我得到如下结果: 在此处输入图像描述

案例 2:当 url 不可达时: 在此处输入图像描述

更新:修复:似乎我使用的端口首先在防火墙中超时,它曾经花费 1 分钟。我早些时候试图访问在端口 8077 上运行的应用程序,后来我将其更改为 8088,我开始看到我正在通过的相同超时。

标签: ibm-datapower

解决方案


超时仅影响脚本中完成的do:url-open()操作,而不影响服务本身。这取决于您如何构建解决方案,但do:url-open()应该尊重超时。您可以通过将日志设置为debug并添加一个<xsl:message>Before url-open</xsl:message>和一个after以在日志中查看它是否是您的 url-open 调用或等待 120 多秒的服务来检查这一点。

如果是 url-open,您很可能在脚本中有一些错误,如果是服务暂停了您需要从脚本返回的响应(或根据您的需要抛出错误)以暂停服务。

您可以为服务本身设置超时,也可以在用户代理中为您正在调用的特定 URL 设置超时。请注意,如果您将其设置为服务级别,则超时将在该时间之后终止服务,因此 1 秒。不推荐!


推荐阅读