1. 概述
1.1 版本
报表服务器版本 | 功能变更 |
---|---|
11.0.2 | - |
11.0.6 | 「另存备份」逻辑变更 |
11.0.24 | 远程设计模板锁定逻辑优化 |
1.2 应用场景
远程设计时,用户需要对模板进行编辑,但提示模板已锁定:
1)无法定位到是哪个用户或者IP正在编辑模板,影响模板开发进度。
2)无法解除锁定,只能通过重启服务器解决
1.3 功能简介
11.0.2 之前版本,仅提示用户「模板已锁定」。11.0.2 及之后版本,优化远程设计模板锁定功能。
注:报表服务器、远程用户设计器版本均需在 11.0.2 及以上版本,否则仅提示锁定,无法实现以下功能。
1)支持查看被锁定模板的编辑者和IP地址。
2)支持备份被锁定模板,以防影响模板开发速度。
3)支持超管解锁模板,正在编辑的用户可另行备份模板。
2. 模板锁定的原因
远程设计时,模板锁定的原因有以下几种:
1)多人编辑
用户A和用户B同时远程连接了该工程,用户A打开了X模板。用户B打开X模板时,提示模板已锁定。
2)开发者调试
用户A和用户B同时远程连接了该工程,用户A在开发者调试状态下编辑X模板。用户B打开X模板时,提示模板已锁定。
3. 模板锁定的提示
当模板锁定时,模板名称后出现(已锁定)字样。对模板进行重命名和删除操作时,提示「被锁定模板无法删除。」/「被锁定模板无法重命名。」。如下图所示:
其他用户双击尝试打开编辑该模板时,跳出提示框。
1)显示该模板的锁定者、IP地址、状态获取时间。方便用户和锁定者进行沟通。
2)提示「该模板已被锁定,是否另存副本并打开?」。
点击「另存副本」,则可自定义位置另存该模板,模板名称为「(副本)+模板原名称」。
点击「保存」后,自动打开所创建副本文件。用户拥有该副本模板文件的编辑权限。如下图所示:
4. 解除模板锁定
4.1 超管解除锁定
若模板被锁定,超级管理员远程连接该工程,选中被锁定模板,文件区右上角出现解锁按钮。
点击「解除锁定」按钮,跳出提示框「是否确认解除锁定?可能会造成模板数据丢失等严重后果」,点击「我已知晓,确认解除」,模板则解除锁定。如下图所示:
4.2 设计器端备份模板
解除锁定时,锁定者若正在设计器端编辑该模板,当保存该模板时,跳出提示框「当前模板已被超级管理员强制解除锁定,是否生成备份文件」。
点击「另存备份」,则可自定义位置另存该模板,模板名称为「(备份)+模板原名称」。用户拥有该副本模板文件的编辑权限。如下图所示:
注:若备份时跳出提示框「磁盘空间不足,备份文件失败」,这是由于报表工程服务器磁盘空间不足,无法生成备份文件。
4.3 开发者调试提示
解除锁定时,锁定者若正在浏览器端开发者调试该模板。
1)当锁定者在开发者调试界面保存该模板时,跳出提示框「当前模板已被超级管理员强制解除锁定」,更改无法保存。
2)解除锁定30S后,开发者调试界面跳出提示框「当前模板已被超级管理员强制解除锁定」,更改无法保存。
3)原本在开发者调试状态下,设计器端无法对模板进行任何操作。模板被超管解除锁定后:
若此时模板没有被其他人打开,点击设计器的「刷新」按钮,即可解除开发者调试时的锁定状态,允许编辑模板。
若此时模板被其他人打开了,点击设计器的「刷新」按钮,仍然处于锁定状态,只可关闭该模板。
5. 注意事项
5.1 网络中断导致模板锁定
11.0.24 之前版本当用户 A 远程设计打开一张模板 A,此时故意断开用户 A 的网络,设计器界面保持不动。在另一设备的用户 B 远程设计打开该模板 A(用户 B查看模板 A 时模板可能是锁定状态,等待 2min 左右,刷新目录树,锁定状态会解除),当用户 A 重新连接网络,回到设计器界面,修改模板A 内容后触发保存操作,将会出现提示弹窗如下图所示:
选择「另存备份」,将弹出备份保存文件夹地址,确定后备份模板并关闭。
选择「取消」,将不保存模板。
5.2 未配置ip_hash导致模板锁定失效
问题描述:
集群环境下,多个用户打开模板不锁定。
原因分析:
集群负载均衡,websocket未配置ip_hash
解决方案:
正确配置负载均衡。参考文档:Nginx.conf 配置手册
nginx转发websocket端口时,需要配置ip_hash,如下图所示: