2013-03-26 133 views
5

我有一個SSIS包在SQL2008R2上運行良好,環境變量指向連接字符串的配置文件。使用VS2010 Shell,我升級了我們的SQL Server 2012數據庫的包。該軟件包仍處於軟件包部署模式。該軟件包的ProtectionLevel設置爲DontSaveSensitiveRun64BitRuntime = False。當我嘗試和執行VS包,我收到以下錯誤:SSIS:升級到SQL Server 2012後工作包失敗

[OLE DB Destination [2]] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "DB_Connection" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.**

[SSIS.Pipeline] Error: OLE DB Destination failed the pre-execute phase and returned error code 0xC020801C.**

有了完整的日誌記錄,我看到的第一個失敗的位置:

Diagnostic,[ComputerName],OFFICE\username,DB_Connection,{5AD75239-D546-4AAF-963E-E195FC2F0C1E},{9EC48106-DDBD-40E9-8FBB-942BCF025EEE},3/26/2013 10:35:21 AM,3/26/2013 10:35:21 AM,0,(null),ExternalRequest_post: 'ITransactionJoin::JoinTransaction failed'. The external request has completed.**

是真的拋出我的一部分是在包的較早版本中,在許多執行SQL任務中成功使用了相同的「DB_Connection」管理器。所以,似乎正確地從配置中讀取連接字符串。

我試過刪除\重新創建連接管理器。我已驗證DTC在本地和服務器上都已正確配置。我有其他軟件包使用相同的配置方法使用數據流任務無問題地連接到相同的SQL2012數據庫。

任何人都可以幫助指出我在正確的方向,將不勝感激。如果我不需要,我寧願不必在此時轉移到項目部署模型。

回答

6

我能夠讓我的軟件包在本地運行。雖然我在我的任務上檢查了TransactionOption以確保它們被設置爲支持,但事實證明,我的一個序列容器被設置爲必需。不知道爲什麼這在SQL2008R2中起作用,但不在SQL2012中起作用。我將我的容器更改爲支持並且現在運行該包。

+0

謝謝!事實上,你必須分別看待這些任務 – laurens 2013-07-16 11:18:46