2013-05-28 51 views
2

我試圖創建一個SSIS包,其中某個容器中的故障導致該容器(僅限該容器)的數據流中出現回滾。這個軟件包凍結了,只有當我停止運行時才終止,或者我通過管理工作室終止了這個進程。設置容器事務「必需」後,SSIS包會凍結

我還沒有發佈圖片,我們會給出一個簡短的描述。

我有兩個容器。第一個包含:

  1. 包含從平面文件中選擇到兩個表中的數據流,我將其稱爲t_imp和h_imp。
  2. 然後在這兩個表中都有一個字段ObjCde的更新任務。
  3. 容器中的最後一個數據流使用t_imp作爲源,進一步操作並將數據移動到其他表。

第三項是它出錯的地方。我已經看到t_imp表已被鎖定。

該軟件包的事務選項是支持的,第一個容器是必需的,第二個是NotSupported。 (第二個容器包含進程任務和一個不應回滾的數據流任務。) 所有隔離級別都在ReadCommitted上。

我在這裏錯過了什麼?

我不允許在同一個容器中同時使用表格作爲來源和目的地嗎?

我需要設置其他參數嗎?

回答

1

您正在通過讀取/插入同一張表來阻止自己。這不是SSIS包凍結,而是SQL Server鎖定表,不允許事務繼續。

+0

這是否意味着我不能將兩個數據流都放在同一個事務中?如果是的話,當第三個數據流出現故障時,是否有另一種方法讓第一個數據流回滾? – Chimera