serverSessionTimeout 不工作 IBM Worklight

Posted

技术标签:

【中文标题】serverSessionTimeout 不工作 IBM Worklight【英文标题】:serverSessionTimeout not working IBM Worklight 【发布时间】:2014-02-25 15:41:18 【问题描述】:

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

谢谢 djrecker

【问题讨论】:

【参考方案1】:

请查看以下文档以更好地了解 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 个活动会话。 "

【讨论】:

【参考方案2】:

您可以尝试使用禁用心跳

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

这样,会话超时也可以与前台的应用一起使用。

【讨论】:

【参考方案3】:

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

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

【讨论】:

感谢您的回答,我希望这可以在前台工作。现在我很清楚这仅适用于应用程序处于后台状态时。

以上是关于serverSessionTimeout 不工作 IBM Worklight的主要内容,如果未能解决你的问题,请参考以下文章

模拟服务工作者/节点不工作,我不明白为啥

马上五十岁了,工作得很不开心,非常郁闷,工作重要还是生活重要?

SKSpriteNode .run 不工作或不完全工作

2017除夕夜的感悟:学习工作不分家,工作生活不分家,读书用兵不分家

cakePHP 准备好的语句不工作(获取所有不工作)

无法返回 - popViewController Animated 不工作,向后滑动也不工作