SSIS 退出序列容器跟随错误不释放 Excel 文件

问题描述

我有一个 SSIS 包,它已经运行了一段时间没有问题,但由于我们公司基础设施的变化,我们不得不进行一些更改。
简单来说,SSIS 包读取包含需要导入的文件列表的表,并循环遍历列表,通过多个数据流任务导入每个 Excel 文件内容。每个系列的任务(每个 Excel 工作表一个系列)都保存在 Sequence Containers 中,当最后的系列任务完成时,表中的记录被删除,循环的源是一个复制的文件(一些文件被存储)在 SharePoint Online 中,因此我们有一个过程将它们复制到一个固定的临时位置),文件最终被系统任务删除。由于未知原因,最终序列失败,从序列到最后两个步骤的“完成”箭头正确地从数据库表中删除记录,但最终的删除文件任务失败,说“进程无法访问文件 'abc' 因为它正被另一个进程使用'
有两种连接管理器,一种依赖于具有标题的数据,一种依赖于没有标题的数据。两者都将 RetainSameConnection 属性设置为 True,并且在整个过程中都使用,基于导入的数据。
有没有办法在移动到删除文件任务之前强制关闭连接?
谢谢
马丁

解决方法

虽然处理文件列表需要稍长的时间,但通过将两个连接管理器的 RetainSameConnection 设置为 False,无论进程是失败还是成功,文件都会被删除,因为它没有被连接保持打开状态。