SSISパッケージは入札で動作しますが、dtexecではなく、エラーdts_e_adodestfailedtoacquireconnection

StackOverflow https://stackoverflow.com/questions/8382880

  •  28-10-2019
  •  | 
  •  

質問

入札内でうまく機能しているSSISパッケージを構築しています。パッケージは正常に実行されます。

コマンドラインの同じ構成で同じパッケージを実行しようとしていますが、接続を取得できません(エラー0xc0208452:dts_e_adodestfailedtoacquireconnection)。

障害接続は、すべての障害を保持するアクセスファイルへのADO.NET接続です(私が言ったように、入札内で直接機能します)。

次のコマンドライン(.cmdファイル)を使用します。 X86フラグは、Excelファイルへの接続を使用しているため設定されています。

@echo off
set dtexec=%programfiles%\Microsoft SQL Server\100\DTS\Binn\dtexec.exe
"%dtexec%" /X86 /f "myPackage.dtsx" 

出力は次のとおりです。

Error: 2011-12-05 09:47:38.94
   Code: 0xC0208452
   Source: Output Errors to access file [162]
   Description: ADO NET Destination has failed to acquire the connection {19CC1EA2-BD93-4006-919E-39A80E828BB1}. The connection may have been corrupted.
End Error

この接続に使用される接続文字列は次のとおりです。

Data Source=c:\path\to\errors.mdb;Provider=Microsoft.Jet.OLEDB.4.0

そのため、接続を共有するデフォルトモードが適用されます(16:Sharedenynode)。

最後に、私のプラットフォームは次のとおりです。

  • W2K8 R2 X64
  • SQL 2K8 R2 X64

このコマンドラインで何が問題になっているのかわかりません。助けてくれてありがとう。

PS:念のため、管理者として実行しようとしましたが、動作は同一です。

編集 それが役立つかどうかはわかりませんが、ここに /consoleLogフラグを使用するときのエラーログがあります。

Log:
     Name: Diagnostic
     Computer: mycomputer
     Operator: domain\me
     Source Name: Jet Errors
     Source GUID: {19CC1EA2-BD93-4006-919E-39A80E828BB1}
     Execution GUID: {90BCE5BA-CF8B-49FC-8275-1F1FF70720CB}
     Message: ExternalRequest_pre: The object is ready to make the following external request: 'IDbConnection.Open(ConnectionType: System.Data.OleDb.OleDbConnection,
 System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
ConnectionString: Data Source="c:\Path\to\errors.mdb";Provider=Microsoft.Jet.OLEDB.4.0;)'.
     Start Time: 2011-12-05 09:58:57
     End Time: 2011-12-05 09:58:57
End Log
Log:
     Name: Diagnostic
     Computer: mycomputer
     Operator: domain\me
     Source Name: Jet Errors
     Source GUID: {19CC1EA2-BD93-4006-919E-39A80E828BB1}
     Execution GUID: {90BCE5BA-CF8B-49FC-8275-1F1FF70720CB}
     Message: ExternalRequest_post: 'IDbConnection.Open failed'. The external request has completed.
     Start Time: 2011-12-05 09:58:57
     End Time: 2011-12-05 09:58:57
End Log
Log:
     Name: OnError
     Computer: mycomputer
     Operator: domain\me
     Source Name: Categories
     Source GUID: {6DD5D6E3-2256-43D5-84B8-E9C27E02694B}
     Execution GUID: {90BCE5BA-CF8B-49FC-8275-1F1FF70720CB}
     Message: ADO NET Destination has failed to acquire the connection {19CC1EA2-BD93-4006-919E-39A80E828BB1}. The connection may have been corrupted.

     Start Time: 2011-12-05 09:58:57
     End Time: 2011-12-05 09:58:57
End Log
Error: 2011-12-05 09:58:57.62
   Code: 0xC0208452
   Source: Categories To Categories Errors [162]
   Description: ADO NET Destination has failed to acquire the connection {19CC1EA2-BD93-4006-919E-39A80E828BB1}. The connection may have been corrupted.
End Error
Log:
     Name: OnError
     Computer: mycomputer
     Operator: domain\me
     Source Name: Categories
     Source GUID: {6DD5D6E3-2256-43D5-84B8-E9C27E02694B}
     Execution GUID: {90BCE5BA-CF8B-49FC-8275-1F1FF70720CB}
     Message: component "To Categories Errors" (162) failed validation and returned error code 0xC0208452.

     Start Time: 2011-12-05 09:58:57
     End Time: 2011-12-05 09:58:57
End Log
Error: 2011-12-05 09:58:57.64
   Code: 0xC0047017
   Source: Categories SSIS.Pipeline
   Description: component "To Categories Errors" (162) failed validation and returned error code 0xC0208452.
End Error

そして、ここにDTSXファイル自体からの接続の定義があります。

<DTS:ConnectionManager>
    <DTS:Property DTS:Name="DelayValidation">0</DTS:Property>
    <DTS:Property DTS:Name="ObjectName">Jet Errors</DTS:Property>
    <DTS:Property DTS:Name="DTSID">{19CC1EA2-BD93-4006-919E-39A80E828BB1}</DTS:Property>
    <DTS:Property DTS:Name="Description"></DTS:Property>
    <DTS:Property DTS:Name="CreationName">ADO.NET:System.Data.OleDb.OleDbConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</DTS:Property>
    <DTS:ObjectData>
        <DTS:ConnectionManager>
            <DTS:Property DTS:Name="Retain">0</DTS:Property>
            <DTS:Password DTS:Name="Password" Sensitive="1" Encrypted="1">AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAeUySei4110aSwp/Lg9Ry2wAAAAAIAAAARABUAFMAAAADZgAAwAAAABAAAABIrrL+3ppbrbI4ELkWjVMvAAAAAASAAACgAAAAEAAAAMgk6OFh+lWGPpsFZ0dK9k8IAAAA1HCWmIm7dIsUAAAAjjx5q2XUdjp2o+FxWAaPCEgv94M</DTS:Password>
            <DTS:Property DTS:Name="ConnectionString">Data Source=c:\Path\To\errors.mdb;Provider=Microsoft.Jet.OLEDB.4.0;</DTS:Property>
        </DTS:ConnectionManager>
    </DTS:ObjectData>
</DTS:ConnectionManager>
役に立ちましたか?

解決

一部の人々は私にこれについて答えをくれました マイクロソフトフォーラムスレッド.

x86フラグを設定しても、64ビットバージョンの代わりに32ビットバージョンのDTEXECを使用する必要があります。

私のバッチファイルは今です:

@echo off
set dtexec=%programfiles(x86)%\Microsoft SQL Server\100\DTS\Binn\dtexec.exe
"%dtexec%" /X86 /f "myPackage.dtsx" 

そして働いています...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top