我们有大量的SSIS工作,每天晚上/清晨安排连续运行。这些作业为我们的生产系统填充和更新大量数据。最近,我们已经开始在不同的时间收到关于不同作业的错误消息。到目前为止,无法在一致的基础上重现:
Code: 0xC0202009 Source: [Job Name] Connection manager "[Connection.Manager.Name]" Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "Communication link failure". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "Named Pipes Provider: No process is on the other end of the pipe. ". End Error Error: 2009-03-10 05:19:51.09 Code: 0xC00291EC Source: Update record status Execute SQL Task Description: Failed to acquire connection "[Connection.Manager.Name]". Connection may not be configured correctly or you may not have the right permissions on this connect... The package execution fa... The step failed.
连接已正确配置,我们以具有适当权限的用户身份运行它。一年多来,这些工作表现完美无瑕。谷歌搜索结果似乎涵盖了从可能的连接问题到数据完整性问题的所有内容。我们尝试从数据源端将其作为连接问题进行处理,并通过检查事件日志从SQL Server数据库和服务器框中进行此操作。似乎没有什么排队。这是我们的设置:
有没有人以类似的方式遇到此异常?同样,我们尝试对SQL Server数据库以及Sybase连接进行故障排除,但没有运气。
答案 0 :(得分:2)
在我们的案例中,这是资源争用。由于来自其他作业的表级锁定而发生死锁。 Native Client错误的描述性不足以让我们知道最初的错误。我们必须在数据库上运行SQL Server Profiler并过滤死锁错误。 This文章帮助我们指出了正确的方向。
希望有所帮助!!
答案 1 :(得分:1)
如果OLE DB对你说谎,那么这可能就是任何事情。如果不是,则可能在管道的另一端没有进程。你应该查看事件日志等,看看是否有其他进程死亡。
即使已经在生产中运行多年的流程,如果发生其他变化,也可以改变其行为。例如,备份或其他自动作业可能需要更长时间,并且现在与SSIS包的现有计划冲突。这样的事情可能会强制关闭任何打开的连接,导致“管道的另一端没有进程”。