I cannot find any solid information on when and how parent package variables are read by the child packages and whether they could suffer from race conditions.
Our team is building a system in SSIS 2008 system to handle a number of files. We want a single entry point (the parent package) which picks up the file, checks some config and conditionally calls one of several child packages to process it.
Some values, like the file name, need to be passed to the child package. What I'm wondering is, essentially, whether these are passed by reference or by value.
If I run MainPackage for file X.txt, which starts ProcessXPackage, and then (while it is still running) I run MainPackage for file Y.txt, which starts ProcessYPackage, is there a danger that ProcessXPackage might subsequently read the file name as Y.txt?
Or is the value read by the child package when it starts and stored locally so no modifications are possible?
Or even could I not run MainPackage a second time while ProcessXPackage is already running, as it is in its 'stack'?