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

时间:2017-03-23 14:30:58

标签: sql-server ssis execution sql-agent-job

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

应用程序T-SQL

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

(exec @rtn = msdb.dbo.sp_start_job'职位名称')

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

如果SQL代理作业返回1,则报告无法在UI上启动。

SQL代理作业

第1步 - 执行SSIS包

成功 - 结束工作

失败 - 转到下一步

第2步 - 发送自定义失败电子邮件

成功 - 结束工作

失败 - 结束工作不成功

*如果SQL代理作业运行不成功,则会发送默认的SQL代理失败电子邮件。

SSIS包

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

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

如果整个包裹成功,它会生成自定义成功电子邮件。

以下是行为:

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

接下来,用户重新运行作业;他们别无所求,只能重新运行它。现在,整个事情成功运行。无论当天再次运行多少次,它都能成功运行。直到两周后(两周没有运行它),然后循环重复。

我的问题排查步骤:

我自己多次手动运行SSIS包。我以与用户相同的方式更新它导入的文件。我无法让SSIS包失败。

我多次手动运行SQL代理。每次启动SSIS包都很好。但是在我收到最初的失败邮件后,我已经这样做了。我还没有能够重现错误。但经过一周的停机后我还没试过。我计划接下来测试一下。

我的想法:

SQL Agent告诉T-SQL执行它已成功启动,这可以通过SQL Agent说它无法通过自定义电子邮件执行SSIS包来证实。并且SSIS包没有说什么,这表明它根本没有运行。我认为这是SQL Agent和SSIS之间的问题。

我还有其他几个工作设置完全相同。他们都没有任何问题。唯一的区别是这些其他工作计划在夜间运行,并且只是偶尔手动启动。失败者是唯一一次休眠数天/周的人。这是我唯一可以指出的不同之处。

SQL Server和SSIS包位于同一物理服务器上。因此,从网络角度来看,它不太可能成为连接问题。由于SQL Agent正在使用代理来访问基于标准配置的SSIS包,因此它可能是Microsoft的问题。但我在技术支持网站上找不到任何有人报告相同症状的内容。我在该主题上研究的所有内容都讨论了阻止它每次都工作的事情。我发现什么都不会导致它失败一次然后开始工作......好像有什么东西睡着了,被唤醒了。

编辑原来这是SSIS包上的失败。这是SQL代理历史记录:

03/23/2017 06:32:31,PTO余额导入,错误,1,SERVERNAME,PTO余额导入,ExecutePackage,执行者:SERVERNAME \ 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_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 AcquireConnection方法调用连接管理器" Excel连接管理器"失败,错误代码为0xC0202009。在此之前可能会发布错误消息,其中包含有关AcquireConnection方法调用失败原因的更多信息。结束错误错误:2017-03-23 06:32:32.70代码:0xC0047017来源:导入PTO余额SSIS.Pipeline说明:PTO余额验证失败并返回错误代码0xC020801C。结束错误错误:2017-03-23 06:32:32.70代码:0xC004700C来源:导入PTO余额SSIS.Pipeline描述:一个或多个组件验证失败。结束错误错误:2017-03-23 06:32:32.72代码:0xC0024107来源:导入PTO余额描述:任务验证期间出错。结束错误DTExec:程序包执行返回DTSER_FAILURE(1)。开始时间:上午6:32:31完成时间:上午6:32:32经过:0.797秒。包执行失败。步骤失败。,00:00:01,0,0 ,,,, 0

0 个答案:

没有答案