Oracle 接続マネージャーを使用する場合のDTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER

この記事は、Oracle 接続マネージャーを使用するときに発生する問題を解決するのに役立ちます。

元の製品バージョン: SQL Server
元の KB 番号: 2009312

現象

いずれかのSQL Serverについて、次のシナリオを検討してください。

  • ビジネス インテリジェンス開発スタジオ (BIDS) を使用して、SQL Server Integration Services (SSIS) パッケージを設計します。
  • パッケージでは、OLEDB プロバイダー for Oracle を使用して Oracle サーバーに接続し、Oracle クライアント 10G または 11G を使用します。
  • パッケージ構成ファイルを使用して、実行時に Oracle 接続のすべての接続プロパティを設定します。

このシナリオでは、BIDS からパッケージを実行すると、次のエラー メッセージが表示されます

"エラー: パッケージ、接続マネージャー "OLEDB プロバイダー"で0xC0202009: SSIS エラー コード DTS_E_OLEDBERROR。 OLE DB エラーが発生しました。 エラー コード: 0x80040E21。

OLE DB レコードを使用できます。 ソース: "Microsoft OLE DB サービス コンポーネント" Hresult: 0x80040E21 説明: "複数ステップ OLE DB 操作によってエラーが生成されました。 使用可能な場合は、各 OLE DB 状態値を確認します。 作業は行われませんでした。

エラー: Data Flow タスクで0xC020801C、Oracle OLEDB ソース [1]: SSIS エラー コード DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 接続マネージャー "OLEDB プロバイダー" への AcquireConnection メソッドの呼び出しがエラー コード 0xC0202009で失敗しました。 この前に、AcquireConnection メソッドの呼び出しが失敗した理由の詳細を示すエラー メッセージが投稿される場合があります。

エラー: DATA FLOW タスク (DTS) で0xC0047017。パイプライン: コンポーネント "Oracle OLEDB Source" (1) は検証に失敗し、エラー コード 0xC020801Cを返しました。

原因

これは、構成ファイルの 初期カタログ プロパティが Oracle プロバイダーによって認識されないという事実が原因です。 構成ファイル内の Oracle 接続マネージャーの場合、これは空白です。

たとえば、BIDS を使用して Oracle サーバーに接続する SSIS パッケージを作成すると、次の 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>

解決方法

BIDS Designerを使用して構成ファイルを作成または編集するときに、[初期カタログ] の [チェック] ボックスを削除します。

たとえば、[原因] セクションに示されている構成ファイルの例の固定バージョンは次のようになります。

<?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 Provider for ODBC の既知の制限事項