针对劣质网络环境实现网络重试功能说明
关于网络问题诊断:主机中断了一个现有连接,没有响.....
一、诊断:网络直接中断客户端连接了。
有三种情况:
1,本机软件中断了连接;(可能是一些防病毒软件误防了,搜狗或迅雷后台占用端口,请检查);
2,服务器中断了连接;(服务器资源不足,服务器防火墙拦截,路由器质量劣质,线路电磁干扰严重,线路提供商本身不稳定);
3,网络连接一段时间没有响应,114.114,114,114:80(这个就太明显了,114电信网关报错或阻塞了,或者路由中劣质路由器引起);
另外,对于一些资源占用很多的软件,例如:搜狗,迅雷(播放),种子下载,酷狗等后台资源占用严重的程序不要默认启用。也不要在做业务是使用。防火墙要把金蝶云相关应用加入白名单;确保不会误报误杀。以上这些错误你们也可以通过百度直接搜索。太多这种错误问题搜索结果了。
二、数据收集:发生问题时需要收集的资料(注意在频繁发生网络错误的时点收集,在没有错误是收集的资料是无效的)
1、收集网络连接信息,通过CMD命令执行下面指令:
ping xxx.xxx.xxx -t -l 1024 >>c:\ping_svr.log (xxx.xxx.xxx为服务器地址或域名),病收集到ping_svr.log日志文件;
2、解压附件PingToWan_V2.1.rar文件,执行后获取C:\kingdeeping.log日志文件; PINGTOWAN_V2.1.rar (894 Bytes, 下载次数: 8)
2018-05-16 上传
下载次数: 8
3、收集服务端K/3 Cloud日志;
4、收集服务器操作系统的应用程序日志;
5、收集服务器配置和金蝶云的大版本号,补丁安装列表;
6、客户机Fiddler和Wireshark抓去出问题时段的请求情况;(两个都抓数据)
7、收集客户机操作系统的应用程序日志;
8、收集客户端K/3 Cloud日志;
三、金蝶云针对劣质网络环境的方案:
实事求是讲,不管软件多么牛,没有好的硬件环境一样歇菜。即使牛到如MS,Oracle,腾讯微信,阿里淘宝,在劣质网络环境下一样不能正常运行。
我们在这个前提下,尽可能保证系统在劣质网络环境中的可用性。
方案是实现业务请求连接状态保持机制和错误补偿机制,在出现网络错误的情况下,允许客户端当个设置或服务器统一设置重试次数。
具体实现:
1、在客户端登录系统后,在用户名的下拉菜单中点击【本地配置】,在本地设置界面中设置【请求失败重试次数】次数;保存后仅对当前客户端有效;
2、在服务器的WebSite/app_data目录中,配置common.config的appsettings的子项,增加如下配置信息;(仅对客户端应用有效)
<!--客户端请求失败重试次数(=-1:客户端本地设置为准[默认];=0:不重试;>0:重试次数)-->
<add key="RequestRetryLimit" value="-1" />
复制代码
3、在网络设置为重试的条件下,所有请求进行强制串行延迟。同时对失败请求的完整参数进行日志;
请求失败重试功能发布时间:
7.x 2018-02-01 1、本地配置; 2018-06-25 2、服务端配置;3、串行参数;
6.x 2018-07-12 1、本地配置;2、服务端配置;3、串行参数;
特别注意的是:由于网络的不确定性因素太多,因此启用这个参数可能存在两个问题,可能请求会慢一点,数据可能在重复请求中发送多份。因此,一旦出现重复请求的提示时,请一定要在操作完成后确认一次数据的准确性(当然,我们服务器端会进行数据重复性校验,但稳妥起见,建议确认一次)。
推荐阅读