新建定时任务,前端报错:任务不存在,无法获取文件
问题描述:
新建定时任务,前端报错“任务不存在,无法获取文件”。

解决方案:
linux 环境缺乏中文语言包。在新建任务时,生成的dp文件为???.dp,导致任务文件无法正常识别。
参考Linux系统安装中文语言包安装中文包后恢复正常。
无法删除定时任务
问题描述:
新建的定时任务无法删除,且 FineDataLink 自带的定时任务也无法删除。
原因分析:
删除的请求被拦截了。对于安全要求高的环境,浏览器可能会阻拦 put/delete 这类"不安全"请求。
解决方案:
使用 PUT、DELETE请求转成POST插件,将平台中产生的 PUT、DELETE 请求转成更安全的 POST 请求。
SQL脚本
SQL脚本节点运行后任务日志报错:jeva.sql.sQLException: Incorrect string value: "xE7\x8E\x8B\xE5\xA9\x7...' for column 'user_ name' at row 1
问题描述:
任务运行报错:
jeva.sql.sQLException: Incorrect string value: "xE7\x8E\x8B\xE5\xA9\x7...' for column 'user_ name' at row 1

原因分析:
将自动建表创建的目标表A的数据进行汇总插入到手动建表语法创建的目标表B,由于编码格式不同导致报错。
解决方案:
使用 SQL 脚本手动创建表时,指定目标表编码格式和自动创建表格式相同
CREATE TABLE IF NOT EXISTS `test1234` (
`user_name` varchar(255) DEFAULT NULL,
`numbers` varchar(255) DEFAULT NULL
)charset=utf8mb4
SQL脚本运行时:报错服务器内部错误
问题描述:
任务运行报错:报错提示服务器内部错误
原因分析:
SQL 脚本中有left join 语句,其前面加了空格会报错,防火墙把敏感词过滤。

解决方案:
需要修改防火墙设置。
SQL脚本报错列名无效
问题描述:
SQL脚本节点执行,报错列名无效。
原因分析:
临时表 + 连接池的问题。
需要保证每个脚本里面的临时表名称不要和其他脚本里面的临时表名称重复。
执行SQL脚本报错
问题描述:
SQL脚本运行报错:

解决方案:
FDL 没识别到模式和表对应的数据库。
数据连接里需要指定下数据库。
消息通知
任务执行报错:essage send error - not allow to access from your ip, hint: [1681193410640292209853705], from ip: 60.191.67.2, more info at
问题描述:
企业微信消息通知执行失败报错:WeChatAPP message send error - not allow to access from your ip, hint: [1681193410640292209853705], from ip: 60.191.67.2, more info at

解决方案:
在 企业微信开发者中心 输入 hint 值进行查询。
企业微信通知任务运行报错:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
问题描述:
任务运行失败报错:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

原因分析:
企业微信没开白名单,导致消息通知时报错。
解决方案:
管理员开启白名单。

循环容器
循环容器执行报错Parse number error For input string:"null"
问题描述:
循环容器报错Parse number error For input string:"null"
在数据预览有数据,任务执行时报错。

原因分析:
客户循环容器使用的参数预览值是空的,客户的API接口有变动,导致json解析为空值,后面输出的参数也是空值,使得循环容器报错。
解决方案:
参考API循环取数时取出数据为空进行处理。
循环取数报错:0RA-08103: 对像不再存在
问题描述:
循环取数时报错:数据连接创建失败:0RA-08103: 对像不再存在,但其他对接该数据库的任务正常运行,navicat 也可以正常连接。
原因分析:
有进程在对表做 truncate,insert 动作,同时有另一进程对同一表做 select 动作。
解决方案:
查看报错时候的任务运维记录,找到最有可能引起报错的任务,将任务的定时周期分开设置。
任务运行
任务运行报错:Data write error,connection disabled.
问题描述:
前端报错:
Data write error,connection disabled.
日志报错:
error when connecting to gpfdist http://10.100.47.95:15500/890e16428563aa96_dm_dm_st_invstdtoinstock.csv, quit after 11 tries (seg7 slice1 10.100.47.98:40003 pid=9416)

原因分析:
FDL服务器开启了selinux和防火墙,数据库与 FDL 服务器之间无法互通。
解决方案:
保证数据库和服务器之间的互通。
所有任务均无法执行,报错提示:无法执行cloudpayorder
问题描述:
所有定时任务都不能执行,界面报错提示无法执行cloudpayorder

原因分析:
Finedb 中存在重复的数据。
解决方案:
先看 fanruan.log 里面的报错信息,定位到错误信息:

使用数据连接工具连接finedb后,输入查询语句:
SELECT * FROM "fine_dp_conf_entity_x"
where value_class = 'WorkAttributeEntity' and entity_value like '%%'
找到日志里重复的 dp 文件,删除其中一个文件即可。
任务执行失败,报错:com.mysql.jdbc.execeptions.jdbc4.MySQLNonTransientConnectionException
问题描述:
数据同步任务运行失败报错:No operations allowed after connection closed;

原因分析:
工程的MySQL版本是5.7.37,使用了5.1.37版本的驱动Jar,导致不匹配
解决方案:
MySQL和MySQL驱动版本不匹配,换一下驱动即可。
任务运行报错:实例运行失败
问题描述:
定时任务来源端为 SQL Server 数据库,运行后,报错:实例运行失败。
原因:
SQLServer 数据连接类型选择的是「通用JDBC」,建议选择 Microsoft SQL Server 类型创建数据连接。
日志报错:Communications link failure
问题描述:
定时任务运行偶发报错,查看日志,报错内容为:Communications link failure
解决方案:
数据连接 URL 加上?connectTimeout=60000&socketTimeout=60000
脚本节点运行报错:no such file or directory
问题描述:
OPS 部署的 FDL 工程,升级后,Shell脚本、Python脚本、Bat脚本、Kettle脚本 运行后报错:no such file or directory

原因分析:
脚本文件放在了 OPS 的挂载目录下,OPS 大版本升级后,目录名称会变更,导致 FDL 工程找不到脚本文件。
解决方案:
解决方案一:将脚本文件复制到原路径下。
解决方案二:修改 FDL 工程节点下的脚本路径。
5M的XML文件,FDL入库前存在截断
问题描述:
5M大小的XML文件,FDL中预览时,显示不全,存在截断。
原因分析:
数据后台传输没有截断,前端显示不全,目前前端有限制。
后续会在预览时进行提示。
升级后目标表表名由参数模式变为表名模式
问题描述:
4.2.11.1 升级到 4.2.16.1 后,数据同步的目标表表名由原本的参数模式自动变成了选表模式,导致不能发布,已经发布的还是能正常运行,但是会报警告。

解决方案:
目标表表名不支持固定值拼接参数这种形式,需要修改下目标表表名。
InfluxDB数据源选表报错 Failed to get table fields
问题描述:
InfluxDB 数据源选表预览时报错 Failed to get table fields。
原因分析:
FDL 支持 InfluxDB 版本:1.x、2.x。InfluxDB 数据库支持两种查询语言:InfluxQL 和 Flux(区别与联系可自行百度),FDL 中使用该数据源配置 SQL 语句时,也支持这两种查询语言:
1.x 版本查询时,只能用 Influxql 语句。
2.x 版本查询时,只能用 Flux 语句。
如果想使用 SQL 语句模式,需要数据库配置下「兼容模式」。
定时任务Oracle同步到SQLServer,数据乱码
问题描述:
定时任务 Oracle 同步到SQLServer,数据乱码,但来源表输出到 Oracle,数据正常。
解决方案:
SQLServer 数据连接的编码改成GBK,数据连接的 url 后面加上;characterEncoding=GBK
数据可以写入已存在表,但无法自动建表
问题描述:
处理好的数据可以写入到已存在表中,但无法自动建表。
解决方案:
数据连接用户没有在数据库自动建表的权限,需要开启下。
参数赋值
参数赋值下游节点引用参数后,预览报错
问题描述:

原因分析:
参数赋值中选择的分隔符与下游数据同步节点中引用参数方式不匹配。
解决方案:
若参数赋值输出的数据是多个值,且值不是数值时,需要将分隔符设置为文本型。
参数赋值节点的参数引用时,不一定需要加单引号,如果在「参数赋值」中定义的分隔符是正确的,那么使用时直接用${参数名}即可。
因此参数赋值中的分隔符和下游使用参数的方式要匹配。
如果分隔符为文本型,则后续使用参数不需要加单引号:

插件
多产品连接插件连接 FineDataLink 报错连接异常,请检查服务器是否安装多产品连接工具插件
问题描述:
使用多产品连接工具插件报错。

原因:
连接服务器的tomcat禁用了options请求
解决方案:
进入FineDataLink 安装目录%TOMCAT_HOME%conf下删除的web.xml的 options 内容。
工程注册后开放平台插件无法添加应用
问题描述:
工程注册后开放平台插件无法添加应用。
原因分析:
简道云或者其他外部系统调用接口时,FDL 工程需要依次安装开放平台插件、开放平台-FineDataLink接口插件。
若出现重装/升级/顺序装反了/重新注册等情况,将导致插件类加载顺序出错,插件将无法正常使用,此时建议重启 FineDataLink 工程,若仍无法正常使用插件功能,建议卸载插件,再按照顺序重新安装。
XML 解析
字段解析异常
问题描述:
XML 解析某个字段,该字段解析顺序放到第一位就可以正常解析值,不在第一位预览空白。
解决方案:
升级到 4.0.26 及之后版本。
简道云输出
try request out of limit
问题描述:
数据库输出至简道云失败,提示:Date write error-try request out of limit.
解决方案:
简道云调用频率超限时:
私有云环境:可通过调整配置来提升请求次数上限;
公有云环境:建议任务错峰运行,且不建议共用一个 appkey。
调度配置
调度配置不生效
问题描述:
设置了调度配置,但不生效。
原因分析:
Tomcat 未完全关闭时,拒绝加载 FDL 的任务类,此时 FDL 若按照调度执行任务可能导致任务状态被置为 ERROR ,不再触发执行。
解决方案:
解决方案一:将有问题任务的调度配置删掉重新配置即可。
解决方案二:到 FineDB 数据库中执行update qrtz_triggers set TRIGGER_STATE = 'WAITING' where TRIGGER_STATE = 'ERROR',把所有 ERROR 状态的任务重置回 WAITING 即可。
API 取数
API输入算子使用参数取数为空
问题描述:
「API输入」算子中引用「参数赋值」节点输出的参数时,取数为空。
原因分析:
「参数赋值」节点输出参数时,开启了闭包符,致使参数值带了单引号;「API输入」算子中引用该参数时,又框了一层双引号,导致取数失败。
解决方案:
「参数赋值」节点中关闭闭包符。
调用接口报错:Temporary failure in name resolution
问题描述:
用户工程是 OPS 部署的,定时任务中调用接口后报错:Temporary failure in name resolution
且已经在 host 文件中配置了对应域名和IP的映射。
原因分析:
容器化读不到宿主机的 hosts ,容器中也需要修改。
解决方案:
北森接口取数报错
问题描述:
定时任务中从北森接口取数,报错:com.fr.dp.exception.FineDPException: Http request error.-I/O error on GET request for 'https://openapi.italent.cn/Ocean/api/v2/Reports/GridData': Read timed out; nested exception is java.net.SocketTimeoutException: Read timed out
解决方案:
若用户的数据量较大,接口请求时间较长,4.0.13 及之后版本的 FDL 接口取数时可以在 Header 内使用 FDLTimeout 字段增大超时时间。详情请参见:使用限制
调用定时任务接口
名称不能重复
问题描述:
开放平台中新建应用,报错:名称不能重复。
原因分析:
查看fanruan.log,fr_open_api 这张表的 secret 字段有问题。

解决方案:
fr_open_api 表中,增加 secret 字段的长度。
FineDB 若迁移到 MySQL 数据库中(其他数据库使用的语句请自行百度):
ALTER TABLE PUBLIC.FR_OPEN_APP MODIFY COLUNM secret VARCHAR(1000)
大数据预览前端无响应
问题描述:
用户使用「DB表输入」算子读取 1000w 的数据,「样本设置」中设置「全量数据」,前端预览时无响应。
解决方案:
大数据量场景下,不建议「样本设置」中设置「全量数据」。
偶发保存失败
问题描述:
偶发任务保存失败、配置保存失败、发布任务失败,日志报错都是:
Duplicate entry "3ef1f658-7ea6-4fcc-b473-233d46904387-533ff4c4-43bb-413b-b837-343" for key "fine_dp_service_mapping.UKa1nsy5gtj733rcatr7s3bkkl3",报错失败之后,再进行一次操作可以成功
解决方案:
需要关闭二级缓存,步骤请参考:指定ehcache缓存路径 2.1 节内容。
数据集输入
预览数据条数与实际数据条数不符
问题描述:
「数据集输入」算子的样本设置中,设置读取全量数据,但预览结果与预期不符。
原因分析:
BI 产品限制原因,即使「样本设置」中采样量设置为全部数据,也只会读取前5000条。
