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

目录:

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

问题描述:

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

6.png

解决方案:

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

无法删除定时任务

问题描述:

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

原因分析:

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

解决方案:

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

中文任务名显示不正常

问题描述:

  • 任务名服务器显示不正常。

  • 打开定时任务A,被打开任务的标签页显示名称不是任务 A。

  • 定时任务导出到本地,定时任务名称中 ?变为_

原因分析:

服务器编码为英文,所以才出现的中文乱码问题。

解决方案:

请参见:Linux系统设置中文语言环境和字体

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

7.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 语句,其前面加了空格会报错,防火墙把敏感词过滤。

1712907101714077.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 

9.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

10.png

原因分析:

内网IP与外网不通,导致消息通知时报错。

解决方案:

开启外网访问。

报错:not allow to access from your ip

问题描述:

报错如下:

消息通知节点WeChatAPP message send error - not allow to access from your ip, hint: [1681193410640292209853705], from ip: 60.191.67.2, more info at https://open.work.weixin.qq.com/devtool/query?e=60020

20.png

原因分析:

FDL 服务器没有连接外网。

报错:Feishu message send error - app do not have bot

问题描述:

使用飞书机器人进行消息通知时,报错:任务执行失败 - [飞书应用] - 消息通知执行失败!请检查! - Feishu message send error - app do not have bot

原因分析:

飞书应用缺失机器人消息通知能力。

解决方案:

应用增加机器人消息通知功能,增加后需要创建新的版本申请管理员进行审核。

3.png

4.png

飞书应用推送消息@all时,报错任务执行失败

问题描述:

使用飞书应用进行消息通知时,通知成员为 all ,报错:任务执行失败 - [飞书应用] - 消息通知执行失败!请检查! - Feishu message send error - user_list or department_list all invalidate

原因分析:

后台管理-应用管理可见范围不能是全部成员,只能是部分用户。

将可见范围从全部成员改成部分成员即可。

6.png


循环容器编辑

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

问题描述:

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

11.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)

1712907257104408.png

原因分析:

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

解决方案:

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

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

问题描述:

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

13.png

原因分析:

Finedb 中存在重复的数据。

解决方案:

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

14.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;

15.png

原因分析:

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

解决方案:

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

mysql数据库使用了column1 as '别名' ,后面接字段设置或者sparksql会报错列名重复

问题描述:

mysql 数据库使用了column1 as '别名' ,后面接字段设置或者sparksql会报错列名重复。

解决方案:

在数据连接的url后面加下参数useOldAliasMetadataBehavior=true,保存之后即可恢复正常。

运行delete的sql导致数据库锁表

问题描述:

使用 MySQL 数据连接,运行 delete 的 SQL 语句,日志报错:The total number of locks exceeds the lock table size

原因分析:

MySQL 的 innod 缓冲池过小,即 innodb_buffer_pool_size 值较小。

解决方案:

1)使用语句:show variables like "%_buffer_pool_size%";  查询 innodb_buffer_pool_size 值。

2)使用语句:SET GLOBAL innodb_buffer_pool_size=XXX;修改 innodb_buffer_pool_size 值(将该值调大即可)。

3)重启 MySQL 服务。

上述方案为临时修改,永久修改的方案用户可根据报错自行百度。

无法查看日志

问题描述:

用外网域名访问工程,无法查看定时任务的执行日志;使用内网地址访问工程,可查看定时任务的执行日志;查看管道任务的日志,会提示:日志查询异常。

原因分析:

1)websocket 被用户网络层拦截,用户需要处理下。

2)%Tomcat_HOME%/webapps/webroot/logs权限较低,需要重新赋予权限。

参数赋值编辑

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

问题描述:

16.png

原因分析:

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

解决方案:

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

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

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

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

17.png

下游节点使用参数预览数据,预览为空

问题描述:

在配置好「参数赋值」后,下游节点通过该参数预览数据,预览数据为空。

原因分析:

参数赋值」中的默认值过旧或者非参数预览出的结果。

参数赋值中的默认值不影响任务实际运行,但是会影响下游节点的调试。建议默认值和参数预览值保持一致,若默认值为空或者数据过旧,下游节点可能出现调试失败等情况。  

4.png

数据源编辑

数据开发中无法选择达梦数据源

问题描述:

FDL 工程与 BI 集成,配置达梦数据连接后,在 BI 中可正常使用达梦数据源,在数据开发中无法选到达梦数据源。

原因分析:

未注册基础数据源功能点。

插件编辑

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

问题描述:

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

1712907445390301.png

原因:

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

解决方案:

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

19.png

XML 解析编辑

字段解析异常

问题描述:

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

解决方案:

升级到 4.0.26 及之后版本。

调度配置编辑

调度配置不生效

问题描述:

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

原因分析:

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

解决方案:

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

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

设置了定时调度但到时间后没有执行

问题描述:

设置了定时调度但是任务到时间没有执行。

原因分析:

按照中国时间设置的执行时间,但是服务器是美国时间。可参考:FineDataLink服务器时间和数据库时间不一致 解决

API 相关编辑

API输入预览空白,报错「抽数引擎内部异常 - null」

问题描述:

  • API输入预览空白,报错「抽数引擎内部异常 - null」。

  • 或者报错:http connect timeout - Read timed out

  • 或者报错:Http request error

原因分析:

报错 timeout ,超时导致的。

解决方案:

在 header 中添加 FDLTimeout 参数,即可正常预览。详情请参见:注意事项

简道云相关编辑

try request out of limit

问题描述:

简道云输入报错:try request out of limit. DB表输出:Runtime internal error. -null

1712909363945950.png

解决方案:

简道云数据连接「请求失败重试次数」调整的略大一些,默认值为5。

其他编辑

报错:DROP command denied to user 'zxuser'@'%' for table 'ac pro cost sell newview

问题描述:

报错:DROP command denied to user 'zxuser'@'%' for table 'ac pro cost sell newview

解决方案:

没有 Drop 表的权限,给该数据连接的用户赋予 Drop 表的权限。

报错:INSERT command denied to user 'zxuser'@%' for table 'ac pro cost sell newview'

问题描述:

报错:INSERT command denied to user 'zxuser'@%' for table 'ac pro cost sell newview'

解决方案:

没有插入数据的权限,给该数据连接的用户赋予插入数据的权限。

数据同步节点:配置界面空白

问题描述:

数据同步节点配置界面空白。

解决方案:

Chrome 浏览器版本过低,或者使用的是 IE 或者其它浏览器。建议使用最新版本的 Chrome 浏览器。