2011-07-04 70 views
2

我已經創建了一個SSIS包。如果程序包失敗,我需要將Transaction應用於此軟件包以進行回滾。我發現的屬性「TransactionOption」應該被賦予「必需」。我對嗎 ?我已經將包的TransactionOption設置爲「必需」,但是執行時包會失敗。我應該如何設置TransactionOption「所需」?SSIS中的TransactionOption

詳細說明,我的軟件包包含4個控制任務。其中之一是數據流任務,包含查找任務。

我得到了以下錯誤 「[執行SQL任務]錯誤:無法獲取連接」SQLConnectionMgr1「。連接可能配置不正確,或者您可能沒有正確的權限連接。

當我將TransactionOption設置爲「Supported」時,包成功運行。

回答

2

聽起來您可能沒有適當的權限來使用分佈式事務處理協調器(MSDTC)服務,這是SSIS中使用事務所必需的。

請參閱這篇文章交易的詳細資料:http://www.mssqltips.com/tip.asp?tip=1585

你也可能需要更多的看向MSDTC是如何工作的有關SSIS得到您的問題得到解決。

4

enter image description here

  1. 創建2個 「OLE DB連接管理器」 都連接到同一數據庫 。在「OLE DB連接 管理器」之一的屬性上,將「RetainSameConnection」屬性設置爲true。
  2. 然後創建3個「執行SQL任務」,並將它們與「OLE DB 連接管理器」連接,將'RetainSameConnection'屬性設置爲 爲true。
  3. 添加以下語句上有相應的執行SQL任務

    • BEGIN TRANSACTION
    • COMMIT TRANSACTION
    • ROLLBACK TRANSACTION
+0

+1爲複雜而簡單的答案。這個解決方案背後的第二個簡單例子[在這裏找到](http://consultingblogs.emc.com/jamiethomson/archive/2005/08/20/SSIS-Nugget_3A00_-RetainSameConnection-property-of-the-OLE-DB -connection-Manager.aspx) –

1

要啓用Trancaction是你需要檢查SSIS低於先決條件

1,分佈式事務處理協調器(MSDTC)服務應該在機器上啓動,如果它的本地機器。如果您使用的是客戶端(服務器計算機 - >用戶計算機),則MSDTC將在兩臺安全選項NETWORK DTC Access(允許遠程客戶端,允許入站,允許出站)的組件服務下啓用 - - >計算機屬性 - > MSDTC選項卡 - >安全選項

3,有時來自任何一臺機器或兩者的防火牆可能被阻塞網絡DTC,因此您需要禁用/卸載。

錯誤: 無法獲取連接管理器

解決方案: 檢查步驟,如果你是本地計算機的用戶,1,如果你是客戶端用戶檢查步驟2和3

然後asusual 變化Trancaction根據需要選擇包裝級別或容器級別屬性中的選項並進行檢查。