ibm-datapower - dp:url-open 的超时值在 datapower 中被忽略
问题描述
我提供了一秒的超时时间,但是当 URL 关闭时,响应需要 120 多秒。是否有一些变量或某些东西会覆盖 do:url-open 中的超时?
更新:我在请求转换和响应转换上调用 dp:url-open。所以覆盖的超时时间是 60 秒,加上两边它变成了 120 秒。
这是我的调用方式(我存储 dp:url-open 调用前后的时间,然后在响应中返回它们):
更新:修复:似乎我使用的端口首先在防火墙中超时,它曾经花费 1 分钟。我早些时候试图访问在端口 8077 上运行的应用程序,后来我将其更改为 8088,我开始看到我正在通过的相同超时。
解决方案
超时仅影响脚本中完成的do:url-open()
操作,而不影响服务本身。这取决于您如何构建解决方案,但do:url-open()
应该尊重超时。您可以通过将日志设置为debug
并添加一个<xsl:message>Before url-open</xsl:message>
和一个after
以在日志中查看它是否是您的 url-open 调用或等待 120 多秒的服务来检查这一点。
如果是 url-open,您很可能在脚本中有一些错误,如果是服务暂停了您需要从脚本返回的响应(或根据您的需要抛出错误)以暂停服务。
您可以为服务本身设置超时,也可以在用户代理中为您正在调用的特定 URL 设置超时。请注意,如果您将其设置为服务级别,则超时将在该时间之后终止服务,因此 1 秒。不推荐!
推荐阅读
- unit-testing - 编写依赖于同一类中其他函数的单元测试
- html - Django ImageField 模板标签不显示
- python - 如何在 Python 中使用 networkx 计算加权传递性
- java - 如何在 Android 中打开 Kotlin 类 uisng Java 类?
- c# - Asp.net core 继续使用过期的证书
- laravel - 在 Livewire 上渲染整页组件之前检查资源是否存在
- c# - 如何检查字符串是否包含在字符串数组中?
- python - 如何用pygame制作蛇墙传送
- sql - Microsoft SMSS - 在 t2.primary key = t1.foreign_key 上连接表
- windows - 如何使用 Emscripten 将 Qhull 构建到 Javascript 中?