我在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。
知道为什么吗?
由于