【问题标题】:dp:url-open's timeout value is getting ignored in datapowerdp:url-open 的超时值在 datapower 中被忽略
【发布时间】:2020-10-19 12:14:28
【问题描述】:

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

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

以下是我的调用方式(我存储 dp:url-open 调用前后的时间,然后在响应中返回它们):

案例 1: 当 url 可访问时,我得到如下结果:

案例 2: 无法访问 url 时:

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

【问题讨论】:

    标签: ibm-datapower


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗨安德斯,我将日期和时间存储在 url 打开之前和之后的两个变量中,并在响应中返回这些变量。我已经用相关的截图更新了原始问题。当 url 可访问时我没有时差,当 url 关闭时延迟 1 分钟以上。
    • 我做了更多分析,发现我的超时值实际上并没有被忽略,但我的超时值增加了 60 秒。例如,当我将超时值保持为 7 秒时,实际超时为 1 分 10 秒,当我的超时为 37 秒时,实际超时为 1 分 40 秒,类似地,我的超时值为 47 秒时为 1 分 50 秒。
    • 如果更改服务超时会怎样?
    • 当我看到这个超时值超过我配置的值时,我使用 dp URL open 调用的服务没有运行。除了我有另一个 java 应用程序获取相同的内容URL 并且超时的时间与我在代码中配置的时间完全相同(以毫秒为单位)。关于我的 mpgw 超时,我的“后端超时”和“前端超时”都是 10 秒。
    • 看来我使用的端口首先在防火墙中超时,它曾经花费 1 分钟。我之前试图访问在端口 8077 上运行的应用程序,后来我将其更改为 8088,然后我开始看到我正在通过的相同超时。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2011-12-21
    • 1970-01-01
    • 2015-10-04
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多