SSIS 作业随机成功,通常会导致“意外终止”?

问题描述 投票:0回答:1

作业如下所示,脚本任务检查目录中是否有可用于处理的感兴趣的 (.xlsx) 文件,如果找到,则将优先级约束的布尔变量标记为 {True}。该文件名被分配给一个变量并用作 Excel 连接管理器的动态表达式,每个数据流任务处理工作簿中的不同工作表:

以下是脚本任务的更多详细信息:

该作业在 Visual Studio 2019/2022 中按预期执行和运行良好,并打包部署到 SQL Server 2019。当使用具有对所有位置的适当访问权限的代理用户凭据运行每小时计划的 SSIS 作业时,该作业通常会“未成功”,结果状态为“意外终止”,如下所示(上午 10:00 和上午 11:00)。然后随机在中午 12:00 就成功了。

此外 - 由于该位置不存在文件,我希望脚本任务找不到文件,并在脚本任务之后成功完成作业,在不满足优先级约束时忽略所有进一步的任务。但反而导致“失败”状态。当我将文件放回输入文件夹位置并临时触发 SSIS 作业时,它再次失败并显示“意外终止”。

我在同一个每小时 SSIS 作业中还有另一个程序包/步骤,采用完全相同的设置 - 脚本任务分配变量、优先级约束等。使用相同的代理凭据按预期运行良好,每次都成功,如果没有文件则停止处理按预期呈现或处理文件。

这是最近“意外终止”执行的更多详细信息。

所有验证阶段消息似乎都是针对其他数据流任务填充的,除了两个未使用的输出列之外可以删除的唯一警告是一个读数:

即使包已重命名,它是否与显示为“Package1”的执行路径有关?有人有什么想法吗?谢谢!

编辑:

billinkc查询的查询结果:

会员数据流任务的详细视图 - 从电子表格读取数据,删除流中包含的任何空值,根据 Oracle 后端的需要转换类型,然后执行查找以确定是否有插入的新记录(OLE DB 目标) ,如果匹配,则执行更新(OLE DB 命令):

sql-server visual-studio ssis sql-server-agent ssis-2019
1个回答
0
投票

我对这个问题没有可靠的因果解决方案,但我有更新。本质上我做了两件事:

  1. 就像 @billinkc 在上面的评论中提到的那样,我单击了包的 [Control Flow] 画布,并将名称从“Package1”更改为“Update Actuarial”。

  2. 为了至少减少要处理的文件夹中不存在文件时的“失败”状态,请单击每个数据流任务并将DelayValidation更改为True

我已将作业更改为每 5 分钟运行一次以进行调试,而不是每小时运行一次。进行上述更改后,将单个包重新部署到我的主机服务器,我尝试从步骤 2(此包)开始手动运行每小时作业,但最初失败了。

但是,下一次计划的运行(每 5 分钟一次)成功了,并且此后的每次运行都开始按预期工作;当文件存在于该位置时处理该文件,如果目录中没有要处理的文件,则在脚本任务之后结束“成功”。

感谢大家查看此内容,并希望这些信息对将来的人有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.