Showing posts with label ssis. Show all posts
Showing posts with label ssis. Show all posts

Sunday, March 25, 2012

Derived column in SQL Server 2005 SSIS

Hi,

I am trying to upload a csv file into a destination SQL Server table using Data FLow objects in MS SQL Server 2005 SSIS. My destination table X has a date column while my source data file (for which i have a flat file connection) does not have a date column. I created a Derived column for date using the system date function in my Source data object and ran the package but it returned errors. I changed the data type of the derived column but I still get errors.

is there any other way i can get the date on the fly i.e generate a date for the incoming source file and map that (insert into) to the destination table ?

Thanks.

Post your errors here and we can then better help you. Also ensure that you have the correct date types flowing into the given date column.|||

Devived column name - Name for your date field

Devived column - should be <add as new column>

The expression columns should be GETDATE()

On the advanced Editor - Make sure to select the date name to be used in the output columns.

this should work for you.

Hammer.

Thursday, March 22, 2012

Deployment question: SQLDB - SSIS on different boxes with SQL Agent for scheduling

I am interested in how you guys are deploying your packages.
I am running SQL Server Integration Service(SSIS) and SQL Server Database Service (SQLDB) on different boxes. I can't have SSIS installed on SQLDB box because in my prod. environment, the DB box has *just* DB - no services or no other fancy stuff. So far so good.

Now, if I want to schedule the SSIS packages (deployed on MSDB) to run periodically, I need to create an SQL Agent job (or everyone else here is using a Windows scheduler instead?). SQL Agent has dependency on SQLDB and so it goes on the SQLDB box, correct? Can I run job steps to execute SSIS packages via remote SSIS service (on another box)? If not, I cannot separate SSIS and SQLDB on two boxes and have SQL Agent run the packages periodically, right?

What am I missing?

thanks,
Nitesh

Is there a reason you cannot install DB on the IS box? That would be best for your case as I understand it. You could also keep your packages on your IS box then as well.

To answer your question, there is no current IS feature for running packages remotely. Please see this thread:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=18177&SiteID=1

|||

KirkHaselden wrote:

Is there a reason you cannot install DB on the IS box? That would be best for your case as I understand it. You could also keep your packages on your IS box then as well.


There are two reasons:

Hard Reason --> Our production environment does not allow to install *ANYTHING* on the box that runs the database (i.e. SQL DB). This was the main reason we were not using DTS.

Soft Reason --> For deployment, we would like to have separate tiers for DB, app server components (i.e. SS*S), and presentation components (SPS etc). One may argue that SSIS is a component at DB tier and its scaling, clustering etc will be dependent on the DB tier.

KirkHaselden wrote:

To answer your question, there is no current IS feature for running packages remotely. Please see this thread:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=18177&SiteID=1

I guess I did not put the question correctly.
What I want to know is if I can configure SQL Agent running on machineA to execute SSIS packages using the SSIS Service running on machineB. Note that machineA does not have SSIS Service running (only machineB). The packages themselves can be stored locally on machineB, if needed (but I am hopeful that it should not be an issue and msdb of machineA should work just fine).
Thanks,
Nitesh

|||

If a process on machineA calls a package, then it will run a A, so you need IS installed on A. You can load the package from B or wherever, but the package runs on the same machine as the process which called it and hosts it. You would need a layer of abstraction, which is not currently available in IS itself, that is really remote execution.

Simplest method is to have SQLAgent on B, and call the job, since this is just saying start a job, which means the process runs on B.

|||<quote>
Simplest method is to have SQLAgent on B, and call the job, since this is just saying start a job, which means the process runs on B.
</quote>

The problem with having SQLAgent on B is that I will need to have SQLDB also on B (because SQLAgent has a dependency on SQLDB). This defeats the original plan of having SQLDB on machine A and SSIS on machine B separately.|||In my opinion it is the simplest, but not the only way. You can do any form of remote call, such that the server/listener on the remote machine hosts the SSIS process.

You can use any scheduler you like, it is just that SQL Agent can easily be controlled remotely, through T-SQL which most of us are quite happy with already.

I don't see what the issue is with having another SQL instance on the SSIS machine, after all would it not be nice to have a local working store, in fact don't some tasks want a SQL store, and therefore having it locally makes much more sense. I think your network costs could get excessive, just for the sake of keeping things separate. By all means keep server A clean, and have your main data there, but what is the harm in having SQL on server B as well. You like to have separate tiers, but is it so strict you cannot mix applications, should it not be functions really, in which case where is the issue? Having a no SQL and IS on the same machine at all, regardless of the use of SQL seems rather artificial and just making life hard for the sake of it. Offloading IS onto a separate machine makes sens as well for large volumes, to reduce impact on your main production SQL server, but I woudl argue that the IS box should be the controller of the IS based processes, and not the other way around.

Saying all that remote execution would be cool to have too.|||

DarrenSQLIS wrote:

In my opinion it is the simplest, but not the only way. You can do any form of remote call, such that the server/listener on the remote machine hosts the SSIS process.


Unfortunately, my prod environment doesn't allow for the simplest solution, that I would love to have.

DarrenSQLIS wrote:


You can use any scheduler you like, it is just that SQL Agent can easily be controlled remotely, through T-SQL which most of us are quite happy with already.


I would love to use SQL Agent. Since it has a dependency on SQLDB, I cannot have it on SSIS box. If SQL Agent could invoke SSIS remotely, I would have take n that.

DarrenSQLIS wrote:


I don't see what the issue is with having another SQL instance on the SSIS machine, after all would it not be nice to have a local working store, in fact don't some tasks want a SQL store, and therefore having it locally makes much more sense.

Issue is simple - it won't be supported by our database group. Our DB group controlls all the DB instances, and they have nothing at all on those boxes which they support. So, SQLDB on SSIS box won't be supported. I don't want to get calls in the middle of the night for that and neither do I want to start doing backups, maintenance etc.

DarrenSQLIS wrote:


I think your network costs could get excessive, just for the sake of keeping things separate.


I know lot many enterprises that enforce such policy of having clean DB boxes.
I thought that network costs for such configurations will not adversely impact performance too much. Am I wrong?

DarrenSQLIS wrote:


By all means keep server A clean, and have your main data there, but what is the harm in having SQL on server B as well. You like to have separate tiers, but is it so strict you cannot mix applications, should it not be functions really, in which case where is the issue? Having a no SQL and IS on the same machine at all, regardless of the use of SQL seems rather artificial and just making life hard for the sake of it. Offloading IS onto a separate machine makes sens as well for large volumes, to reduce impact on your main production SQL server, but I woudl argue that the IS box should be the controller of the IS based processes, and not the other way around.

Saying all that remote execution would be cool to have too.

Bottomline is -> It is not important what I could do to get around the issue, it is more important that the product should be deployable in a layered/tiered fashion on separate boxes with support for scheduling packages on whatever is the preferred scheduling mechanism (i.e. SQLAgent). Please understand that there exist network deployment scenarios in enterprises that might not work with having a side-kick SQLDB instance on SSIS box.

Thanks for your suggestions though.

Nitesh

|||

Nitesh Ambastha wrote:

Issue is simple - it won't be supported by our database group. Our DB group controlls all the DB instances, and they have nothing at all on those boxes which they support. So, SQLDB on SSIS box won't be supported.


Somewhat of a retorical question or point, but if your DB group does not understand SSIS then they should not allow you to use it. Your use of it could adversely impact the avilability of the pure SQL systems, I would never allow any system to interact with my SQL systems that could have such an impact unless I had sufficient understanding of it. If they did understand it, then what is the problem :) This is my personal point, so no response required, but it seems an artificial rule.

Nitesh Ambastha wrote:


I thought that network costs for such configurations will not adversely impact performance too much. Am I wrong?


I was trying to highlight the time and bandwidth costs. The further away from your data your SSIS is, the slower it will be, although you could solve some of that by spending money on faster links. So for large amounts of data processing it could have an impact since you will be running across the two machines.

Nitesh Ambastha wrote:

...for scheduling packages on whatever is the preferred scheduling mechanism (i.e. SQLAgent).


SQL Agent is my preferred scheduler, and maybe yours too, but many organisations have their own standards. Many houses use IBM/Tivoli for example, and SQLAgent is not required for SSIS. If you would prefer to use it, then yes you are stuck. I think buyng SQL Server for SQLAgent is an overkill, but if you look at that SQL Instance in the same way as you look at MSDE, then it is no big deal. There are plenty of proucts our there that install DB engines. I saw a report that said Informix (I think that was the one) was one of the most widely deployed DBs, and that is because CA shoved it under the covers of ArcServe backup, probably for the scheduling :)

Deployment problems - no components for DataFlow

I’ve created a SSIS package that has 2 tasks. The first is selecting some information from a SQL Server table and the second is exporting this information to a flat file.

I created the package on my desktop client and I am able to run it successfully in Debug mode from my client. The information is selected from the LIVE SQL Server database and the file is created on the LIVE SQL Server.

I have built the package for deployment, copied it to the LIVE SQL Server and have run the manifest file to deploy it.

I’ve logged into the SSIS on the LIVE server and the package is listed there. However when I right click on it and run it I get some error messages indicating that the dataflow tasks have no components, presumably the select statement and the export to the flat file.

It’s as if when I build the package the data components are not being included or when I deploy it on the LIVE server the data components are not being deployed.

Does anyone have suggestions?

Could you report the actual error message you are getting? Empty data flows only generate warnings, not errors.|||

The exact error is:

DocumentL Listing

Validation has started.

Export Document Listing

Validation has started

Warning: The DataFlow task has no components. Add components or remove the task

Validation is completed

Validation has started

Warning: The DataFlow task has no components. Add components or remove the task

...

|||

Rob,

I know about this problem only too well. Are you using a source control system?

-Jamie

|||

We are using Visual source Safe, but I do not believe that it is installed on any of the computers discussed here.

Are you saying that this may be a problem with the Source Safe integration with SQL 2005?

|||

Rob Woods wrote:

We are using Visual source Safe, but I do not believe that it is installed on any of the computers discussed here.

Rob Woods wrote:

So that package that we're talking about. Does it ever get stored in SourceSafe?

Are you saying that this may be a problem with the Source Safe integration with SQL 2005?

Not exactly. There's a problem with all source control systems when used in conjunction with the SSIS Designer - I have seen it happen with SourceSafe and TFS. The SSIS team are aware of it and are investigating. Long answer is that the contents of the data-flow doesn't get serialized correctly into the .dtsx file due to some sort of problem when used with a source control system. Short answer is that there is a bug.

I really should blog this Smile

-Jamie

|||So is there a work around?|||

Rob Woods wrote:

So is there a work around?

Best I can offer is that seeing as you are using a source control system you can go back and find the most recent version that still contains all the components, and redo all of your changes. Not great!

-Jamie

|||

Jamie Thomson wrote:

I really should blog this

And now I have done: http://blogs.conchango.com/jamiethomson/archive/2007/04/24/SSIS_3A00_-Bug-when-using-source-control-systems.aspx

-Jamie

Deployment options help!

Sorry I am a newbie in SSIS.

I have got a small project that requires to feed in a .CSV flat file and load the data into SQL server 2000.

I developed a SSIS package for this and get it working in my computer, but I need to deploy it to customers that they don't have VS 2005 or SSIS installed. May any one of you give me some clues on that?

I played around with the flat file deployment and again it seems only working on my computer as I have everything installed.

Did you read BOL?

http://msdn2.microsoft.com/en-us/library/ms180167.aspx

http://msdn2.microsoft.com/en-us/library/ms137900.aspx

or the SSIS management whitepaper?

http://www.microsoft.com/technet/prodtechnol/sql/2005/mgngssis.mspx

or other sources?

http://www.databasejournal.com/features/mssql/article.php/3600201

http://blogs.conchango.com/jamiethomson/archive/2006/01/23/2702.aspx

http://blogs.conchango.com/jamiethomson/archive/2006/02/20/2902.aspx

I found these by typing "SSIS deployment" into Google. The help is there if you go and look for it.

-Jamie

Deployment Of SSIS With Config Files


I went through other threads and links on this subject. Still one thing which concerns me is the config files.

My current folder path is C:\Karunakaran\folder1\folder2\

Under folder2 I have the following files

4 dtsx files
1 .database file
1 .dtproj file
1 .dtproj.user file
1 .sln file
1 .suo file

Config folder ( C:\Karunakaran\folder1\folder2\Config\)
common.dtsConfig
oracle.dtsConfig

Based on some of the threads, when I enabled package configuration, I changed the path from
C:\Karunakaran\folder1\folder2\Config\common.dtsconfig -> common.dtsconfig

Once I did this, when I open the project I get a dozen of warning similar to the one below

Warning loading <package1>.dtsx: Failed to load at least one of the configuration entries for the package. Check configurations entries and previous warnings to see descriptions of which configuration failed.

What am I doing wrong here? If I have to deploy this to another box, what should I do to ensure that nothing breaks once its copied / installed?

Thanks

wouldn't you need \config\common.dtsconfig ? (since it isn't in the root folder?)|||You should always use absolute paths. Always. With that said, the best way to make the path portable is to use environment variables to store the base path. Then you can use the environment variable in the package configurations dialog to specify where to store the file.|||

EWisdahl wrote:

wouldn't you need \config\common.dtsconfig ? (since it isn't in the root folder?)

I did tried that earlier, when I give \Config\Common.dtsConfig i was getting the following error.

ADDITIONAL INFORMATION:
Could not find a part of the path 'C:\Config\Common.dtsConfig'. (mscorlib)

Thanks

|||

Phil Brammer wrote:

the best way to make the path portable is to use environment variables to store the base path. Then you can use the environment variable in the package configurations dialog to specify where to store the file.

I dont think Sys Admin will allow the usage of environment variables, looks like absolute path is the only way for me.
Looks like Microsoft should do something about the config files issues.

Thanks|||I'm not sure there are any issues. Besides, you can always use SQL Server based configs.

Using relative paths has a whole host of problems, when considering, depending on where dtexec is executed from, the root path could be different that what you are expecting.|||


But this also does not give me flexibility of where I want to store my config file.
The other problem I have noticed is that I cannot use one single config file for all my packages, causing a maintanence issue.

I have not tried Sql Server based config, let me try it and see.

Thanks

|||You can use one config file for numerous packages. No problem.|||I prefer SQL Server configs, for exactly the reasons you are describing. The only catch I have found with them is setting the initial connection to the database that stores the configurations. I like using a single environment variable to store that connect string, but you can also use the connection switch of DTEXEC to set it.|||

Phil Brammer wrote:

You can use one config file for numerous packages. No problem.

I'm not able to.

I can do that, ONLY if all my packages have all the variables, connection managers defined in the config file, else it throws errors / warnings whenever I open up the package.

Thanks|||There have been a few posts on this recently. You can create all your connection managers in every package (if you don't use one in the package, it doesn't cause any problems) or you can set variables through the configuration, and set the connections based on expressions that use the variables.|||I going to try with both. But I think this looks more a work around.
I hope MS address this issue.

Thanks|||

Karunakaran wrote:

I going to try with both. But I think this looks more a work around.
I hope MS address this issue.

Thanks

No, I'd consider this "best practices."

If you feel, though, that this is a bug, then please post a submission on the Connect site: http://connect.microsoft.com/sqlserver/feedback

|||I'm not sure if this is a bug,but I'm sure this flexibility is required, especially if there are multiple packages, and when developer has no access to the prod env.

Thanks
|||

With regards to best practice:

I can't see how to use configuration in the case of branching using source control without manually changing the path for every branch.

And even worse if the files are checked out to different folders then the config will not work with an absolute path.

Storing configuration on the SQL server would also be difficult to use when using source control especially if you are working on local databases.

Do any of you have a good solution to using SSIS with source control and branching?

Wednesday, March 21, 2012

Deployment and Configuration

Hi:

I have a SSIS package on my local machine, and would like to deploy it to DEV server. Which files should i be moving to the SQL DEV Server? and where? How do I modify connection managers or is there a way to do that from the Management Studio or some other way? Thanks and I would definitely appreciate some prompt advise.

Someone will provide more information, I'm sure, but have you searched this forum for "deploy"?|||

Yes, I have checked out some posts on Deployment, but havent ran into anything standard. There seems to be more than one way of deploying. I would like to follow best practices. Thanks.

|||That's the beauty of SSIS. There are many ways to accomplish one task. The "best practice" is usually best determined on your own so that it fits your way of life. We each have our own requirements/standards so what my best practices are may not be Jamie's, or Rafael's, or.....|||

I prefer to have my packages as File system files (.dtsx); then all I have to do is to move (copy the files) them into a folder in the server. I use SQL Server table based package configurations to change connection strings at run time (and any other required property). I know there is a Deployment wizard in BIDS but I have never looked into that; so you do the research. Some times I use the SET option in the execution command line to override properties in the packages while testing.

As Phil points out; the best practice sometimes depends in your preferences, IT standards, etc....

|||

Lets say I would like to use the "copy over the files" method. What files am I moving over? and where on the server? Also for changing connection strings, how do i set the properties? Where? Thanks.

|||

Only the .dtsx files are required. In case you are using package configurations based on a XML file; you need to copy and secure it as appropriate. You choose the location; just keep in mind that that location needs to be accessible to the user running the packages.

To set connection strings; you can use package configurations; I use a combination of XML file to set the connection string of my SQL server based configuration table. If you search for 'Package configurations' you will find a lot of info. Jamie Thomson's blog, http://www.sqlis.com/ and BOL have some good info.

|||

The package I have will be scheduled daily, although, the connection strings config is only meant for Deployment Process, because the DTSX has to go thru DEV, QA, BETA, and onwards to PROD. Thanks.

|||

MA2005 wrote:

The package I have will be scheduled daily, although, the connection strings config is only meant for Deployment Process, because the DTSX has to go thru DEV, QA, BETA, and onwards to PROD. Thanks.

Your scenario is a very common one. SQL Server agent will be your best bet for scheduling your packages. I too, like Rafael, prefer to store my packages in the file system, versus storing them in MSDB.|||

If the only thing that needs to be changed/configured is a single connection string, and you have only one package (no parent package calling child packages)...you may want to use the SET option of the package execution command line instead of package configurations. I don’t like that approach when I have many packages that need to be configured in the same way; as I have to maintain every command line, as opposed of maintaining an entry in a config file/table

Monday, March 19, 2012

Deploying SSIS pkgs

Hi,

I have some questions.

Regarding SQL Server deployment, it says to use this option if sharing packages between servers. Does this mean sharing packages between development, test, and production environments? Or just sharing among production servers?

That is, I am trying to determine if I should deploy my packages on SQL Server, or just store them on the local file system. These packages will NOT be used on any other production server. So should I just keep them on the file system?

Another question. I see that I have a package stored in the "sysdtspackages90" table in the msdb database. Since I have not done any SQL Server deployment yet, I don't understand how this particular package ended up in this table. Is it OK to remove? I think this is a previous version of a package that I have since re-written. Are there any dependencies on this "sysdtspackages90" table that I should be aware of?

Thanks!

Sharing between servers, in this case, refers to sharing between production servers. So you're probably fine sticking with the file system.

Not 100% sure about dependencies on the sysdtspackages90, but if you remove it by connecting to the Integration Service in SSMS, it should be fine.

|||

Thanks for your reply!

Is there any advantage whatsoever for deploying to SQL Server if you are not sharing packages?

Also, where do I delete the package stored in the "syspackages90" (or whatever it's called) table... I have another package by the very same name stored in the file system. But I don't think they are the same package. Is that possible?

|||

Opinion varies - personally I prefer the file system, because I find it easier to deploy there.

To delete the package, connect SSMS to the Integration Services on the server you are working on. It's one of the Server Type options when you choose File..Connect Object Explorer. You should be able to browse to the package from there.

|||As John indicates, opinions do vary. I for one love deploying to MSDB because I get to use SQL Server roles and security to control access to my packages and in my packages. So once I set up a user account in a connection inside of a package, I don't have to worry about SSIS stripping the password off of that connection when I deploy. A nice feature, I should say, and probably the method that was envisioned as being "standard." (I don't know that for sure, it's just a guess, what with all of the integration that MS tries to achieve.)|||

Thank you for your reply. Yes, that makes sense.

However, I am a little nervous about deploying to SQL Server - for one, I've never done it. Are there any caveats I need to be aware of? For example, what if I need to change something? Do I need to "re-deploy" if any of the packages change? Or are the changes saved to SQL Server automatically when changes to the packages are saved?

Also, what is this "magic folder" (the folder where dependent files go) Is there a "standard" place for this folder? My book on SSIS mentions it, but does not indicate where to put it.

One more thing, I am clueless about configuration files. Are these important? I realize this is a vague question. But the packages I am working on now are tested and working... they are not going to be migrated anywhere. So should I bother with a configuration file? That is, when would I need a configuration file?

Thanks much!

|||I will try this, thanks

Deploying SSIS pkgs

Hi,

I have some questions.

Regarding SQL Server deployment, it says to use this option if sharing packages between servers. Does this mean sharing packages between development, test, and production environments? Or just sharing among production servers?

That is, I am trying to determine if I should deploy my packages on SQL Server, or just store them on the local file system. These packages will NOT be used on any other production server. So should I just keep them on the file system?

Another question. I see that I have a package stored in the "sysdtspackages90" table in the msdb database. Since I have not done any SQL Server deployment yet, I don't understand how this particular package ended up in this table. Is it OK to remove? I think this is a previous version of a package that I have since re-written. Are there any dependencies on this "sysdtspackages90" table that I should be aware of?

Thanks!

Sharing between servers, in this case, refers to sharing between production servers. So you're probably fine sticking with the file system.

Not 100% sure about dependencies on the sysdtspackages90, but if you remove it by connecting to the Integration Service in SSMS, it should be fine.

|||

Thanks for your reply!

Is there any advantage whatsoever for deploying to SQL Server if you are not sharing packages?

Also, where do I delete the package stored in the "syspackages90" (or whatever it's called) table... I have another package by the very same name stored in the file system. But I don't think they are the same package. Is that possible?

|||

Opinion varies - personally I prefer the file system, because I find it easier to deploy there.

To delete the package, connect SSMS to the Integration Services on the server you are working on. It's one of the Server Type options when you choose File..Connect Object Explorer. You should be able to browse to the package from there.

|||As John indicates, opinions do vary. I for one love deploying to MSDB because I get to use SQL Server roles and security to control access to my packages and in my packages. So once I set up a user account in a connection inside of a package, I don't have to worry about SSIS stripping the password off of that connection when I deploy. A nice feature, I should say, and probably the method that was envisioned as being "standard." (I don't know that for sure, it's just a guess, what with all of the integration that MS tries to achieve.)|||

Thank you for your reply. Yes, that makes sense.

However, I am a little nervous about deploying to SQL Server - for one, I've never done it. Are there any caveats I need to be aware of? For example, what if I need to change something? Do I need to "re-deploy" if any of the packages change? Or are the changes saved to SQL Server automatically when changes to the packages are saved?

Also, what is this "magic folder" (the folder where dependent files go) Is there a "standard" place for this folder? My book on SSIS mentions it, but does not indicate where to put it.

One more thing, I am clueless about configuration files. Are these important? I realize this is a vague question. But the packages I am working on now are tested and working... they are not going to be migrated anywhere. So should I bother with a configuration file? That is, when would I need a configuration file?

Thanks much!

|||I will try this, thanks

Deploying SSIS Package

This maybe simple question but I can not seem to figure it out. If you use the deployment utility to deploy your package how do you specify a different SSIS directory to install it to. For instance when I'm in SSIS under stored packages > MSDB > I created a folder called package 1. I want to install to that folder. The only way I can do it is to manually import the package from SSIS.Try File->"Save Copy of xxxx as" when in a package.

That's another option for ya.|||

I guess it is a known limitation:

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=213604&SiteID=1

deploying SSIS

Hi

We are storing our packages in File System.

Process:

BIDS->Right Click on soln file ->properties->Deployment Utility->DeploymentOutputPath--Bin\Deployment

So it creates a folder with the project name and all the packages in C:\Program Files\Microsoft SQL Server\90\DTS\Packages\Project

While executing the package on Server what should be thesource of the Package? I mean should it refer to the solution file->..dtsx

or

Bin\Deployment->packages

or

C:\Program Files\Microsoft SQL Server\90\DTS\Packages\Project

Moving from .NET Framework Data Access and Storage...|||

Paarul wrote:

Hi

We are storing our packages in File System.

Process:

BIDS->Right Click on soln file ->properties->Deployment Utility->DeploymentOutputPath--Bin\Deployment

So it creates a folder with the project name and all the packages in C:\Program Files\Microsoft SQL Server\90\DTS\Packages\Project

While executing the package on Server what should be thesource of the Package? I mean should it refer to the solution file->..dtsx

or

Bin\Deployment->packages

or

C:\Program Files\Microsoft SQL Server\90\DTS\Packages\Project

You need to point to the folder holding the .dtsx file in the server no matter hoe you deploy it.

Deploying SSAS 2005 project in Server

Hi,

I Need to deploy all the three SSIS , SSAS and SSRS 2005 in One server. will it be fine to keep like this.

I have a doubt like, will it effect performance because SSIS have incremental load, SSAS also having incremental load then what will happen while accessing the reports while incremental process is going on

Can you please help me out

Thanks

Dinesh.

Hello Dinesh,

We installed SSIS, SSAS, SSRS and SharePoint Portal Server 2007 on one machine.

The system performs good with 4 GB of internal memory.

Later on the best installation is to have a farm with multiple servers, but in the beginning you can use just one.

Regards

Hessel

|||

Hi Dinesh Murali,

Incremental load is helpful indeed. But in general the following might turn into bottleneck if you do not have:

1) Hardware configuration (RAM, IO Controllers) required for the server to run at expected speed.

2) Network bandwidth for the Data transfer (Incase of SSIS and SSRS).

3) Try a quick test using task manager determine the following during peak time as well as off-peak time:

a) Memory consumed by Sql Server Manament Studio with all services (SSRS, SSIS, SSAS) enabled.

b) Time taken to load the report, complete the execution of SSIS Packages, or Processing a Cube or SSAS database.

Thanks

Subhash Subramanyam

Friday, March 9, 2012

Deploying development packages to production

We have a system here where we develop SSIS packages on a development server. I am trying to figure out the cleanest way to promote these changes to a production server where stored procedures/tables that are used in the package are not deployed yet.

When I switch the connection in the package to the production server there are alot of objects in the package that are "invalidated" because they are trying to verify existence of tables/columns. One example is outputing the results of a query to a text file. The text file destination gets a red X on it because it cant grab the columns from the source query (because that stored procedure doesnt exist yet)

Is there a best practices or something on how to deploy packages to a production system? I have tried turning off "ValidateExternalMetaData" with no success.

Thanks!

I think you need to read up on configurations. Configurations allow you to change all sorts of properties/variables external to the ssis package itself.

-Try searching 'configurations' on this forum

-Read books on-line

-Or check many articles on Jamie Thompson's website

http://blogs.conchango.com/jamiethomson/

Hope this helps.

|||

CraigL77 wrote:

We have a system here where we develop SSIS packages on a development server. I am trying to figure out the cleanest way to promote these changes to a production server where stored procedures/tables that are used in the package are not deployed yet.

When I switch the connection in the package to the production server there are alot of objects in the package that are "invalidated" because they are trying to verify existence of tables/columns. One example is outputing the results of a query to a text file. The text file destination gets a red X on it because it cant grab the columns from the source query (because that stored procedure doesnt exist yet)

Is there a best practices or something on how to deploy packages to a production system? I have tried turning off "ValidateExternalMetaData" with no success.

Thanks!

If you use configurations (as Anthony suggested), you can set different connection strings for different environments. However, for the packages to run (and validate) in the production environment, the stored procs will have to be present.

If you change the connection strings in the package, you can ignore the validation errors and copy the packages to the server. They should run successfully as soon as the procs are created.

Saturday, February 25, 2012

Deploy to SQL Server or flat files

I'm in a quandry about how to deploy my SSIS packages and was hoping someone has some experience of the same.

There are 2 approaches: 1) Deploy to SQL Server. 2) Deploy to .dtsx files.

I suppose the default approach is to deploy to SQL Server however I have a problem with that. My packages contain Execute Package Tasks which use different connection managers depending on whether the package that they are calling is on SQL Server or in a .dtsx file.
That means that my packages have to contain 2 connection managers for each Execute Package Task - one for pointing to a package deployed to SQL Server and one for a package that is still in development and hence sitting in a .dtsx file. There is also the overhead of managing the deployment to make sure my Execute Package Tasks are pointing to the same place.

For this reason I am contemplating just leaving my packages as .dtsx files even when they are deployed to a production server.

Has anyone else encountered this problem? How have you dealt with it?
Has anyone found a distinct advantage of one approach over another?

Any comments welcome.

Thanks
Jamie

On a side note, what is the performance impact on FF deployment compared to DB?

|||Here were the responses I got from project REAL team. Wish they'd throw their stuff on the web for everyone to see how they did it.


From: Gary Cabana
Sent: Tuesday, September 06, 2005 04:13
To: Grant Dickinson
Subject:

Grant, for project REAL, you have one master workflow package that calls execute package tasks with file based connections, correct? How does this work for migrating the code from a development machine to the production box? In particular, when the package starts, are you using a configuration to set the connection string for the execute packages’ file based connection, or is it implemented such that the file locations of the packages being called cannot change?

thanks



From: Grant Dickinson
Sent: Tuesday, September 06, 2005 12:33 PM
To: Gary Cabana
Subject: RE:

Hi Gary

We originally had the file locations in the config as you have mentioned, but we realised that in our case we could use a convention of always having the files in the same place, eg c:\etl - thus the configs were redundant and I removed them. If you cannot use such a convention then the config worked fine and I'd recommend that - remember to secure the folder containing the packages if need be. I cannot comment on any experiences using the SQL store for the packages since we have not used that option in REAL.

Kind Regards

Grant Dickinson


From: Gary Cabana
Sent: Tuesday, July 26, 2005 13:44
To: Grant Dickinson
Subject: RE: Project REAL questions

One more question:

Did you use multiple packages or combine all the ETL into one giant package with multiple data flows? I’d like to use multiple packages so that development can be done in parallel.

If multiple packages, did you do the execute package in sql server or execute in the file system and why?

From: Grant Dickinson
Sent: Tuesday, July 26, 2005 5:09 PM
To: Gary Cabana
Subject: RE: Project REAL questions

Multiple - as with any code project I prefer modularity. As you say, this makes team development easier too. Currently I am using the file system, no particular reason except that it was easier since the VS project is file-based, as is SourceSafe. Let me know if you find any interesting reasons to use SQL instead.


From: Gary Cabana
Sent: Tuesday, July 26, 2005 5:13 PM
To: 'Grant Dickinson'
Subject: RE: Project REAL questions

The dev group said performance was the same.

One thing I don’t like about the file approach is that you need to create a new connection for each execute package you’re executing. Although, the current CTP 15 has the same problem for creating a new connection for each package that resides in the sql server (although Kirk said it’s a bug and I submitted it).

thanks

|||Gary,
That's superb stuff, thanks very much. If its good enough for Project REAL then its good enough for me!!

-Jamie|||The performance impact should be minimum.

The location of the package only affects the load time (i.e.
load from file vs. establish SQL connection and load from SQL table),
it does not matter during execution. For typical packages that run
several minutes to hours, the time to read package from file or
from database (less than a second, unless the server is really
overloaded) should not impact anything.

I think the decision should be driven by administative habits
and convinience. E.g. many people prefer SQL deployment
since they already backup SQL database regularly, and thus
get SSIS package backup for free. But many people backup
file system as well and prefer simplicity of file deployment.|||Package Access is another consideration when deciding the deployment option. Once Package is deployed on Sql server, User Access to the package is controlled at the database level. Whereas in the oher case its filesystem level.

For a scenario where many users are executing a package, having it on a centralized SQL server is just more simple. Esp. in case SSIS package connects to multiple databases. Its more secure rather than having connections set in a package saved on file system.|||

Suresh Bansal wrote:

Package Access is another consideration when deciding the deployment option. Once Package is deployed on Sql server, User Access to the package is controlled at the database level. Whereas in the oher case its filesystem level.

For a scenario where many users are executing a package, having it on a centralized SQL server is just more simple. Esp. in case SSIS package connects to multiple databases. Its more secure rather than having connections set in a package saved on file system.

All good reasons. However the issue regarding deployment that I mentioned earlier swings it.

Thanks all.

-Jamie

deploy SSIS package to server

Ok, I created SSIS packages on my local box. All of my packages are using config files for the db connections and other configurations that'll be changed per environment. My question is how do I deploy the .dstx file and the associated config file to the servers?

Right now I'm running the packages in BIDS as I create them. I now want to run them on an actual server

One way is to map a drive (or just open a remote folder) to the server, and then copy the files there.

I suggest you create a folder on the server to hold the SSIS stuff. From there you can create subfolders if you desire.|||

would I need to create folders for each package or no? How will the SSIS package now what config file is assocaited with it?

|||

IGotyourdotnet wrote:

would I need to create folders for each package or no? How will the SSIS package now what config file is assocaited with it?

You don't need to create a folder for each package, though that decision is up to you.

In the package (control flow, right click, package configurations), you specify which configuration file to use.

Deploy SSIS package to production which has a connection to oracle databse

Hi There,

In SSIS package development environment, I was able to connect to an oracle database and pull data into my sql server database. I installed the client tools for oracle and I put an entry into the tnsnames.ora and I was able to connect.

But in production environment, if I deploy the package on sql server, I was wondering if I had to do the same job of downloading the oracle client tools onto my production machine --which creates a tnsnames.ora file to it default location and then edit it with tthe tns entry-- or is there a better way to do this--avoiding the download?

Can somebody plzz help me ?

Thanks.

You need to install the Oracle Client (9i) or (10) on the actual SQL Server box.

This is for the network libraries. There is a special build of the client for Windows 2003 Server if you go to Oracles site and have a look around

cheers Dave

|||

You do need to repeat the same steps like you've done in your development environment: install Oracle client and adjust tnsnames.ora file.

There are 2 more options:

1) There is another "lighter" option - Oracle Instant Client:

http://www.oracle.com/technology/tech/oci/instantclient//index.html

2) The Oracle Data Provider for .NET (ODP.NET) . It has Oracle client bundled with it.

http://www.oracle.com/technology/tech/windows/odpnet/index.html

Regards,
Yitzhak

|||

Hi Yitzhak,

If I intstall the lighter option, where do I adjust the tnsnames.ora file? I don't find the file after installation. Do I need to manually create it and put it in a specific location? Can you please reply back?

Thanks.

Sam.

|||

Also, which of the instant client packages should I download? There are 5 downloads for install client for 64bit.

Thanks.

Sam.

|||

Oracle has Instant Client FAQ page:

http://www.oracle.com/technology/tech/oci/instantclient/ic-faq.html#A5028

How do I ensure that my "tnsnames.ora" file is being used in Instant Client?
Always set the TNS_ADMIN environment variable or registry setting to the full path of the tnsnames.ora file. This practice will ensure that you are using the appropriate tnsnames.ora for your application when running with Instant Client.

Regards,
Yitzhak

|||

Because you are using MS SQL Server 2005 SSIS on Windows OS, just 2 options are applicable for you:

Windows Itanium 64-bit 10.2.0.2|||

HiYitzhak,

Can you please bare with me? I downloaded the windows x86 64 bit install client and this is what I did.

I unzipped the folder contents to c:install\instantclient

I created a tnsnames.ora file with the tns entry under 'C:\'.

I added the full path 'c:install\instantclient\' to the path environment variable

I also added a tns_admin environment variable giving it a value 'C:\tnsnames.ora'.

Now I test executing the package using dtexec and I still can't connect to the oracle database. It still gives me an error 'Client and networking components not installed. Am I missing smth?

Can you please help me?

Thanks.

|||

There is a command line tnsping.exe Oracle utility to check both client installation and tnsnames.ora settings.

You can try to launch it at the command prompt:

c:\>tnsping oracle-instance-name

Regards,
Yitzhak

Friday, February 24, 2012

DEPLOY packages from Server A to Server B.

I developed some SSIS packages in SQL2005.When developing , The connect is set with Server A.

And i know ,later we are supposed to move to SERVER B.but B's IP and machine name are both unknown for developers.

The deployment guys will be cahrge in that.

what's easiest way for me to tell the deployment guy to add a connection to SERVER B after the SSIS packages have been developed?

any suggestion? Thanks in advance.

Use package configurations to store the data that can change (database connection strings, etc...)|||

HI phil:

yes , i tried this way.

In SERVER B ,imported .dtsx file , then changed the connection value with B server in .dtsconfig file, and ran the package, i found the package still affect the A server.

what' s wrong with my steps?

|||Do you have the ConnectionString property in the .dtsconfig file? This is what you should change.|||

Hi Phil:

Please take a look at the following content in my configure file(sorry for too much lines),could u tell me where to modify?:

Thank u very much

<?xml version="1.0"?><DTSConfiguration><DTSConfigurationHeading><DTSConfigurationFileInfo GeneratedBy="ASIAPACIFIC\daij" GeneratedFromPackageName="Package" GeneratedFromPackageID="{B780B7CC-3E98-4F5D-AF9A-E70F262B6FEA}" GeneratedDate="2007-3-4 18:55:47"/></DTSConfigurationHeading><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[ConnectionString]" ValueType="String"><ConfiguredValue>Data Source=SCN4685;User ID=sa;Initial Catalog=DemoDB0;</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[Description]" ValueType="String"><ConfiguredValue></ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[InitialCatalog]" ValueType="String"><ConfiguredValue>DemoDB0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[Name]" ValueType="String"><ConfiguredValue>SCN4685.DemoDB0.sa</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[Password]" ValueType="String"><ConfiguredValue></ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[ProtectionLevel]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[RetainSameConnection]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[ServerName]" ValueType="String"><ConfiguredValue>SCN4685</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[UserName]" ValueType="String"><ConfiguredValue>sa</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[CertificateContext]" ValueType="Int64"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[CheckpointFileName]" ValueType="String"><ConfiguredValue></ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[CheckpointUsage]" ValueType="Int32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[CheckSignatureOnLoad]" ValueType="Boolean"><ConfiguredValue>-1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[CreationDate]" ValueType="DateTime"><ConfiguredValue>3/4/2007 5:32:13 PM</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[CreatorComputerName]" ValueType="String"><ConfiguredValue>SCN4685</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[CreatorName]" ValueType="String"><ConfiguredValue>ASIAPACIFIC\daij</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[DelayValidation]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[Description]" ValueType="String"><ConfiguredValue></ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[Disable]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[DisableEventHandlers]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[EncryptCheckpoints]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[FailPackageOnFailure]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[FailParentOnFailure]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[ForcedExecutionValue]" ValueType="Int32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[ForceExecutionResult]" ValueType="Int32"><ConfiguredValue>-1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[ForceExecutionValue]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[InteractiveMode]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[IsolationLevel]" ValueType="Int32"><ConfiguredValue>1048576</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[LocaleID]" ValueType="Int32"><ConfiguredValue>2052</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[LoggingMode]" ValueType="Int32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[MaxConcurrentExecutables]" ValueType="Int32"><ConfiguredValue>-1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[MaximumErrorCount]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[Name]" ValueType="String"><ConfiguredValue>Package</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[OfflineMode]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[PackagePassword]" ValueType="String"><ConfiguredValue></ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[PackagePriorityClass]" ValueType="Int32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[PackageType]" ValueType="Int32"><ConfiguredValue>5</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[ProtectionLevel]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[SaveCheckpoints]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[SQLFolder]" ValueType="String"><ConfiguredValue>\</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[SuppressConfigurationWarnings]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[TransactionOption]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[UpdateObjects]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[UpdatePackage]" ValueType="Boolean"><ConfiguredValue>-1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[VersionBuild]" ValueType="Int32"><ConfiguredValue>7</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[VersionComments]" ValueType="String"><ConfiguredValue></ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[VersionMajor]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[VersionMinor]" ValueType="Int32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[BypassPrepare]" ValueType="Boolean"><ConfiguredValue>-1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[CodePage]" ValueType="UInt32"><ConfiguredValue>1252</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[Connection]" ValueType="String"><ConfiguredValue>SCN4685.DemoDB0.sa</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[DelayValidation]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[Description]" ValueType="String"><ConfiguredValue>Execute SQL Task</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[Disable]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[DisableEventHandlers]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[FailPackageOnFailure]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[FailParentOnFailure]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[ForcedExecutionValue]" ValueType="Int32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[ForceExecutionResult]" ValueType="Int32"><ConfiguredValue>-1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[ForceExecutionValue]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[IsolationLevel]" ValueType="Int32"><ConfiguredValue>1048576</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[IsStoredProcedure]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[LocaleID]" ValueType="Int32"><ConfiguredValue>2052</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[LoggingMode]" ValueType="Int32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[MaximumErrorCount]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[Name]" ValueType="String"><ConfiguredValue>Execute SQL Task</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[ResultSetType]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[SqlStatementSource]" ValueType="String"><ConfiguredValue>usp_insertSSISLOG</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[SqlStatementSourceType]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[TimeOut]" ValueType="UInt32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[TransactionOption]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration></DTSConfiguration>

|||This is the only line you should have in your configuration file for connections: (The ConnectionString property)

<Configuration

ConfiguredType="Property"

Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[ConnectionString]"

ValueType="String"><ConfiguredValue>Data Source=SCN4685;User

ID=sa;Initial

Catalog=DemoDB0;</ConfiguredValue></Configuration>

But, this seems to be using an ODBC connection. So, that means the ODBC connection has to change to point to the new database, OR, you have to change the "Data Source=XXXXX" parameter in the above line to point to the different ODBC connection. (Or Oracle connection, whatever it may be.)|||

Anyway,many many thanks

|||

Hahhahhha~~~~

Sometimes it‘s really weird!
2 whole days, I can’t figure out how to change the connection when deploying SSIS to another Server.
Today, I was so disappointed that I haven’t got the right way to work it round.
Before the shift is off, I fall a snap. And after snap, I used the XML spy to modify the configure file with password adding.
Hah~~it works!
I still wonder why the password is blank when we enabled the configure file option.
Here are my tips to change connections when deploying to Pro environment.

No need to change this:
<Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[ConnectionString]" ValueType="String"><ConfiguredValue>Data Source=SCN4685;User ID=sa;Initial Catalog=DemoDB0;Persist Security Info=True;</ConfiguredValue></Configuration>


But we have to change these property’s value:
InitialCatalog:
<Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[InitialCatalog]" ValueType="String"><ConfiguredValue>DemoDB1</ConfiguredValue></Configuration>
Password(what is blank at first):
<Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[Password]" ValueType="String"><ConfiguredValue>XXXXXX</ConfiguredValue></Configuration>
Servername:
<Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[ServerName]" ValueType="String"><ConfiguredValue>SCN4685</ConfiguredValue></Configuration>

Gosh~~thanks.
It really works.

DEPLOY packages from Server A to Server B.

I developed some SSIS packages in SQL2005.When developing , The connect is set with Server A.

And i know ,later we are supposed to move to SERVER B.but B's IP and machine name are both unknown for developers.

The deployment guys will be cahrge in that.

what's easiest way for me to tell the deployment guy to add a connection to SERVER B after the SSIS packages have been developed?

any suggestion? Thanks in advance.

Use package configurations to store the data that can change (database connection strings, etc...)|||

HI phil:

yes , i tried this way.

In SERVER B ,imported .dtsx file , then changed the connection value with B server in .dtsconfig file, and ran the package, i found the package still affect the A server.

what' s wrong with my steps?

|||Do you have the ConnectionString property in the .dtsconfig file? This is what you should change.|||

Hi Phil:

Please take a look at the following content in my configure file(sorry for too much lines),could u tell me where to modify?:

Thank u very much

<?xml version="1.0"?><DTSConfiguration><DTSConfigurationHeading><DTSConfigurationFileInfo GeneratedBy="ASIAPACIFIC\daij" GeneratedFromPackageName="Package" GeneratedFromPackageID="{B780B7CC-3E98-4F5D-AF9A-E70F262B6FEA}" GeneratedDate="2007-3-4 18:55:47"/></DTSConfigurationHeading><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[ConnectionString]" ValueType="String"><ConfiguredValue>Data Source=SCN4685;User ID=sa;Initial Catalog=DemoDB0;</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[Description]" ValueType="String"><ConfiguredValue></ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[InitialCatalog]" ValueType="String"><ConfiguredValue>DemoDB0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[Name]" ValueType="String"><ConfiguredValue>SCN4685.DemoDB0.sa</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[Password]" ValueType="String"><ConfiguredValue></ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[ProtectionLevel]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[RetainSameConnection]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[ServerName]" ValueType="String"><ConfiguredValue>SCN4685</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[UserName]" ValueType="String"><ConfiguredValue>sa</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[CertificateContext]" ValueType="Int64"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[CheckpointFileName]" ValueType="String"><ConfiguredValue></ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[CheckpointUsage]" ValueType="Int32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[CheckSignatureOnLoad]" ValueType="Boolean"><ConfiguredValue>-1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[CreationDate]" ValueType="DateTime"><ConfiguredValue>3/4/2007 5:32:13 PM</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[CreatorComputerName]" ValueType="String"><ConfiguredValue>SCN4685</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[CreatorName]" ValueType="String"><ConfiguredValue>ASIAPACIFIC\daij</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[DelayValidation]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[Description]" ValueType="String"><ConfiguredValue></ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[Disable]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[DisableEventHandlers]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[EncryptCheckpoints]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[FailPackageOnFailure]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[FailParentOnFailure]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[ForcedExecutionValue]" ValueType="Int32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[ForceExecutionResult]" ValueType="Int32"><ConfiguredValue>-1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[ForceExecutionValue]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[InteractiveMode]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[IsolationLevel]" ValueType="Int32"><ConfiguredValue>1048576</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[LocaleID]" ValueType="Int32"><ConfiguredValue>2052</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[LoggingMode]" ValueType="Int32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[MaxConcurrentExecutables]" ValueType="Int32"><ConfiguredValue>-1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[MaximumErrorCount]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[Name]" ValueType="String"><ConfiguredValue>Package</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[OfflineMode]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[PackagePassword]" ValueType="String"><ConfiguredValue></ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[PackagePriorityClass]" ValueType="Int32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[PackageType]" ValueType="Int32"><ConfiguredValue>5</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[ProtectionLevel]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[SaveCheckpoints]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[SQLFolder]" ValueType="String"><ConfiguredValue>\</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[SuppressConfigurationWarnings]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[TransactionOption]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[UpdateObjects]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[UpdatePackage]" ValueType="Boolean"><ConfiguredValue>-1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[VersionBuild]" ValueType="Int32"><ConfiguredValue>7</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[VersionComments]" ValueType="String"><ConfiguredValue></ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[VersionMajor]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package.Properties[VersionMinor]" ValueType="Int32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[BypassPrepare]" ValueType="Boolean"><ConfiguredValue>-1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[CodePage]" ValueType="UInt32"><ConfiguredValue>1252</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[Connection]" ValueType="String"><ConfiguredValue>SCN4685.DemoDB0.sa</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[DelayValidation]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[Description]" ValueType="String"><ConfiguredValue>Execute SQL Task</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[Disable]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[DisableEventHandlers]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[FailPackageOnFailure]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[FailParentOnFailure]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[ForcedExecutionValue]" ValueType="Int32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[ForceExecutionResult]" ValueType="Int32"><ConfiguredValue>-1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[ForceExecutionValue]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[IsolationLevel]" ValueType="Int32"><ConfiguredValue>1048576</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[IsStoredProcedure]" ValueType="Boolean"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[LocaleID]" ValueType="Int32"><ConfiguredValue>2052</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[LoggingMode]" ValueType="Int32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[MaximumErrorCount]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[Name]" ValueType="String"><ConfiguredValue>Execute SQL Task</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[ResultSetType]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[SqlStatementSource]" ValueType="String"><ConfiguredValue>usp_insertSSISLOG</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[SqlStatementSourceType]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[TimeOut]" ValueType="UInt32"><ConfiguredValue>0</ConfiguredValue></Configuration><Configuration ConfiguredType="Property" Path="\Package\Execute SQL Task.Properties[TransactionOption]" ValueType="Int32"><ConfiguredValue>1</ConfiguredValue></Configuration></DTSConfiguration>

|||This is the only line you should have in your configuration file for connections: (The ConnectionString property)

<Configuration

ConfiguredType="Property"

Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[ConnectionString]"

ValueType="String"><ConfiguredValue>Data Source=SCN4685;User

ID=sa;Initial

Catalog=DemoDB0;</ConfiguredValue></Configuration>

But, this seems to be using an ODBC connection. So, that means the ODBC connection has to change to point to the new database, OR, you have to change the "Data Source=XXXXX" parameter in the above line to point to the different ODBC connection. (Or Oracle connection, whatever it may be.)|||

Anyway,many many thanks

|||

Hahhahhha~~~~

Sometimes it‘s really weird!
2 whole days, I can’t figure out how to change the connection when deploying SSIS to another Server.
Today, I was so disappointed that I haven’t got the right way to work it round.
Before the shift is off, I fall a snap. And after snap, I used the XML spy to modify the configure file with password adding.
Hah~~it works!
I still wonder why the password is blank when we enabled the configure file option.
Here are my tips to change connections when deploying to Pro environment.

No need to change this:
<Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[ConnectionString]" ValueType="String"><ConfiguredValue>Data Source=SCN4685;User ID=sa;Initial Catalog=DemoDB0;Persist Security Info=True;</ConfiguredValue></Configuration>


But we have to change these property’s value:
InitialCatalog:
<Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[InitialCatalog]" ValueType="String"><ConfiguredValue>DemoDB1</ConfiguredValue></Configuration>
Password(what is blank at first):
<Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[Password]" ValueType="String"><ConfiguredValue>XXXXXX</ConfiguredValue></Configuration>
Servername:
<Configuration ConfiguredType="Property" Path="\Package.Connections[SCN4685.DemoDB0.sa].Properties[ServerName]" ValueType="String"><ConfiguredValue>SCN4685</ConfiguredValue></Configuration>

Gosh~~thanks.
It really works.

deploy pacakge - what files have to go?

I'm getting ready to deploy my SSIS packages to a real server (woohoo) after testing on my local SQL box. What files have to be deployed to the SQL server? I'm creating a folder for each package (easier for these guys to maintain when my contract is up). Does only the .dtsx and .dtsConfig file go or is there any other files that have to be copied over to the SQL server?

Only the dtsx files need to go. You can deploy individually or you can set the create deployment utility as a Project Property and then just double click the manifest to deploy all of them at once. You shouldn't have to manually copy any files.

|||

Ok, even though I have a .dtsconfig file defined for them, that doesn't have to go to the servers?

As for the .dtsx file, I see one in the Bin folder of my project and one outside of the bin folder which one goes or does the deploy utility grab the correct one?

|||

In the Deploymet folder there should be a file with the extension .SSISDeploymentManifest. Double click on that. It will deploy the files from the Deployment folder.

If you don't have a Deployment folder, right click on the project and choose properties.

In the properties page, click on the Deployment Utility entry (middle one) and change create deployment utility to True.

|||

Ok, thanks, I'll look into it. This is the first for this for me, so. .

|||

If you want to include the configuration settings from the .dtsconfig file then you should deploy it. I am 99.9 % certain that you want to include it.

The deploy utility will grab the correct .dtsx file.

|||

From my experience (not very much though ), its easier to do a xcopy than going through the process of creating deployment package modifying the manifest etc., That way you wont miss copying the config files also.

Its just my thought.

Thanks

Friday, February 17, 2012

Dependency file locations for a SSIS package

Hi all,

I've have a simple question. After running the SSIS deployment utility to install a couple of SSIS packages into a SQL Server, is there a way of determining programmatically (at some later stage) where the dependency files (in my case a simple xml configuration file) for the SSIS packages were installed (if the user chose not to install it into the default location).

Thanks,

Johan

Johanw581996 wrote:

Hi all,

I've have a simple question. After running the SSIS deployment utility to install a couple of SSIS packages into a SQL Server, is there a way of determining programmatically (at some later stage) where the dependency files (in my case a simple xml configuration file) for the SSIS packages were installed (if the user chose not to install it into the default location).

Thanks,

Johan

Absolute paths are required when pointing to things external to the package (XML configuration files, etc...), so the path should never change from when the package was developed.