历史版本63 :定时任务问题排查 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

新建定时任务,前端报错:任务不存在,无法获取文件编辑

问题描述:

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

2.png

解决方案:

linux 环境缺乏中文语言包。在新建任务时,生成的dp文件为???.dp,导致任务文件无法正常识别。
参考Linux系统安装中文语言包安装中文包后恢复正常。

无法删除定时任务编辑

问题描述:

新建的定时任务无法删除,且 FineDataLink 自带的定时任务也无法删除。

原因分析:

删除的请求被拦截了。对于安全要求高的环境,浏览器可能会阻拦 put/delete 这类"不安全"请求。

解决方案:

使用 PUT、DELETE请求转成POST插件将平台中产生的 PUT、DELETE 请求转成更安全的 POST 请求。

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

3.png

原因分析:

将自动建表创建的目标表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 语句,其前面加了空格会报错,防火墙把敏感词过滤。

1725353879497946.png

解决方案:

需要修改防火墙设置。

消息通知编辑

任务执行报错: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 

6.png

解决方案:

在 企业微信开发者中心 输入 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

7.png

原因分析:

企业微信没开白名单,导致消息通知时报错。

解决方案:

管理员开启白名单。

8.png

循环容器编辑

循环容器执行报错Parse number error For input string:"null"

问题描述:

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

9.png

原因分析:

客户循环容器使用的参数预览值是空的,客户的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)

1725354032971202.png

原因分析:

FDL服务器开启了selinux和防火墙,数据库与 FDL 服务器之间无法互通。

解决方案:

保证数据库和服务器之间的互通。

所有任务均无法执行,报错提示:无法执行cloudpayorder

问题描述:

所有定时任务都不能执行,界面报错提示无法执行cloudpayorder

1725354067811077.png

原因分析:

Finedb 中存在重复的数据。

解决方案:

先看 fanruan.log 里面的报错信息,定位到错误信息:

1725354096614300.png

使用数据连接工具连接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;

13.png

原因分析:

工程的MySQL版本是5.7.37,使用了5.1.37版本的驱动Jar,导致不匹配

解决方案:

MySQL和MySQL驱动版本不匹配,换一下驱动即可。

参数赋值编辑

参数赋值下游节点引用参数后,预览报错

问题描述:

14.png

原因分析:

参数赋值中选择的分隔符与下游数据同步节点中引用参数方式不匹配。

解决方案:

若参数赋值输出的数据是多个值,且值不是数值时,需要将分隔符设置为文本型。

参数赋值节点的参数引用时,不一定需要加单引号,如果在「参数赋值」中定义的分隔符是正确的,那么使用时直接用${参数名}即可。

因此参数赋值中的分隔符和下游使用参数的方式要匹配。

如果分隔符为文本型,则后续使用参数不需要加单引号:

15.png

插件编辑

多产品连接插件连接 FineDataLink 报错连接异常,请检查服务器是否安装多产品连接工具插件

问题描述:

使用多产品连接工具插件报错。

1725354214876206.png

原因:

连接服务器的tomcat禁用了options请求

解决方案:

进入FineDataLink 安装目录%TOMCAT_HOME%conf下删除的web.xml的 options 内容。

17.png

XML 解析编辑

字段解析异常

问题描述:

XML 解析某个字段,该字段解析顺序放到第一位就可以正常解析值,不在第一位预览空白。

解决方案:

升级到 4.0.26 及之后版本。

调度配置编辑

调度配置不生效

问题描述:

设置了调度配置,但不生效。

原因分析:

Tomcat 未完全关闭时,拒绝加载 FDL 的任务类,此时 FDL 若按照调度执行任务可能导致任务状态被置为 ERROR ,不再触发执行。

解决方案:

解决方案一:将有问题任务的调度配置删掉重新配置即可。

解决方案二:到 FineDB 数据库中执行update qrtz_triggers set TRIGGER_STATE = 'WAITING' where TRIGGER_STATE = 'ERROR',把所有 ERROR 状态的任务重置回 WAITING 即可。

API 取数编辑

API输入算子使用参数取数为空

问题描述:

「API输入」算子中引用参数赋值节点输出的参数时,取数为空。

原因分析:

「参数赋值」节点输出参数时,开启了闭包符,致使参数值带了单引号;API输入算子中引用该参数时,又框了一层双引号,导致取数失败。

解决方案:

参数赋值节点中关闭闭包符。