2011-12-05 6 views
1

BIDS内でうまく動作しているSSISパッケージをビルドしました。パッケージは正常に実行されます。SSISパッケージはBIDSで動作しますが、DTEXECでは動作しません。エラーDTS_E_ADODESTFAILEDTOACQUIRECONNECTION

コマンドラインから同じ設定で同じパッケージを実行しようとしていますが、接続を取得できません(エラー0xC0208452:DTS_E_ADODESTFAILEDTOACQUIRECONNECTION)。

障害が発生した接続は、すべての障害を保持するアクセスファイルへのADO.Net接続です(私がBIDS内で直接言ったように、動作します)。

次のコマンドラインを使用します(.cmdファイル内)。

@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 
私もExcelファイルへの接続を使用しているとして、X86フラグが設定されています

したがって、共有接続のデフォルトモードが適用されます(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> 

答えて

1

この回答はMicrosoft forum threadさんから寄せられました。

X86フラグを設定しても、64ビットバージョンではなく32ビットバージョンのDTEXECを使用する必要があります。

私のバッチファイルは、以下のようになります。

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

と取り組んでいる...

+1

うん、それは '/ X86'フラグが存在していることを残念です。これは正しいことですが、[SQL Agent](http://msdn.microsoft.com/en-us/library/ms162810.aspx)にのみ適用されます – billinkc

+0

私のSSISの経験(これは私の最初のプロジェクトでした)はかなりです負。不明瞭なエラーメッセージが多く、基本的な作業が苦しくなることがあります(存在しないため、手動で行う必要があります:最低6つのコンポーネント)。再利用性の欠如などこれはSSISのもう一つの悪い点です。 –

+0

私は2005年からSSISに取り組んできましたので、私は酷使に慣れています。 ;)しかし、私は一般的に、データを移動するための製品はかなり便利だと感じています。32/64ビットのものは、SSISだけでなく、MSエコシステムのあらゆるところを吸う。私たちの何人か(Siva、Filip Popovic)はここでSSISタグをよく見守っていますので、必要に応じてここに質問を表示したり、Twitterで私を打つことができます。良い人がたくさんいます – billinkc

関連する問題