SSIS包没有正确获取配置文件

时间:2010-04-23 09:28:31

标签: sql-server-2008 ssis

我们最近将SQL Server 2000中的大约30个DTS包迁移到SQL Server 2008中的SSIS包。我们创建了包,以便从配置文件中挑选所有与环境相关的变量和其他所需信息,以便维护包不同的环境,如Dev,QA和Prod。

在使用配置文件设置所有包之后,当我们从Business Intelligence Development Studio测试包时,它工作正常并从配置文件中获取值。当将配置文件中的值更改为Dev或其他环境时,它会正确地获取值并执行。同样,尝试了2种不同的环境,包装工作正常。所以我们部署到Prod并且工作正常。

昨天,我不得不对一个软件包进行功能更改,因此我在软件包中进行了更改(它只是在SQL过程执行任务中更改参数而与任何变量无关)并在BIDS中测试了2环境,它运作良好。

由于更改与任何环境更改无关,我们在Prod中手动部署了更新的包(而不是关联的配置文件)(即不使用清单)。之前由包使用并在Prod中正常工作的配置文件保持不变。但是当程序包执行时,程序包指向QA并且程序包没有从我认为的配置文件中读取。

一个原因可能是,它仍然使用最后执行的值,这些值保留在.dtsx文件中(通过在文本编辑器中打开文件可以检查)。但通常,当执行包时,值将从配置文件中覆盖。猜猜它没有发生。

可能的原因是什么?我们已经在测试环境之间进行了广泛的测试,并没有显示出这种行为。我们现在在Prod环境中遇到过两次这个问题。其他人都经历过这个,你是如何解决这个问题的?

3 个答案:

答案 0 :(得分:1)

我们终于并希望找到解决此问题的方法。在测试环境中运行包并对其进行测试后,我们将其指向Prod环境并添加一个虚拟条件,使其在第一个任务中失败,然后执行包。通过这样做,存储在.dtsx文件中的变量值将使用配置文件中的Prod值进行刷新。然后我们创建清单并进行部署。但请记住删除强制失败第一个任务的虚拟条件。它现在正在运作。如果我找到这个问题的实际解决方案,我会更新。

答案 1 :(得分:0)

检查prod上的环境变量,是否有人更改了它以进行测试并忘记更改它?

答案 2 :(得分:0)

你是如何运行包的?

我发现的工作原理是在步骤属性中创建一个SQL代理作业并在那里分配所需的配置文件。每个环境最终会有一个作业,并且配置文件的路径不同。