Sql server SQL代理作业间歇性无法执行SSIS包

Sql server SQL代理作业间歇性无法执行SSIS包,sql-server,ssis,execution,sql-agent-job,Sql Server,Ssis,Execution,Sql Agent Job,我需要一些解决这个问题的建议。我有以下设置: 应用程序T-SQL 我在执行SQL代理作业的应用程序中有SQL代码 (exec@rtn=msdb.dbo.sp_start_作业“作业名称”) 如果SQL代理作业返回0,我将在UI上报告成功启动 如果SQL代理作业返回1,我将报告在UI上启动失败 SQL代理作业 步骤1–执行SSIS包 成功–成功结束工作 失败时–转至下一步 步骤2–发送自定义故障电子邮件 成功–成功结束工作 失败时–结束作业失败 *如果SQL代理作业运行失败,将发送默认的SQL代理

我需要一些解决这个问题的建议。我有以下设置:

应用程序T-SQL

我在执行SQL代理作业的应用程序中有SQL代码

(exec@rtn=msdb.dbo.sp_start_作业“作业名称”)

如果SQL代理作业返回0,我将在UI上报告成功启动

如果SQL代理作业返回1,我将报告在UI上启动失败

SQL代理作业

步骤1–执行SSIS包

成功–成功结束工作

失败时–转至下一步

步骤2–发送自定义故障电子邮件

成功–成功结束工作

失败时–结束作业失败

*如果SQL代理作业运行失败,将发送默认的SQL代理失败电子邮件

SSIS包

运行一系列步骤将电子表格导入表中

如果任何步骤失败,它将生成特定于失败步骤的自定义失败电子邮件

如果整个包成功,它将生成一封自定义的成功电子邮件

以下是行为:

每两周,用户从应用程序内手动启动T-SQL。当用户当天第一次运行它时,他们从应用程序收到一条消息,说明作业已成功启动,但随后他们从步骤2中的SQL代理收到自定义失败电子邮件。根据数据的状态,包显然没有成功运行。未收到该软件包的任何自定义电子邮件

接下来,用户重新运行作业;除了重新运行,他们什么也不做。现在,整个系统运行成功。无论当天再次运行多少次,它都能成功运行。直到两周后(在两周没有运行它之后),然后循环重复

我的故障排除步骤:

我已经手动运行SSIS包多次。我已经更新了文件,它导入的方式与用户相同。我不能让SSIS包失败

我已经多次手动运行SQL代理。每次启动SSIS包都很好。但我在收到第一封失败邮件后就这样做了。我还不能重现这个错误。但在一周的停工之后,我还没有尝试过这个。我计划下一步测试

我的想法:

SQL代理告诉T-SQL执行已成功启动,SQL代理表示无法通过自定义电子邮件执行SSIS包的事实证实了这一点。SSIS包没有说什么,这表明它根本没有运行。我认为这是SQL代理和SSIS之间的问题

我还有其他几份工作也是这样安排的。他们都没有任何问题。唯一的区别是,这些其他作业计划每晚运行,只是偶尔手动启动。失败的是唯一一个一次休眠数天/数周的。这是我唯一能指出的不同之处

SQL server和SSIS包位于同一物理服务器上。因此,从网络的角度来看,这不太可能是一个连接问题。这可能是Microsoft的问题,因为SQL代理正在使用代理根据标准配置访问SSIS包。但我在技术支持网站上找不到任何有人报告过同样症状的地方。我在这个话题上所研究的每一件事都会讨论一些事情,这些事情每次都会阻止它工作。我没有发现任何东西会导致它失败一次,然后开始工作…好像有什么东西睡着了,被吵醒了

编辑发现SSIS包出现故障。以下是SQL代理历史记录:


2017年3月23日06:32:31,PTO余额导入,错误,1,服务器名,PTO余额导入,ExecutePackage,,以用户身份执行:服务器名\appPROXY。Microsoft(R)SQL Server执行软件包实用程序版本12.0.5000.0,适用于32位版权所有(C)Microsoft Corporation。版权所有。开始时间:上午6:32:31错误:2017-03-23 06:32:32.70代码:0xC0202009来源:PTO余额导入连接管理器“Excel连接管理器”描述:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。OLE DB记录可用。来源:“Microsoft Access数据库引擎”Hresult:0x80004005说明:“外部表不是预期格式。”。结束错误:2017-03-23 06:32:32.70代码:0xC020801C来源:导入PTO余额PTO余额[14]说明:SSIS错误代码DTS_E_无法从ConnectionManager获取重新连接。对连接管理器“Excel连接管理器”的AcquireConnection方法调用失败,错误代码为0xC0202009。在此之前可能会发布错误消息,其中包含有关AcquireConnection方法调用失败原因的更多信息。结束错误:2017-03-23 06:32:32.70代码:0xC0047017来源:导入PTO余额SSI。管道描述:PTO余额验证失败,返回错误代码0xC020801C。结束错误:2017-03-23 06:32:32.70代码:0xC004700C来源:导入PTO余额SSI。管道描述:一个或多个组件验证失败。结束错误错误:2017-03-23 06:32:32.72代码:0xC0024107来源:导入PTO余额说明:任务验证期间出现错误。结束错误DTExec:包执行返回DTSER_失败(1)。开始时间:上午6:32:31完成时间:上午6:32:32经过时间:0.797秒。包执行失败。步骤失败,00:00:01,0,0,,,,,0

您正在使用
文件系统
集成服务目录
存储SSIS包?我正在使用file system.hmm,如果您不手动记录错误,则很难跟踪包错误。您是否查看了失败作业的历史记录,说明了什么?因此,这是SSIS错误。我刚刚意识到我没有将包上的最大错误数设置为2,这就是我没有获得cu的原因