Migrating SSIS Packages to Production

  • The packages I migrate to Prod have Sql Server Configuration built in and Delay Validation turned on wherever it is available. The packages know what server to find the configurations by looking at the value in a global variable (ServerName) that I have created.

    It works great from within Visual Studio.

    When migrating to Prod, I encounter 2 issues:

    1) When I build the packages, the ServerName variable and datasources are pointing to Development Servers. When the DBA attempts to set up the sql agent job in Production, the packages display an error because Production does not have visibility to the Development server. Why is it validating this? Isn't this the whole purpose of setting up configurations? How do you get around that.

    2) So, I built the packages changing the server to a server that Production can see. The only server available to me is our Clone server. This server mirrors our Production server and gets refreshed once per day. So, the DBA is able to set up the sql agent job and override the Data Sources. When the job is executing it fails because the Clone server doesn't have the db objects until the next day when it is refreshed. Why is it validating the values that it was built with rather than the values that we have used to override the Data Sources?

    So, to sum it up, the Validation is making things difficult. The configuration works great but the validation defeats its purpose. I must be missing something.

  • Hi Melissa

    Can you please check the protection level of the package... I had similar errors, will post a doc when i get to work which might help

    Cheers

    vani

  • I use Don'tSaveSensitive. I did realize that in this new package that I'm getting ready to deploy, I had the wrong ProtectionLevel. I will change that and retest.

    I have to say though, that with my previous packages, having Don'tSaveSensitive, they still did the validation.

    Another thing is, it seems to me that the only value we should need to override in the sql agent job, is the ServerName. Everything else should derive from this.

  • Hi

    What I usually do is change the package protection - Encrypt sensitive with password and provide a custom password...

    then in the job when configuring the package - i enter this password in the job and it works ok... may be this could help not sure 🙂

    gud luk

  • are you developing on the dev server or on a desktop?

    i ususally develop on the dev server and use "localhost" in my connections...

  • Does your configuration include the connections, or just variables?



    Alvin Ramard
    Memphis PASS Chapter[/url]

    All my SSC forum answers come with a money back guarantee. If you didn't like the answer then I'll gladly refund what you paid for it.

    For best practices on asking questions, please read the following article: Forum Etiquette: How to post data/code on a forum to get the best help[/url]

  • darth vodka (9/21/2010)


    are you developing on the dev server or on a desktop?

    i ususally develop on the dev server and use "localhost" in my connections...

    In my case I develop on a desktop and I use SQL Server aliases to control how it runs. So on my desktop and the dev server I create an alias called MainSQL that points to the dev server, and on the production server I create the alias pointing to the production server. Then I can run the package anywhere and it automatically runs against the correct server.

    I understand that you can do something similar with configurations, but it seemed very complicated compared to using aliases.

  • This would make it easier but we do not have localhost available in Prod

  • my configuration includes the connection strings.

  • Can you please tell me how you set up the alias and if you don't set up configurations how does your package pick it up?

  • MelissaLevitt (10/1/2010)


    my configuration includes the connection strings.

    Are you using a config file, or an environment variable on the server (from which the package variable reads the info)?

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

  • MelissaLevitt (10/1/2010)


    my configuration includes the connection strings.

    What type of configuration are you using? XML, Environment, etc.

    We use an XML file and only choose to save the Connection strings in them (none of the rest of the manager's properties). Then, we alter the XML file as necessary for each environment. Because the XML file is located in the same spot, and we call the XML file when running the package, it makes everything easy as pie.

    Brandie Tarvin, MCITP Database AdministratorLiveJournal Blog: http://brandietarvin.livejournal.com/[/url]On LinkedIn!, Google+, and Twitter.Freelance Writer: ShadowrunLatchkeys: Nevermore, Latchkeys: The Bootleg War, and Latchkeys: Roscoes in the Night are now available on Nook and Kindle.

  • Brandie Tarvin (10/1/2010)


    MelissaLevitt (10/1/2010)


    my configuration includes the connection strings.

    What type of configuration are you using? XML, Environment, etc.

    We use an XML file and only choose to save the Connection strings in them (none of the rest of the manager's properties). Then, we alter the XML file as necessary for each environment. Because the XML file is located in the same spot, and we call the XML file when running the package, it makes everything easy as pie.

    thats exactly how we do it as well.

    Or exactly how I am tying to get everyone to do it anyway.

    ---------------------------------------------------------------------

  • I'm using Sql Server configuration. I am also using a global variable called ServerName which tells the package what server to pick up the configurations from. Maybe this is the problem. I had to do this because when I initially implemented this package, the Production environment did not have Localhost. So, I could not setup configurations based on Localhost but rather a variable that would be set via the Sql Agent Job.

  • MelissaLevitt (10/2/2010)


    I'm using Sql Server configuration. I am also using a global variable called ServerName which tells the package what server to pick up the configurations from. Maybe this is the problem. I had to do this because when I initially implemented this package, the Production environment did not have Localhost. So, I could not setup configurations based on Localhost but rather a variable that would be set via the Sql Agent Job.

    The variable being passed into SSIS is somehow referring you to the wrong server. So, if you pass that in through the Agent Job, then I would start there to verify that the job was properly setup.

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

Viewing 15 posts - 1 through 15 (of 15 total)

You must be logged in to reply to this topic. Login to reply