2012-10-26 86 views
5

dtexecを使用してSSISパッケージを実行しています。パッケージは私のシステム上のBIDS上で正常に動作します。スケジュールでパッケージを実行するSQLサーバーエージェントジョブを作成するとき。パッケージ実行ステップは、SSISパッケージではなくT-SQLタスクとしてスケジュールされます。ジョブはエラーを報告しませんが、出力ファイルをサーバー上に作成することさえできません。dtexecを使用したSSISパッケージの実行

さらに、コマンドシェルで別々にコマンドを実行すると、以下のエラーが表示されます。断続的に、ファイルをコピーするために使用するFileSystemタスクでも、ソースまたはデスティネーションのいずれかが存在しないというエラーを返します。同じ変数の値がBIDSで私のために働くと、なぜSQLジョブが失敗するのですか?

Started: 7:33:27 PM 
Error: 2012-10-26 19:33:27.60 
    Code: 0xC0016016 
    Source: 
    Description: Failed to decrypt protected XML node "DTS:Password" with error 0 
x8009000B "Key not valid for use in specified state.". You may not be authorized 
to access this information. This error occurs when there is a cryptographic err 
or. Verify that the correct key is available. 
End Error 
Error: 2012-10-26 19:33:27.78 
    Code: 0xC00F9304 
    Source: GICSReport Connection manager "Excel Connection Manager" 
    Description: SSIS Error Code DTS_E_OLEDB_EXCEL_NOT_SUPPORTED: The Excel Conne 
ction Manager is not supported in the 64-bit version of SSIS, as no OLE DB provi 
der is available. 
End Error 
Error: 2012-10-26 19:33:27.78 
    Code: 0xC020801C 
    Source: Data Flow Task Excel Destination [22] 
    Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAG 
ER. The AcquireConnection method call to the connection manager "Excel Connecti 
on Manager" failed with error code 0xC00F9304. There may be error messages post 
ed before this with more information on why the AcquireConnection method call fa 
iled. 
End Error 
Error: 2012-10-26 19:33:27.78 
    Code: 0xC0047017 
    Source: Data Flow Task SSIS.Pipeline 
    Description: component "Excel Destination" (22) failed validation and returne 
d error code 0xC020801C. 
End Error 
Error: 2012-10-26 19:33:27.78 
    Code: 0xC004700C 
    Source: Data Flow Task SSIS.Pipeline 
    Description: One or more component failed validation. 
End Error 
Error: 2012-10-26 19:33:27.79 
    Code: 0xC0024107 
    Source: Data Flow Task 
    Description: There were errors during task validation. 
End Error 
DTExec: The package execution returned DTSER_FAILURE (1). 
Started: 7:33:27 PM 
Finished: 7:33:27 PM 
Elapsed: 0.343 seconds 

Pls help! :) ....私は、すべての変数、接続マネージャー、およびすべて私の設定ファイルに追加する必要がありますか?現在、私は変数と接続マネージャのいくつかの値を追加しましたが、コンボは効果的に機能していないようです。

+0

+1を一般的なエラーであり、多くは、読みから利益を得ることができますすべてのエラーを解読して解決策に到達する方法を説明します。 –

答えて

11

最初のエラーは、「Excel接続マネージャは、OLE DBプロバイダが利用できないため、SSISの64ビットバージョンではサポートされていません」です。

ボックスアウトExcelドライバは、32ビットアドレス空間にのみ存在します。 BIDS/SSDTは32ビットアプリケーションなので、Excelのソースと出力先はうまく動作します。ただし、コマンドライン/ SQLエージェントから実行する場合は、明示的に32ビットバージョンのDTEXECプログラムを使用する必要があります。

手順1は、エージェントが自分で実行するサーバー上のコマンドラインからパッケージを実行できるようにすることです。あなたのSQL Serverが通例の場所にインストールされていると仮定すると、あなたはおそらく、あなたは(x86の)バージョンを使用したいと思うでしょうあなたに利用できる以下は、DTExec.exeの1

C:\Program Files\Microsoft SQL Server\90\DTS\Binn\DTExec.exe 
c:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe 
C:\Program Files\Microsoft SQL Server\110\DTS\Binn\DTExec.exe 
C:\Program Files\Microsoft SQL Server\120\DTS\Binn\DTExec.exe 
C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\DTExec.exe 
C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe 
C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\DTExec.exe 
C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\DTExec.exe 

を持っています。将来の読者は、Windowsの32バージョン(Windows 2003、多分)にいる場合、最初の3つのオプションが利用可能になります。 Vivekのエラーメッセージに示されているように、彼は64ビットモードでSSISパッケージを実行しています。

dtexecは、コマンドラインスイッチ/X86を使用して、32ビットと64ビットの両方の操作で同じ実行可能ファイルをシームレスに使用できるようにします。 LIES!文書はそれを呼び出すが、誰が文書を読むか?

このオプションは、SQL Serverエージェントでのみ使用されます。コマンドプロンプトでdtexecユーティリティを実行すると、このオプションは無視されます 。

だから、あなたは明示的なパス

私が見

C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe /file C:\folder\GICSReport.dtsx

を提供することで、あなたのパッケージを実行する必要がありますあなたの出力には、「保護されたXMLノードを復号化に失敗しました」と、あなたはまた、あなたが設定を使用している状態ほとんどの場合、PackageProtectionLevelをデフォルトのEncryptSensitiveWithUserKeyからDontSaveSensitiveに変更することができます。この機能は、機密データ(パスワード)の偶発的な被害を防ぐために存在しますが、設定ファイルですでに処理しているので問題ではありません。 ...それは実際に私がそれについて考えている他のパッケージの保護レベルの一つからの誤りかもしれません。

いずれにせよ、最初に実行可能な32ビットから実行してみてください。それでも問題が解決しない場合は、指示に従ってパッケージの保護レベルを変更してみてください。いずれかのパッケージが期待どおりにパッケージを実行する場合、SQLエージェントから同じコマンドを実行しようとします。

すべての場合は、これを回答としてマークしてください。そうでない場合は、現行のエラーが生成されたチケットを更新してください。追加情報が必要です。

+2

いつものように素敵な徹底的な答えビル! –

0

excelインポートを含むtransact SQLのdtexecでSSISパッケージを実行しようとしている場合のソリューションは次のとおりです。

  1. 次のコードを含むバッチファイルを作成します。

    CDのC:\プログラムファイル(x86の)\ Microsoft SQL Serverの\ 100 \ DTS \ Binnの\ は、DTExec.exe/DE "パスワード"/F "C:\ mySSISfolder \ package.dtsx"

  2. バッチファイルを指すショートカットを作成し、ショートカットのを管理者として実行するように設定します。あなたのTransactのSQLプロシージャから

  3. は、次のコマンドを実行します

    幹部は 'C:\ MyFolderを\ runssis_sc.lnk' のxp_cmdshellこのよう