将一批Job从一台agent服务器搬到另外一台agent, 没有做任何的修改,但是job执行的时候报错。

 Error: 2014-07-03 14:42:57.14
Code: 0xC0209303
Source: ReliabilityRS2008 Connection manager "DWPROD"
Description: SSIS Error Code DTS_E_OLEDB_NOPROVIDER_64BIT_ERROR. The requested OLE DB provider SQLNCLI.1 is not registered -- perhaps no 64-bit provider is available. Error code: 0x00000000.
An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered".

OLE DB provider SQLNCLI.1 is not registered -- perhaps an ole db record is available.  链接错误,但是在vistual 里面测试明明没有问题的。

于是百度尝试了很多办法,如重新设置整个project的属性,将 run64BitRuntime 改成false, 但是没有用。

SSIS Error Code DTS_E_OLEDB_NOPROVIDER_64BIT_ERROR-LMLPHP

最后发现是配置文件的问题,配置文件里面指定了OLEDB provider 是SQLNCLI.1 改成高版本的 SQLNCLI10.1, 问题解决。

SSIS Error Code DTS_E_OLEDB_NOPROVIDER_64BIT_ERROR-LMLPHP

另外也可以将这里的2个配置文件删除,那链接就会使用每次更新package里面自带的链接方式,在job属性的DataSource分页,

当有configurations文件的时候,有限使用configurateion里面的文件,否则用Datasource里面的。

05-11 15:48