频繁出现表单会话超时

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

频繁出现表单会话超时

问题描述

在使用苍穹系统过程中,如果在短时间(少于默认超时的8小时)内频繁出现表单会话超时的弹框,一个单据都还没有录完就被弹出表单了,需要反复地快速的去录入数据,这会导致用户体验会非常差,而且这种情况无论是PC端还是移动端都有可能会出现



原因分析

分析思路:看到"表单会话超时"信息,脑海中第一想到的就是跟redis缓存有关,那么就会存在如下几种可能性:

1、redis会话相关参数设置不当

2、redis会话数据被清理或不存在

3、苍穹服务与redis实例建立的tcp连接超时


解决方案

根据上面的三个分析思路进行排查:

1、redis会话相关参数设置不当

检查苍穹系统属性中 session.timeout 和 redis.defaulttimeout 的值是否设置太小,默认是28800(8小时)。如果检查到是很小的值,可以登录mc到环境公共配置项中搜索这两个参数进行修改保存,并发布集群配置



2、redis会话数据被清理或不存在

(1)redis会话数据被清理

redis最大内存设置太小,导致表单和数据缓存共用的redis内存频繁满,触发淘汰策略,表单会话被清理掉。



解决方法: 扩容Redis物理内存和调整Redis最大内存设置,也可以将表单会话和数据缓存拆分出来,具体配置方法参考:苍穹之Redis部署优化


(2)redis会话数据不存在

这种情况主要出现在开发环境,由于开发环境大量的本地服务连接到一起,本地环境可能启用了轻量级参数(lightweightdeploy=true),不会共用服务端环境的redis,而web调度到业务节点服务的时候有可能调度到本地环境导致redis数据读取失败。



解决方法:

方式一、所有的本地环境都和服务端共用一套redis,取消轻量级参数(lightweightdeploy=false)

方式二、服务端的nginx直接转发到mservice业务节点的地址去,而不是转发到web节点,再由web节点通过dubbo随机调度到mservice节点,这样避免访问到其他本地环境去了。


3、苍穹服务与redis实例建立的tcp连接超时

苍穹服务与redis实例建立的tcp连接是长连接,有些网络环境限制了长连接的超时时间,所以我们需要从操作系统层面保持长连接的心跳检测,保活参数设置如下:

在/etc/sysctl.conf中修改或添加:

net.ipv4.tcp_keepalive_time = 30

参数生效方式:执行 sysctl -p

检查是否生效:执行 sysctl -a|grep net.ipv4.tcp_keepalive_time












频繁出现表单会话超时

问题描述在使用苍穹系统过程中,如果在短时间(少于默认超时的8小时)内频繁出现表单会话超时的弹框,一个单据都还没有录完就被弹出表单了...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息