历史版本11 :定时调度常见问题 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

本文介绍 定时调度任务 中一些报错及解决方案。

2. 运行监控报错整理编辑

定时调度任务执行失败时,「运行监控」的任务执行明细中,对应日志右边会有问号标志。鼠标点击时会显示对应的报错信息。如下图所示:

15.png

本节提供「运行监控」处常见报错信息及对应原因、排查方法。

2.1 文件名称过长导致附件生成失败

报错信息:

报错信息为Result file creation failed: (附件名称),如下图所示:

image.png

这通常会导致后续附件处理任务时(如邮件发送等)出现找不到文件报错,或发送的附件大小为 0kb 等问题。

原因分析:

定时调度任务执行时会生成.cpr.pdf.xls等格式的附件,这些附件的文件名来自定时调度任务设置中的「文件名称」,如下图所示:

16.png

文件名称这里可以使用公式,计算后的实际文件名可能超过操作系统对文件名长度的限制(一般为 255 左右),导致文件生成失败。

注:定时调度可以使用的公式请参见:定时调度支持的公式

解决方案:

修改定时调度任务设置,使用更短的文件名称。

2.2 数据集配置错误

报错信息:

报错信息为数据集配置错误Query: wait millis xxxxx, active xx, maxActive xxxx,如下图所示:

image.png

原因分析:

定时调度执行模板计算时,需要连接模板用到的数据连接进行取数。当连接超时时,会报上数据集配置错误。

解决方案:

在设计器中点击服务器>定义数据连接,选择该模板使用的数据连接,点击连接池属性。如下图所示:

1592884270847427.png

最大等待时间适当调大即可,如果还有相同报错,考虑继续调大。若依旧无法解决,建议用户查看网络是否有问题。

1592884297733142.png

2.3 定时调度任务超时

报错信息:

报错信息为TimeoutException,如下图所示:

image.png

原因分析:

定时调度任务在执行超过 5 分钟(默认)时,会有上述提示。上述提示并不会中断任务执行,如果任务后续执行成功了,会正常记录成功日志。

解决方案:

如果是因为模板计算量较大,导致执行时间超过了 5 分钟,可以选择关闭这个超时提示或者延长超时提示出现的时间。

1)若不希望显示这个报错,可在fine_conf_entity表中修改ScheduleSettingConfig.taskTimeout字段值,根据任务的实际执行情况调高该超时阈值来延后超时提醒。

注1:这里单位为毫秒,如默认的 5 分钟记为 300000 。

注2:如果配了 Nginx 等转发,不可超过 Nginx 内配置的转发超时时间。

2)2020-01-15及之后的 JAR,若需要彻底取消该提示,可在fine_conf_entity表中修改ScheduleSettingConfig.timeoutRemind字段值为false,取消超时检查和提醒,但不影响任务本身的执行流程。

注:修改 FineDB 数据库表字段值的方法请参考 报表内置 HSQL 数据库 FineDB

2.4 邮件发送报错

2.4.1 535 Error: authentication failed

报错信息:

报错信息为535 Error: authentication failed,如下图所示:

image.png

原因分析:

连接到 SMTP 服务器的用户名或密码错误。

解决方案:

核对连接到 SMTP 服务器的用户名和密码。注意对于大部分邮箱,SMTP 服务器的用户名密码跟登录邮箱的用户名密码不同,一般在邮箱的设置页面会有配置。

2.4.2 Couldn't connect to host

报错信息:

报错信息为Couldn't connect to host(timeout可能为其他值),如下图所示:

image.png

原因分析:

因为网络原因无法连接到 SMTP 服务器。

解决方案:

检查配置的 SMTP 服务器地址和端口是否正确且能联通。可以 ping 地址得到 ip ,然后telnet ip port确认能否联通。

2.4.3 Invalid Addresses

报错信息:

报错信息为Invalid Addresses,如下图所示:

image.png

原因分析:

收件人(或抄送、密送)中含有无效邮箱地址,具体地址也会一同提示,如上图中的notexist12345@163.com

解决方案:

检查并删除收件人(或抄送、密送)中的无效邮箱地址。

2.5 邮件发送成功但收不到邮件

报错信息:

无报错信息,运行监控中显示邮件发送成功,但实际没有收到。

原因分析:

原因一般是 SMTP 服务器投递的邮件被收件人邮箱拒收了。可以登录 SMTP 服务对应的邮箱(即「系统管理」中配置的邮箱),检查是否有退信相关邮件。

解决方案:

根据对应邮箱的退信规则,排查退信原因。

2.6 SMTP 服务器报错

报错信息:

定时任务发送邮件,收件人数量较多时,SMTP 服务器报错,报错内容中含too many recipients字样, 如下图所示:

01.png

原因分析:

平台负责将邮件信息(收件人、抄送、密送、主题、正文等)发送给 SMTP 服务器,由 SMTP 服务器根据这些信息发送邮件,平台本身并不进行实际邮件的发送;

造成该报错的实际原因为「收件人」或「抄送」或「密送」的邮箱数量超过了 SMTP 服务器的限制,不同的 SMTP 服务器所限制的数量可能不一样。

解决方案:

方案一:减少默认用户组中用户的数量,由于不同的 SMTP 服务器所限制的数量可能不一样,建议用户数量在 500 以内。

方案二:提高 SMTP 服务器对收件人的限制,需要客户方的 SMTP 服务器管理人员做修改,由于不同的 SMTP 服务器修改方式不相同,本文暂不提供修改方法。

3. 其他编辑

3.1 邮件正文空格显示问题

问题描述:

邮件正文内容中的多个空格被合并为一个,行首空格不显示。

解决方案:

邮件正文中若需在行首输入空格,或在行内连续输入多个空格时,要将这些空格替换为同等数量的「 」。如下图所示:

1571110858914828.png

3.2 结果链接无法正常跳转

问题描述:

设置定时任务发送邮件时,在「邮件通知」中勾选了正文加上结果链接,点击邮件中的结果链接,出现图一或图二的报错,报错内容:非常抱歉,您无法查看该页面,如需访问请联系管理员

如下图所示:

28.png

原因分析:

可能是用户在「调度对象」步骤中勾选了任务结束即清理 。

解决方案:

取消勾选任务结束即清理,勾选仅保留最近一次仅保留最近5次不清理自定义中任意一个即可。

3.3 迁移 FineDB 数据库后邮件发送失败

问题描述:

定时任务发送邮件,没有「运行监控」,也没有收到短信,后台报错:

couldn't store job:Packet for query is too large (35045785>4194304).You can change this value on the server by setting the max_allowed_packet' variable.

如下图所示:

12.png

原因分析:

用户将内置 FineDB 数据库迁移到本地 MySQL 数据库中,本地 MySQL 数据库中 max_allowed_packet 值设置过小导致单个记录超过限制后写入数据库失败,且后续记录写入也会失败。

解决方案:

方案一:

MySQL 安装目录下的「my.ini」文件中的[mysqld] 字段中的「max_allowed_packet = 1M」修改为 500M ,重启 MySQL 即可。

方案二:

1)使用 set global max_allowed_packet = 524288000;  语句将max_allowed_packet 的值设置为 500 M;

2)使用 show VARIABLES like '%max_allowed_packet%';  语句查看是否修改成功。

3.4 超时报错

问题描述:

定时调度发送邮件失败,报错如下所示:

com.fr.restriction.MemoryAlarmException:很抱歉,sql 执行时间过长触发保护机制,请稍后重试。若您是管理员,可于智能运维-内存管理-模板限制中更改此项限制。

解决方案:

关闭所有 模板限制

3.5 邮件结果链接 URL 以 localhost 开头

问题描述:

定时调度任务「文件处理」步骤中,处理方式选择邮件通知,「邮件内容设置项」中勾选正文加上结果链接。收到的邮件点击结果链接,链接 URL 以localhost开头。如下图所示:

2.png

用户希望localhost转成实际 IP 。

解决方案:

1)将数据决策系统的 URL 改成实际 IP ,例如:http://ip:端口/工程名/decision,如下图所示:

3.png

2)在平台新建定时调度任务或重新编辑保存之前任务,点击邮件中的结果链接,链接 URL 开头改变。如下图所示:

4.png