serverSessionTimeout无法运行IBM Worklight

时间:2014-02-25 15:41:18

标签: ibm-mobilefirst worklight-server

我在worklight属性文件中添加了serverSessionTimeout = 3,我已经在WAS服务器中编辑了这个并重新启动了应用程序,但是当我测试应用程序并让它空闲3分钟时,我看不到服务器会话时间自动退出,是否需要在移动客户端上调用以检查服务器会话超时是否完成。请帮忙

由于 djrecker

3 个答案:

答案 0 :(得分:4)

请查看以下文档,以便更好地了解serverSessionTimeout和heartbeat属性如何影响彼此以及其他调整机制:

http://pic.dhe.ibm.com/infocenter/wrklight/v6r0m0/index.jsp?topic=%2Fcom.ibm.worklight.help.doc%2Fadmin%2Fc_optimizing_and_tuning_of_ibm_wl_server.html

特别是“Worklight Server内部配置”部分:

“考虑以下因素:

  • 会话是存储在服务器内存中的每个连接设备的对象。除此之外,它还存储认证信息。活动会话数是打开的会话数与因不活动而超时的会话数之间的差异。 serverSessionTimeout属性配置会话超时并影响服务器内存消耗。默认会话超时为10分钟。
  • 移动客户端“heartbeat”属性会导致移动客户端在应用程序位于前台时ping服务器。此功能可防止服务器会话超时。 当移动应用程序在后台运行时,它不再与服务器交互或发送“心跳”。服务器会话在指定的服务器会话超时期限后丢失。
  • 例如,假设每分钟有1,000个用户启动针对服务器的会话。即使他们在3分钟后退出应用程序,他们的会话在服务器上保持活动状态10分钟,留下10 x 1,000 = 10,000个活动会话。 “

答案 1 :(得分:0)

如果应用程序位于前台,则会发送心跳消息 到服务器,会话不会超时。 因此应该将应用程序置于后台以进行超时。 如果这没有帮助,请尝试测试10分钟, 因为这是默认的会话超时值。

通常,serverSessionTimeout的值大于 心跳间隔使得会话在空闲时保持活动状态 只要应用程序在前台。 所以只要应用程序在foregraound中, 按设计,它永远不会使会话无效。 但另一方面,如果它是背景,那么就没有心跳 然后超过后台状态默认的10分钟,即会话 无效。这就是这里的意图。

答案 2 :(得分:0)

您可以尝试使用

禁用心跳

WL.Client.setHeartBeatInterval(-1)

可能在您的应用初始化期间

文档:

http://pic.dhe.ibm.com/infocenter/wrklight/v6r0m0/index.jsp?topic=%2Fcom.ibm.worklight.help.doc%2Fapiref%2Fr_wl_client_setheartbeatinterval.html

这样会话超时也可以在前台使用应用程序。