历史版本7 :远程设计常见问题 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

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

解决方案:

1)VPN适配的问题,开启VPN里面客户端连接的所有的权限即可。

2)深信服VPN ,需要将服务器 IP 和 端口设置成 L3VPN资源,设计器才能远程连接访问。

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)若服务器端有插件,设计器端没有插件,则插件不会生效,需要切换到本地进行插件安装。不过设计器切换到本地时对插件设置的“禁用”状态不会影响到 远程设计时的插件使用,远程设计时,插件的状态受服务器控制。简单理解就是只需要保证设计器本地有这个插件即可。