2013-05-30 523 views
1

我在我的本地機器上運行良好的兩個SSIS包。我可以將它們導入服務器上的SSIS,並執行它們都沒有問題。但是,我需要在每天凌晨3點以串聯方式運行它們。因此,我用兩個步驟創建了一個SQL Server代理作業。第一步成功運行第一個軟件包。第二步應該運行第二個方案,但它失敗,出現此錯誤消息:如何調試SQL Server代理作業?

Message Executed as user: IT-DEV\itdev. Microsoft (R) SQL Server Execute Package Utility Version 11.0.2100.60 for 64-bit Copyright (C) Microsoft Corporation. All rights reserved. Started: 1:27:21 PM Error: 2013-05-30 13:27:21.53 Code: 0x00000001 Source: Create text files on IT DEV Description: Exception has been thrown by the target of an invocation. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 1:27:21 PM Finished: 1:27:21 PM Elapsed: 0.375 seconds. The package execution failed. The step failed.

兩個包從一個目錄移動一些文件到另一個做一些工作。它們都使用相同的代理在相同的安全上下文中運行。我可以看到第1步成功完成了工作,但是第2步又失敗了。我已經查看了所有可能的步驟設置,看到沒有差異。因此,我怎樣才能得到更具描述性的訊息,以便我知道真正的問題是什麼。我在猜測它的權限,但是這兩個包在類似的位置上也要做相似的工作,需要相同的權限。一個運行,另一個不運行。請幫忙。提前致謝。

僅供參考我也打開了SSIS日誌並將所有內容寫入文件,但下面的消息是我看到的唯一錯誤。


UPDATE

我最終的腳本任務中遍及寫入一個文本文件,試圖找出問題所在。我似乎越來越困在這裏:

string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + myPath + ";Extended Properties=\"text;HDR=NO;FMT=TabDelimited\""; 
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM MYFILE.txt", connStr); 
outfile.WriteLine("Adapter Created"); 
DataTable dtFiles = new DataTable(); 
adapter.Fill(dtFiles); 
outfile.WriteLine("Filled DataTable"); 

我從來沒有看到我寫......最後一個條目文件中的「填充DataTable中」說「適配器創建」。

+0

此錯誤消息的大部分匹配似乎都描述了腳本任務中的變量鍵入問題。請參閱[這裏](http://stackoverflow.com/questions/7820029/ssis-user-variable-assignment)和[這裏](http://www.sqlservercentral.com/Forums/Topic743911-148-1.aspx) 。後面的鏈接還討論了爲控制流中的任務設置一個OnError事件處理程序。這可能有助於您挖掘更多關於正在發生的事情的信息。 – criticalfix

+0

這些是SQL Server 2012包,它們是使用新的項目部署模型(因此它們位於SSISDB目錄中),還是仍在使用包部署模型並且生活在msdb中? – billinkc

+0

他們住在msdb中。但是,我可以寫入服務器上的文本文件並查明導致錯誤的原因。請參閱更新。 – BBauer42

回答

0

原來我需要將Microsoft.Jet.OLEDB.4.0替換爲:Microsoft.ACE.OLEDB.12.0,因爲我在Windows Server 2008 64位上運行代理作業。