1.SETUP:
Oracle Server1:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit
Oracle Server2:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit
据我所能看到的,两个Server的配置一样。
SSIS(直接在BIDS中运行):Windows 64bit,装了两个Oracle Client,
ClientHome1,ClientHome2.
2.问题:
在SSIS数据流任务中,使用 Oracle Provider for OLE DB分别连接Server1和Server2,
运行SSIS数据流任务时,
一个正常,
一个出错,消息如下:
[OLE DB 目标 [100]] 错误: SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“rainbowDW.XXXXX”的 AcquireConnection 方法调用失败,错误代码为 0xC0209303。可能在此之前已经发出错误消息,提供了有关 AcquireConnection 方法调用失败原因的详细信息。
[SSIS.Pipeline] 错误: 组件“OLE DB 目标”(100) 未能通过验证,返回的错误代码为 0xC020801C。
错误码对应描述可查看:
http://64.4.11.252/en-us/library/ms345164.aspx#msgError
0xC0209303的描述是:
SSIS Error Code DTS_E_OLEDB_NOPROVIDER_64BIT_ERROR. The requested OLE DB provider __ is not registered -- perhaps no 64-bit provider is available. Error code: __.
用错误码查找,能找到一些关于64bit连接的出错消息,但是,这里奇怪的是:两个Server,都是64bit,一个连接ok,一个却不行。
3.Solution?(待进一步分析):
在PL/sql dev中查看SupportInfo时,使用的是ClientHome2中的tns,里面有配置连接到Server1和Server2的tns,
而ClientHome1下的net manager没配置Server2,
在ClientHome1中添加Server2后,问题解决。
还有其他配置,待补充。
来源:https://www.cnblogs.com/andrewchen/archive/2010/09/28/1837610.html