如何解决DTS_E_OLEDBERROR。在ssis

时间:2013-08-22 12:51:35

标签: sql-server ado.net oledb ssis

在ssis包中包含数据流任务,包含 OLEDB源和OLDB Target ..provider是sql本机客户端。这曾经运行正常..但是现在出现了如下所示的错误..

请告诉我如何解决?将其更改为ado.net?

操作系统:Windows 7专业版和db是sql server 2000

[Axe_Data [737]]错误:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:“Microsoft SQL Server Native Client 10.0”Hresult:0x80004005描述:“通信链接失败”。 OLE DB记录可用。来源:“Microsoft SQL Server Native Client 10.0”Hresult:0x80004005描述:“TCP提供程序:信号量超时期限已过期。

我非常需要帮助解决SSIS问题。我正在尝试使用SSIS从一个SQL群集导出/导入数据到另一个SQL群集。两者都是SQL 2008 Ent。 64位。两者都在Win2k8 Ent上运行。 64位。目的地是Win2k8 R2。

我遇到的问题是间歇性但非常频繁。 SSIS连接在各个步骤中丢失。有时在第一个任务上失败,有时在最后一个任务上失败...有时它完全完成第一次迭代(在for-each循环中)并且在后续迭代时失败。

此程序包的相同版本在过去针对不同的目标运行而没有失败。以前的目标是在Win2k3 Standard和SQL 2005 Std上运行的单个服务器(非群集)。 64位。

新目标服务器完全没有流量。有足够的CPU /内存等。包已经从源服务器或目标服务器执行,具有类似的结果。

以下是简单导入/导出任务的输出:

  • 复制到[dbo]。[AGGSLIVE_Bandwidth](错误) 消息 错误0xc0202009:数据流任务1:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:“Microsoft SQL Server Native Client 10.0”Hresult:0x80004005描述:“通信链接失败”。 OLE DB记录可用。来源:“Microsoft SQL Server Native Client 10.0”Hresult:0x80004005说明:“TCP提供程序:远程主机强制关闭现有连接。 ”。 (SQL Server导入和导出向导)

错误0xc0209029:数据流任务1:SSIS错误代码DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “输入”目标输入“(62)”失败,因为发生错误代码0xC020907B,并且“输入”目标输入“(62)”上的错误行处置指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。  (SQL Server导入和导出向导)

错误0xc0047022:数据流任务1:SSIS错误代码DTS_E_PROCESSINPUTFAILED。组件“Destination - AGGSLIVE_Bandwidth”(49)上的ProcessInput方法在处理输入“Destination Input”(62)时失败,错误代码为0xC0209029。标识的组件从ProcessInput方法返回错误。该错误特定于组件,但错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。  (SQL Server导入和导出向导)

错误0xc0209017:数据流任务1:设置缓冲区的行集结束失败,错误代码为0xC0047020。  (SQL Server导入和导出向导)

错误0xc0047038:数据流任务1:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。组件“Source - Query”(1)上的PrimeOutput方法返回错误代码0xC0209017。当管道引擎调用PrimeOutput()时,组件返回失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。  (SQL Server导入和导出向导)

8 个答案:

答案 0 :(得分:9)

我遇到了同样的问题,似乎与为并发任务使用相同的数据库连接有关。可能有一些替代解决方案(可能更好),但我通过将MaxConcurrentExecutables设置为1来解决它。

答案 1 :(得分:3)

在某些情况下,了解Windows和SQL Server的版本可能会有所帮助。在Native Client 10.0中,我推断出SQL Server 2008或SQL Server 2008 R2。

有几件事可以检查,但我会检查是否在SQL Server上配置了'优先级提升'。这是一个已弃用的设置,最终将被删除。问题是它可以抢夺操作系统所需的资源。请参阅以下注释:

http://msdn.microsoft.com/en-in/library/ms180943(v=SQL.105).aspx

如果'priority boost'已配置为1,则将其配置回0。

exec sp_configure 'priority boost', 0;
RECONFIGURE;

答案 2 :(得分:3)

如果它与SSIS包有关,则可能检查源数据库是否包含少量空行。删除后,此问题将不再出现。

答案 3 :(得分:2)

答案 4 :(得分:2)

我刚刚遇到这个问题,我的问题是我在csv文件中有空行,其中包含文本“null”而不是空。

答案 5 :(得分:2)

我的OLE DB命令遇到了类似的问题,我通过将组件中的ValidateExternalMetadata属性设置为False来解决它。

答案 6 :(得分:1)

我遇到了类似的问题。

取消选中该复选框(“在向导中取消选中”第一行有列名称“的复选框),然后在运行向导之前确保已打开 excel表。

然后通过取消选中复选框来运行向导。

这解决了我的问题。

答案 7 :(得分:0)

此问题的解决方案是:

  1. 为您的excel或平面文件创建另一个连接管理器,否则您只需要在连接字符串中传递变量值即可:

  2. 从下拉列表中右键单击Connection Manager >> properties >> Expression >> Select "ConnectionString",然后传递输入变量,如path,filename .. < / p>