目录:
1. 常见排查步骤编辑
1.1 查看是否支持远程设计
场景描述:远程设计连接前,需要先确认远程的工程是否支持远程设计功能点。
解决方案:登录数据决策系统,查看http://IP:port/webroot/decision/remote/design/vt的返回值,若返回{"data":"success"},代表支持。
1.2 查看用户权限
场景描述:非超管账户远程设计连接失败
解决方案:超管登录数据决策系统,查看是否为用户分配了远程设计的权限,详情请参见:远程设计 。
1.3 查看JAR包版本
场景描述:本地设计器版本和远程JAR包版本不一致,会导致很多问题。
解决方案:远程连接时,若版本不匹配,会提示版本不一致,远程设计时部分功能将受影响。如下图所示:
建议及时更新,保证服务器和设计器版本一致。
2. 远程连接失败编辑
2.1 用户名密码错误
问题简介:远程设计连接时,提示「用户名密码错误」。
解决方案:填写的用户名和密码,没有远程设计的权限,需要联系管理员添加,详情请参见:远程设计 。
2.2 报错 Response HTTP/1.1 404 by
产品版本:FineReport 10.0
问题简介:远程设计连接时报错:com.fr.workspace.engine.exception.WorkspaceConnectionException: Response HTTP/1.1 404 by http://IP:端口号/webroot/decision
解决方案:卸载重装设计器。
2.3 报错 The SolidRecordExecutor should be register first
产品版本:FineReport 10.0
问题简介:远程设计连接时报错:The SolidRecordExecutor should be register first
原因分析:
服务器没有安装云端运维插件,不影响功能的正常使用。
这个是服务器上埋点功能相关的报错 只不过是通过远程设计日志推送推到设计器上展示,实际上与远程设计功能本身无关。
2.4 远程设计偶发连接失败
问题简介:远程设计连接偶发出现连接失败的情况,设计器页面会出现远程主机强迫关闭了一个现有的连接,就无法连接到服务器了。
原因分析:Tomcat中配置了一个连接超时时间connectionTimeout,如果在这个时间之后客户端还未得到服务器端的响应的话,就会主动断开连接,即出现上述异常了。
解决方案:Tomcat中默认的连接超时时间是20秒,一般最好设置为60秒,从而避免后台程序处理时间长导致连接断开,修改如下:connectionTimeout="60000"。
2.5 远程设计频繁断开
产品版本:FineReport 10.0
问题简介:远程设计,频繁断开。
排查方案:
1)管理员登录数据决策系统,点击「管理系统>智能运维>内存管理」,查看「内存预警」Tab 下「内存利用率和「CPU 利用率」两张图是否显示空白。
若显示空白,则说明 WebSocket 连接失败,请参考文档配置 WebSocket 端口:Websocket 连接失败
2)检查网络是否连通:ping ip地址是否联通、检查vpn是否有问题、检查网络状况。
2.6 配置了虚拟目录的工程无法连接
问题简介:用户工程做了虚拟目录配置,配置远程设计连接是无法连接
解决方案:在虚拟目录后面(即:Servlet处)加了/desicion,连接成功
2.7 内网环境无法远程设计连接服务器
产品版本:FineReport 10.0
问题简介:
没有做重定向和拦截设置,外网映射就正常连接,改成VPN内网之后客户端远程设计就出现连接失败。
日志:failed: Connection timed out: connect
警告:com.fr.workspace.engine.exception.WorkspaceConnectionException: remote design connect failure
解决方案:VPN适配的问题,开启VPN里面客户端连接的所有的权限即可。
3. HTTPS 远程设计连接失败编辑
3.1 报错 doesn't match any of the subject alternative names
产品版本:FineReport 10.0
问题简介:远程设计连接时报错:doesn't match any of the subject alternative names。
原因分析:是因为配置时使用的域名不是证书生成时填写的域名。
解决方案:重新配置域名,测试,连接成功。
3.2 报错 Unrecognized SSL message, plaintext connection?
产品版本:FineReport 10.0
问题简介:远程设计连接时报错:Unrecognized SSL message, plaintext connection?
解决方案:端口错误,提供的不是 https 服务的端口,详情请参见:请求遇到异常分析
3.3 报错 unable to find valid certification path to requested target
产品版本:FineReport 10.0
问题简介:远程设计连接时报错:
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
解决方案:详情请参见:https://www.cnblogs.com/chenxushu/p/7340263.html
3.4 不支持免费ssl证书
产品版本:FineReport 9.0
问题简介:使用了阿里云的免费ssl证书,格式是pfx,配置好后直接访问地址可以进入决策平台,但是远程设计连接失败。
解决方案:不支持免费的ssl证书,可以先转成.keystore证书。
3.5 不支持crt证书
产品版本:FineReport 8.0&9.0&10.0
问题简介:远程设计不支持 crt 证书。
解决方案:可以将crt转换成jks的证书。
3.6 远程设计启用https无法连接bi服务器
问题简介:根据文档「配置 SSL 证书实现 HTTPS 访问」后,CAS 单点登录正常,但是远程设计连接服务器无法连接成功。
原因分析:客户本机的hosts文件没有配置域名导致无法本地通过域名访问到服务器。
解决方案:将本机的hosts文件配置好正确的域名之后,重启服务之后本地正常远程设计连接。
4. 远程设计切换目录失败编辑
4.1 服务器已关闭
问题简介:远程连接测试是通的,切换到远程设计后一直会弹出提示框,提示服务器已关闭(实际是没有关闭的)。
解决方案:远程设计要加上端口,如果是做了直接访问 ip 的设置,那一般是默认的 80 端口。
4.2 请求被服务器网络拦截
问题简介:切换远程目录失败 ,且设计器日志中有类似报错:java.util.zip.ZipException: Not in GZIP format
原因分析:远程设计请求被服务器网络拦截了。
解决方案:请服务器网络运维相关负责人,修改网络安全拦截策略,将/webroot/decision/remote/design/*相关请求加入白名单。
4.3 HTTP 411错误
问题简介:远程设计测试连接成功,切换工作目录失败,设计器日志中有以下类似报错:
com.fr.workspace.engine.exception.WorkspaceConnectionException: Response HTTP/1.1 411 Length Required by http://IP:端口/webroot/decision
解决方案:
1)确认 Nginx 版本,若低于 Nginx 1.3.9 版本,请给现有 Nginx 安装 chunkin-nginx-module 补丁,或升级 Nginx。
2)设计器版本升级到 10.0.8 版本,远程设计的 post 请求头中已经加入了 Content-Length 。
4.4 Nginx 504 Gateway Time-out
问题简介:远程设计出现切换慢/操作卡,且设计器日志中有类似报错:
com.fr.workspace.engine.exception.WorkspaceConnectionException: Response HTTP/1.1 504 Gateway Time-out by 10.1.1.96:80
原因分析:
Nginx 504 Gateway Time-out的含义是所请求的网关没有请求到,
简单来说就是没有请求到可以执行的PHP-CGI。
Nginx 504 Gateway Time-out一般与Nginx.conf的设置有关。
解决方案:
调整nginx.conf参数 重启nginx生效。默认的fastcgi进程响应的缓冲区是8K,可以调大以下参数:
fastcgi_buffer_size 128k
fastcgi_buffers 8 128k
fastcgi_busy_buffers_size 由 128K 改为 256K
fastcgi_temp_file_write_size 由 128K 改为 256K
5. 远程设计模板出错编辑
5.1 找不到模板
产品版本:FineReport 10.0
排查步骤:
1)linux环境,检查编码,中文字体
2)查看注册功能点,是否有这个功能点
3)检查远程设计用户权限
4)检查模板权限
5)检查模板所属的用户组
5.2 编辑模板保存失败
产品版本:FineReport 10.0
问题简介:远程服务器保存模板时,报错:"xxx.cpt" is locked by user admin with client xxx,client后的编号和设计器编号一致,但是远程设计和激活码是不限制的。
原因分析:
发送的请求中只要包含了特定字符串,那么服务器在读取的时候就会发生 java.io.IOException: Connection reset by peer 导致拿不到。
这是服务器网络问题,是某种 SQL 防注入安全策略。
解决方案:请服务器网络运维相关负责人,修改网络安全拦截策略,将/webroot/decision/remote/design/*相关请求加入白名单。
5.3 保存模板没有权限
问题简介:使用超级管理员账号远程设计,保存模板时出现以下现象:
保存模板,提示没有权限
子目录有查看权限但不显示
模板已保存在服务器环境,但依然提示“请将模板保存在当前运行环境”
日志中出现报错:NoHttpResponseException
原因分析:服务端断开了http连接,但并没有通知客户端,下次请求该服务时httpclient继续使用该连接导致报错
解决方案:
1)更新设计器和工程至 10.0.12 及以后版本。
2)调整tomcat配置:修改 Tomcat 的 server.xml 的 connectionTimeout ,调大后重启生效。
6. 远程设计数据连接出错编辑
6.1 数据连接失败
产品版本:FineReport 10.0
问题简介:远程设计时,数据连接失败,或者数据连接测试连接成功,但是新建数据库查询时显示失败。
解决方案:检查服务器和设计器jar包是否一致,保持一致即可。
6.2 数据连接密码为无
产品版本:FineReport 10.0
问题简介:远程设计时,现有的数据连接密码丢失,无法连接。重新填写密码后连接,都会报错密码为无。设计器日志报错Decrypt failed:Decryption error
解决方案:工程有秘钥种子文件,在config下面,如default_alpha、default beta、default gamma,删掉即可。
6.3 远程设计无法看到 Excel 文件
产品版本:FineReport 10.0
问题简介:远程设计无法看到 Excel 文件,这是需求,暂时无法支撑。
6.4 远程设计选不了json数据集
产品版本:FineReport 10.0
问题简介:本地可以正常选到json数据集的连接,但是远程设计下选不到。
解决方案:关闭 远程设计数据连接权限控制 。
7. 集群远程设计出错编辑
7.1 模板打开是新建的空白模板
问题简介:远程设计所有模板都无法打开,所有模板打开是新建的空白模板
原因分析:redis 存在脏数据
解决方案:清空redis,如果是使用redis集群,每个节点都需要清空
7.2 模板无法保存
问题简介:远程设计时出现模板保存不上,且服务器日志中有以下类似报错:java.lang.NullPointerException
原因分析:redis 存在脏数据
解决方案:清空redis,如果是使用redis集群,每个节点都需要清空
7.3 切换远程目录卡慢,打开报表卡死
问题简介:远程设计目录切换速度很慢,打开服务器上模板直接卡死。
排查方向:
1)集群环境,检查 nginx 等配置是否正确,调整 nginx 的参数。
2)查看 redis 状态服务器是否异常,重启 redis 之后再次远程。
7.4 集群环境远程设计连接LogDB查询报错
产品版本:FineReport 10.0
问题简介:远程设计连接后,数据集查询 LogDB 中的表,输出 SQL 时报错。
原因分析:Swift 取数限制导致。
解决方案:
1)JAR 包版本升级至 2020-12-11日之后。
2)删除集群节点中旧的 LogDB。
3)清空 FineDB 中的 fine_swift_seg_location 和 fine_swift_segments 两张表。
4)重启集群节点。
8. 其他问题编辑
8.1 远程设计模板占用(已被锁定)的判断机制
产品版本:FineReport 10.0
问题简介:打开了模板,重启服务器后打开远程工作目录发现模板已锁定,但只有一个人在编辑。
原因分析:模板锁的释放逻辑为每1分钟清理下,判断是否释放的前提是该模板在1分钟半中没有其他人操作。
解决方案:重启服务器,或者等一段时间会被释放。
8.2 远程设计插件安装逻辑
产品版本:FineReport 10.0
对于设计器和服务器都会用到的插件,要求服务器端和设计器端都要安装:
1)若设计器端已经有插件,服务器端的插件下载、删除、禁用 不会立即生效,需要等几分钟才会生效
2)若服务器端有插件,设计器端没有插件,则插件不会生效,需要切换到本地进行插件安装。不过设计器切换到本地时对插件设置的“禁用”状态不会影响到 远程设计时的插件使用,远程设计时,插件的状态受服务器控制。简单理解就是只需要保证设计器本地有这个插件即可。