2010-04-23 36 views
2

我們最近已將SQL Server 2000中的30個DTS包遷移到SQL Server 2008中的SSIS包中。我們創建了包,以便所有與環境相關的變量和其他所需信息均被採集來自配置文件,用於維護Dev,QA和Prod等不同環境下的軟件包。SSIS包無法正確獲取配置文件

使用配置文件設置所有包後,當我們測試Business Intelligence Development Studio的包時,它工作正常,並從配置文件中獲取值。當將配置文件中的值更改爲Dev或其他env時,它會正確拾取值並執行。同樣,嘗試2種不同的環境,並且軟件包工作正常。所以我們部署到Prod,它工作正常。

昨天,我不得不對一個軟件包進行功能更改,因此我在軟件包中進行了更改(它只是更改SQL過程執行任務中的參數,而不涉及任何變量),並在BIDS中進行了測試2環境,它工作得很好。由於該變更與任何環境變化無關,因此我們僅在Prod(即不使用清單)中手動部署更新的軟件包(而不是相關的配置文件)。之前在程序包中使用並且在Prod中正常工作的配置文件保持不變。但是當程序包被執行時,程序包指向QA,而且我相信程序包沒有從配置文件中讀取。

一個原因可能是,它仍然使用最後執行的值,它們保留在.dtsx文件中(通過在文本編輯器中打開該文件可以進行檢查)。但通常情況下,執行包時,值將從配置文件覆蓋。猜猜這沒有發生。

這有什麼可能的原因?我們已經在測試環境之間進行了廣泛的切換測試,並沒有顯示出這種行爲。我們現在已經在Prod環境中遇到了這個兩次。任何人都經歷過這個,你是如何解決這個問題的?

回答

1

我們終於希望找到解決此問題的解決方法。在測試環境中運行包並對其進行測試後,我們將其指向Prod環境,並添加一個虛擬條件以使其在第一個任務中失敗,然後執行包。通過這樣做,存儲在.dtsx文件中的變量值將使用配置文件中的Prod值進行刷新。然後我們創建清單並部署它。但要記得去除強制失敗第一項任務的虛擬條件。它現在正在工作。我會更新,如果我找到這個問題的實際解決方案。

0

檢查prod上的環境變量,也許有人改變它的測試東西,忘了改回來?

0

如何運行包?

我發現的作品是創建SQL代理作業並在步驟屬性中指定所需的配置文件。每個環境最終都會有一個作業,其配置文件路徑不同。