VSを使用してサーバー上で開発したSSISパッケージがあります。パッケージは Visual Studio で正常に動作しますが、SQL Server エージェントでジョブを追加すると、パッケージが失敗します。SAGE Line 50 v19 からデータを取得しているため、ODBC ドライバーは 32 ビットです。そして、私は64ビット環境で実行しています。odbc を 32 ビットとしてセットアップ済みで、エージェントが 32 ビットを実行するようにセットアップされていることを確認しましたが、エラーが発生しました。次のようにコマンドラインからパッケージを実行してテストしました
"C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\DTExec.exe" /FILE "E:\Reporting\Projects\SSIS\SSIS2012\SSIS2012\Package1.dtsx" /DECRYPT password /CHECKPOINTING OFF /REPORTING EWCDI
これは、実行するとうまく機能します。ただし、「オペレーティング システム (CmdExec)」として実行するように SQL エージェント ジョブをセットアップすると、次の出力が得られます。
Microsoft (R) SQL Server Execute Package Utility
Version 11.0.2100.60 for 32-bit
Copyright (C) Microsoft Corporation. All rights reserved.
Started: 13:30:44
Info: 2015-02-24 13:30:44.45
Code: 0x40016044
Source: Data Flow Task Data Flow Task (SSIS.Pipeline)
Description: Attempting to upgrade "ODBC Source". The package is attempting to upgrade an extensible object.
End Info
Error: 2015-02-24 13:30:44.59
Code: 0xC0014020
Source: SSIS002_SageCompany5Import Connection manager "Sage005.Manager"
Description: An ODBC error -1 has occurred.
End Error
Error: 2015-02-24 13:30:44.59
Code: 0xC0014009
Source: SSIS002_SageCompany5Import Connection manager "Sage005.Manager"
Description: There was an error trying to establish an Open Database Connectivity (ODBC) connection with the database server.
End Error
Error: 2015-02-24 13:30:44.59
Code: 0xC00291EC
Source: Get Max(SourceID) Execute SQL Task
Description: Failed to acquire connection "Sage005.Manager". Connection may not be configured correctly or you may not have the right permissions on this connection.
End Error
Warning: 2015-02-24 13:30:44.59
Code: 0x80019002
Source: SSIS002_SageCompany5Import
Description: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but the number of errors raised (1) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
End Warning
DTExec: The package execution returned DTSER_FAILURE (1).
なぜこれが他の場所でうまくいくのか理解できません。何時間もグーグルで調べていて、考えられることはすべて試しましたが、運がありませんでした。