关于系统超时说明
iMedical的会话机制使用的是cookie-session方式,cookie是浏览器管理的,session是cache自带了一套管理机制。
一、cookie是浏览器管理的
浏览器在打开窗口时,在以下几种方式下为同一cookie,
- 打开子窗口,cookie继承
- iframe窗口,cookie继承
- frameset窗口,cookie继承
- IE模态窗口弹出界面,会新起cookie (会引起系统超时,弹出登录界面)
- IE浏览器 -工具栏 – 打开新会话,会新起cookie
- chrome使用无痕浏览时,新起cookie
二、%session是cache管理的
通过前台传过来的cookie中会话id来判断是哪一次sessionID,打印对应的session对象,获得会话信息
// 设置session的timeout时间
set %session.AppTimeout = 15*60 // 表示15分钟内没有任何请求到达后台时,会超时
在System Management Portal -> [Home] > [CSP Sessions]可以查看及管理当前有效会话
三、超时配置
- 配置管理 -> 超时时间设置
当前系统默认的超时时间 - 安全组设置 -> 超时时间设置
某个安全组超时时间,优先级高于默认配置
四、超时可能性
- 业务上使用模态窗口后,再window.open弹出新业务窗口,这里cookie变化 ,导致后面找不到session,会弹出登录界面
- 有些电脑,在IE11上按F12找开调试窗口后,也会导致cookie变化 ,导致弹出登录界面
- 对于上了负载均衡的项目,最好让负载策略设置成【源IP哈希】策略,否则可能会因为负载原因导致找不到session,会弹出登录界面。如果【有会话保持时间】要看情况计算,如:会话保持是30分钟,负载的http连接超时时间是30分钟,住院医生设置成2小时timeout,但医生30分钟不操作,连接就断开了,后面再保持30分钟,后面再来操作,此时会超时,也就是iMedical内设置timeout时间后,真实超时时间与负载有关。
- 对于上了负载均衡的项目,按f5刷新窗口时,访问的ECP变化,找不到session,导致弹出登录界面。
- 对于上了负载均衡的项目,因为某台ECP不稳定,会转向其它ECP,找不到session,导致弹出登录界面。
- 使用iMedical调用全息视图,再从全息视图弹出iMedical业务界面时超时。会话不能跨系统保留
- 使用iMedical调用全息视图,再从全息视图统一登录进入iMedical业务界面后,导致原主iMedical系统ajax请求提示time out。
-
使用Lodop打印HTML标签时,有些客户端会超时,此时要修改成CLodop打印
- 同一种浏览器进入同一应用BS系统时,会默认保存一份会话,如果要同时使用二份会话,IE使用-nomerge参数可以实现每次桌面打开新会话,Chrome要使用访客打开新会话,医为浏览器从桌面进入默认打开新会话。、
— 当系统启用了锁屏功能时 —-
– 1、系统超时了会系统会锁屏。
– 2、客户端鼠标一直不动系统也会锁屏。
– 3、后台检测前台不在的判断是逻辑是:如果超过一段时间,服务器一直没收到前台的请求,后台会断开请求,也就是超时。
举例说明:系统设置超时时间为40分钟时,医生查房离开电脑35分钟,再回来写5分钟病历,此时服务器40分钟未收到前台请求,系统会超时,前台表现为锁屏(老系统表现为后面【点击保存】按钮,会无反应或弹出登录界面)。
五、优化办法
下一版iMedical9系统实现会话共享功能,保证会话的全服务器间有效。