This project is read-only.

Behavior changes in dtexec in 2008

Topics: Developer Forum, User Forum
Jun 23, 2009 at 9:56 PM

Please understand that I know with some due diligence I could answer these questions myself, but don't have a SQL 2K8 environment set up for testing yet.

There have been major changes in the way dtexec loads design time and run time settings, as discussed here

I've noticed in your current version of source code that there doesn't seem to be any way to control (or REapply) design time config loading (file or SQL), it just happens during pkg load.

1) is this correct?

You then use package.ImportConfigurationFile(configFile); to apply files and p.SetValue(pkgObj, s[1]); to apply direct property values.  No problem. 

2) In 2K8, is there now a method for "reloading" the design times, or does this happen during the "execute" method with no control?

The new microsoft changes actually BREAK functionality when "Using the /ConfigFile option to load run-time configurations for the same property values that are also set by design-time configurations".

Unfortunately, this is MY chosen method of package configuration for many reasons and this breaking change is troubling.   I'm trying to figure out if using dtloggedexec is a way to avoid the "second load" FORCED on us by 2K8!  I couldn't believe some of the design decisions in 2K5 and am now pretty mystified that they've significantly CHANGED functionality without providing a switch to force the old behavior.

3) does dtlogged exec behave in the same way as the 2K8 dtexec when running under the 2k8 dts namespace?

Jul 6, 2009 at 6:35 PM

Hi dwainnew

here's the answer to your points

1) Yes. I'll probably add a switch in order to be able to allow the user to decide whic behavior he prefers to use, but I have to check how this new approach exactly works. I haven't the time to do it yet, since I was commited to deliver the CSV log provider. Anywary, moew in general, DTLoggedExec works in the following way:

- Package gets loaded. During package loading (and this is something internal to the SSIS runtime) the configurations specified in the packages are also loaded
- Configuration specifed in the command-line (/ConfigFile parameter) gets loaded and are applied to the package
- DTLoggedExec command-line Package Paramters (/Param parameter) are applied
- command-line specific values (/Set parameters) are applied
- Package is executed

2) Don't know yet, have to check it. Actually, if you can test it for me, I'll appreciate a lot if you can notify me the results so that I can publish them on the website

3) A part from the changed behaviour reported in the BOL page you mention (, that I have to check, yes, DTLoggedExec and DTExec behave the same in terms of package execution.

Of course, for any other question, just ask!