我在SQL Server 2012中创建了一个基本的SSIS包,用于使用SQL Server代理作业测试并发性 . 我希望能够作为不同作业的一部分运行相同包的副本 .

包设计:包中有一个名为ThreadID的变量,它表示运行包的线程 . 此变量包含在配置XML文件中,如下所示: - 1

包中只有一个任务 . 它是一个简单的Exec SQL Task,它将ThreadID传递给存储过程,存储过程将ThreadID写入SQL Server表中 .

结果:当我在VS IDE或SQL Server代理作业中执行包的一个副本时,一切正常 . 当我在2个不同的SQL代理作业中同时运行同一个包的两个实例时,问题就出现了 . 每个作业都有一个包文件和一个配置XML文件的副本 . 一个XML文件的ThreadID = 1,另一个的ThreadID = 2 . 我在SQL Server表中看到的是首次启动的作业的ThreadID . 当我开始第一份工作然后第二份工作时,该表包含全部1 . 当我第一次开始第二份工作时,它将全部为2 .

知道为什么吗?

谢谢