IBM Worklight 6.0.0.1 - 适配器中的超时设置

Posted

技术标签:

【中文标题】IBM Worklight 6.0.0.1 - 适配器中的超时设置【英文标题】:IBM Worklight 6.0.0.1 - Timeout setting in Adapters 【发布时间】:2013-12-02 10:57:29 【问题描述】:

使用WL.Client.invokeProcedure从应用程序调用适配器时如何更改超时?

我已阅读以下帖子中的答案,但它不起作用: How to increase the adapter procedure timeout value in Worklight?

我的配置:

initOptions.js

timeout: 600000

适配器 XML

<procedure name="addInsertarMensaje" securityTest="wl_unprotected" requestTimeoutInSeconds="600">

适配器调用

var timeout = 600000;
var invocationOptions = 
  onSuccess: successSynchDoc,
  onFailure: errorSynchDoc,
  invocationContext: context,
  timeout: timeout
;

Android LogCat:

12-02 11:23:04.603: D/Mapfre(21661): MyCustomTrace: Invoking the adapter

12-02 11:23:05.564: D/Mapfre(21661): Request [http://192.168.1.39:10080/xxx/apps/services/api/Mapfre/android/query]

12-02 11:23:26.214: D/Mapfre(21661): MyCustomTrace: After invoking the adapter

12-02 11:24:29.297: E/Mapfre(21661): [http://192.168.1.39:10080/xxx/apps/services/api/Mapfre/android/query] Host is not responsive. Try to manually access the URL through the android emulator browser to verify connectivity.

有最大值吗?

这些是每个部分的痕迹。

在应用中:

12-02 14:30:24.473: D/Mapfre(8641): Custom Trace. Just befor WL.Client.invokeProcedure
12-02 14:30:25.103: D/Mapfre(8641): Request [http://192.168.1.39:10080/xxx/apps/services/api/Mapfre/android/query]
12-02 14:31:42.670: E/Mapfre(8641): [http://192.168.1.39:10080/xxx/apps/services/api/Mapfre/android/query] Host is not responsive. Try to manually access the URL through the android emulator browser to verify connectivity.

在从应用接收调用的适配器中:

[2/12/13 14:31:45:224 CET] 000000bf ht.integration.js.javascriptIntegrationLibraryImplementation I Custom Trace. Into Adapter implementation.

在从主机接收应答的适配器中:

[2/12/13 14:33:34:714 CET] 000000bf ht.integration.js.JavaScriptIntegrationLibraryImplementation I Custom Trace. Received id: 3

【问题讨论】:

【参考方案1】: 应用程序没有调用适配器。基本图:

Application &lt;&lt; &gt;&gt;[ Worklight Server &lt;&lt; &gt;&gt; Adapter ]&lt;&lt; &gt;&gt; Backend

此外,Worklight 没有对超时施加的最大值。有一个默认值,但您已在所有 3 个位置更改了它。

简短说明:

    initOptions.js 中,timeout 属性与应用程序等待连接到 Worklight Server 的时间量相关。

    适配器的 XML 中,requestTimeoutInSeconds 属性与 Worklight Server 等待后端响应的时间有关。

    调用选项中,timeout 属性与应用程序等待 Worklight Server 响应的时间有关。

在您的情况下,您甚至没有到达 Worklight Server 的错误点,更不用说调用适配器过程了。

验证您是否可以访问服务器;按照错误消息中的说明进行操作 - 尝试在您设备的移动浏览器中加载 Worklight Console 验证设备和服务器是否在同一个网络中 验证防火墙(如果启用)没有阻止任何关键端口或地址

如果您确实到达了 Worklight Server,由于显然没有经过 600 秒,我相信主机根本无法到达。确保您指向正确的主机地址,并且没有任何东西阻止连接成功通过。

如果找到了主机,但路径或网络中有其他不正确的地方,则会返回响应,但不会等待 600 秒。

【讨论】:

我已经用每个部分的痕迹和时间戳编辑了这个问题。正在发送的消息是 4mg 消息... 这两行没有帮助;如答案中所写,请确保主机正确,按照答案底部的验证步骤进行操作。 为什么不呢?一切都是对的。我到达适配器,适配器到达主机,适配器接收主机应答。因此,所有主机(Worklight Server 和最终主机)都已被访问并正在工作。唯一不工作的部分是在适配器返回答案之前引发超时的应用程序。

以上是关于IBM Worklight 6.0.0.1 - 适配器中的超时设置的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight 6.0.0.1 - 部署到生产服务器时无法初始化 Worklight Project

IBM Worklight 6.0.0.1 - 部署 .wlapp 时出错

IBM Worklight 6.0.0.1 - 点击通知时未打开启用推送的应用程序

IBM Worklight 6.0.0.1 - 应用程序认证

IBM Worklight 6.0.0.1 - 每小时处理推送通知时出错

IBM Worklight 6.0.0.1 - 适配器中的超时设置