DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER при использовании диспетчера подключений Oracle

Эта статья поможет устранить проблему, которая возникает при использовании диспетчера подключений Oracle.

Оригинальная версия продукта: SQL Server
Исходный номер базы знаний: 2009312

Симптомы

Рассмотрим следующий сценарий для любой из SQL Server:

  • Пакет служб SQL Server Integration Services (SSIS) разрабатывается с помощью Business Intelligence Development Studio (BIDS).
  • В пакете вы подключаетесь к серверу Oracle с помощью поставщика OLEDB для Oracle и используете клиент Oracle 10G или 11G.
  • Файл конфигурации пакета используется для задания всех свойств подключения для подключения Oracle во время выполнения.

В этом сценарии при выполнении пакета из BIDS появляется следующее сообщение об ошибке.

"Ошибка: 0xC0202009 в пакете, диспетчер соединений "Поставщик OLEDB": код ошибки служб SSIS DTS_E_OLEDBERROR. Произошла ошибка OLE DB. Код ошибки: 0x80040E21.

Доступна запись OLE DB. Источник: "Компоненты службы Microsoft OLE DB" Hresult: 0x80040E21 Описание: "Ошибки, созданные многошаговой операцией OLE DB. Проверьте каждое значение состояния OLE DB, если доступно. Никакой работы не было сделано".

Ошибка: 0xC020801C в задаче Поток данных, источник Oracle OLEDB [1]: код ошибки служб SSIS DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. Сбой метода AcquireConnection к диспетчеру соединений "Поставщик OLEDB" с кодом ошибки 0xC0202009. До этого могут появиться сообщения об ошибках с дополнительными сведениями о том, почему вызов метода AcquireConnection завершился сбоем.

Ошибка: 0xC0047017 в задаче Поток данных, DTS. Конвейер: компонент Oracle OLEDB Source (1) завершил проверку и вернул код ошибки 0xC020801C".

Причина

Это связано с тем, что свойство Initial Catalog в файле конфигурации не распознается поставщиком Oracle. Этот параметр пуст для диспетчера подключений Oracle в файле конфигурации.

Например, при использовании BIDS для создания пакета служб SSIS, который подключается к серверу Oracle, создается следующий XML-файл конфигурации:

<?xml version="1.0"?>
<DTSConfiguration>  
    <DTSConfigurationHeading>
        <DTSConfigurationFileInfo GeneratedBy="MyUserName" GeneratedFromPackageName="MyPackage" GeneratedFromPackageID="<guid>" GeneratedDate="2/22/2010 9:00:00 PM"/>
    </DTSConfigurationHeading>
    <Configuration ConfiguredType="Property" Path="\Package.Connections[MyConnectionManager].Properties[ConnectionString]" ValueType="String"> 
        <ConfiguredValue>Data Source=MyServerName;User ID=MyAccount;Password=MyPassword; **Initial Catalog=**; Provider=MSDAORA.1;Persist Security Info=True;</ConfiguredValue>
    </Configuration>
</DTSConfiguration>

Разрешение

Удалите поле проверка для начального каталога при создании или изменении файла конфигурации с помощью Designer BIDS.

Например, исправленная версия примера файла конфигурации, показанного в разделе Причина, будет иметь следующий формат:

<?xml version="1.0"?>
<DTSConfiguration>  
    <DTSConfigurationHeading>
        <DTSConfigurationFileInfo GeneratedBy="MyUserName" GeneratedFromPackageName="MyPackage" GeneratedFromPackageID="<guid>" GeneratedDate="2/22/2010 9:00:00 PM"/>
    </DTSConfigurationHeading>
    <Configuration ConfiguredType="Property" Path="\Package.Connections[MyConnectionManager].Properties[ConnectionString]" ValueType="String">
        <ConfiguredValue>Data Source=MyServerName;User ID=MyAccount;Password=MyPassword;Provider=MSDAORA.1;Persist Security Info=True;</ConfiguredValue>
    </Configuration>
</DTSConfiguration>

Дополнительная информация

Известные ограничения поставщика OLE DB для ODBC