SSIS Configurations persisting in BIDS
Should configurations in an SSIS package persist in BIDS after running the package?
It would be great if they did. But it doesn't seem like that's not the case.
Except, I have a parent package that calls a child package. Both packages have Configurations from an XML file, that sets the value of two blank variables (parentvar & childvar). If I run this package in BIDS, the parentvar value in the parent package
persists - i.e. after running, the value is updated in BIDS. However, the childvar variable in the child package doesn't.
Can anyone explain this behaviour? What is expected - that running the package in BIDS persists the variable values in BIDS, or that they don't persist.
May 10th, 2012 6:59pm
It's a bit shady.
If you open a package in the BIDS designer, it loads the configurations and they overwrite the design time default value.
If you run a package on the server, configuration values do not overwrite the design time default value.MCTS, MCITP - Please mark posts as answered where appropriate.
Free Windows Admin Tool Kit Click here and download it now
May 11th, 2012 2:06am
Thanks for that. I didn't realise it reloads settings on opening the package.
Must be a strange example above - where a settings DOES get overwritten when running the package that has a child package. Maybe it's re-opening the package somewhere along the line.
Seems crazy that it doesn't persist on running. If you open it, then modify the config file, then do a full run - why shouldn't it update the value - especially if it's going to load it on opening?
May 11th, 2012 3:07am
It's a bit strange behaviour, but the point is that you have some sort of design time default value.
Let's imagine the following scenario:
You deploy the package to a server. The package has a connectionstring and by design it points to localhost. In other words, if the configuration fails, it will run against the localhost. Your configuration points to server A, so when the package runs
the connectionstring is updated and the package updates server A. After a while, server A is replaced with server B, so you update the configuration.
If the configuration would persist, the default value would be server A, which doesn't exist anymore.
Why does it persist when opening a package in BIDS? I don't know :)MCTS, MCITP - Please mark posts as answered where appropriate.
Free Windows Admin Tool Kit Click here and download it now
May 11th, 2012 3:13am
Firstly, configuration is usually a vital part of the process, so if it fails, the whole package should fail immediately. (Can you configure it to do this?)
Then, I'm not sure I get your scenario: if you've updated the configuration to server B, then the default (design time value) should be updated to server B (run time value) when the configuration is processed.
If the package is run outside of BIDS, then sure - the values shouldn't persist in the package, i.e. the package doesn't get updated/saved each time it is run.
But if it's being run inside BIDS, then you should be able to see the changes made. Ideally a configuration should be a task (don't see why it isn't) that can be run independently, so it you're in design mode (BIDS), the design-time values should be updated.
May 11th, 2012 3:41am
Regarding the failure of configuration: SSIS is made to do a best effort. Meaning, it will try to run no matter what :)
If a configuration fails, it will just take the default values and move on.
Regarding the scenario: when you run the package at the server, the design time value is overwritten at runtime so the connection points to server B. However, if you look at the package definition after the package has run, the design time default will still
be the same. With every run, the configuration overwrites the values, but it is not persisted into the "package code".
So I guess we're on the same page here, it's just a communication failure :)MCTS, MCITP - Please mark posts as answered where appropriate.
Free Windows Admin Tool Kit Click here and download it now
May 11th, 2012 3:48am
Perhaps you were thinking I meant the run-time values should persist in the package when run outside of BIDS. So the server A from the config file should become the design time value - until the second config file is used, when server B becomes the design
time value. That wouldn't be a good idea, agreed.
Anyway, too late for me to ask Microsoft to change it to persist then run
inside BIDS :) I'll have to just get on with using it as is...
May 11th, 2012 4:02am


