SSIS包在执行期间随机挂起

时间:2010-06-07 00:59:30

标签: sql database oracle tsql ssis

我在使用SSIS包时遇到了持续且痛苦的问题。该程序包作为SQL代理作业每5分钟运行一次,每2-10天程序包将开始运行并永不停止(从而阻止进一步执行)。如果我手动停止挂起作业,它将在接下来的5分钟间隔内再次完美地工作。

SSIS包用于将数据从Oracle数据库移动到MSSQL 2005数据库。它有7个步骤:

  • 步骤1调用Oracle存储过程以在ORACLE
  • 中准备临时表
  • 步骤2-6处理从ORACLE表到MSSQL表的数据ORACLE - > MSSQL
  • 步骤7调用Oracle存储过程以清除ORACLE临时表

我怀疑这个问题是由MSSQL服务器和ORACLE服务器之间的通信错误引起的。 MSSQL数据库和代理/程序包都在一台机器上运行,ORACLE数据库通过网络运行。

我启用了SQL包的日志记录,在超过2GB的日志文件后,我抓住了包停止响应的瞬间:


OnPreValidate,ADV-SRV5,NT AUTHORITY\SYSTEM,CallistaIntegrationToMonashCRM_delta,{F88F6C45-CFA2-4801-A2F2-DDF03D458A48},{3A1FB1E3-B76D-444D-876B-D1FBBB9BA246},6/06/2010 10:15:01 AM,6/06/2010 10:15:01 AM,0,0x,(null)
OnPreValidate,ADV-SRV5,NT AUTHORITY\SYSTEM,Address,{c5907799-f918-43da-818a-d4bd7f188367},{3A1FB1E3-B76D-444D-876B-D1FBBB9BA246},6/06/2010 10:15:01 AM,6/06/2010 10:15:01 AM,0,0x,(null)
OnInformation,ADV-SRV5,NT AUTHORITY\SYSTEM,Address,{c5907799-f918-43da-818a-d4bd7f188367},{3A1FB1E3-B76D-444D-876B-D1FBBB9BA246},6/06/2010 10:15:01 AM,6/06/2010 10:15:01 AM,1074016266,0x,Validation phase is beginning.

OnProgress,ADV-SRV5,NT AUTHORITY\SYSTEM,Address,{c5907799-f918-43da-818a-d4bd7f188367},{3A1FB1E3-B76D-444D-876B-D1FBBB9BA246},6/06/2010 10:15:01 AM,6/06/2010 10:15:01 AM,0,0x,Validating
Diagnostic,ADV-SRV5,NT AUTHORITY\SYSTEM,Callista,{cb5d6fe3-3ea4-4453-8e5a-965818021df7},{3A1FB1E3-B76D-444D-876B-D1FBBB9BA246},6/06/2010 10:15:01 AM,6/06/2010 10:15:01 AM,0,0x,ExternalRequest_pre: The object is ready to make the following external request: 'IDataInitialize::GetDataSource'.
Diagnostic,ADV-SRV5,NT AUTHORITY\SYSTEM,Callista,{cb5d6fe3-3ea4-4453-8e5a-965818021df7},{3A1FB1E3-B76D-444D-876B-D1FBBB9BA246},6/06/2010 10:15:01 AM,6/06/2010 10:15:01 AM,0,0x,ExternalRequest_post: 'IDataInitialize::GetDataSource succeeded'. The external request has completed.
Diagnostic,ADV-SRV5,NT AUTHORITY\SYSTEM,Callista,{cb5d6fe3-3ea4-4453-8e5a-965818021df7},{3A1FB1E3-B76D-444D-876B-D1FBBB9BA246},6/06/2010 10:15:01 AM,6/06/2010 10:15:01 AM,0,0x,ExternalRequest_pre: The object is ready to make the following external request: 'IDBInitialize::Initialize'.

这些消息显示为失败的运行生成的整个日志,为了成功运行,输出通常为~2500行。

我可以看到在Callista连接(ORACLE数据库)的初始化操作期间包已挂起。

我无法找到解决此问题的方法,或者让程序包正常处理(日志中的错误对我来说是A-OK)。

非常感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

我们遇到过像SSIS pkg随机挂起的问题。一直有人谈论创建一个包,每隔10-20分钟左右,SSIS包装的监视器,直到特定批次中的所有包都被处理完毕并杀死任何挂起的pkgs,并且如果发生这种情况,请不要打电话给开发人员。您可能想要模仿类似的方法。