Friday, November 30, 2012 2:04 AM
I am looking for some guidance around customizing SSIS for our needs.
First some background information, in our application we have a database where SQL connections are configured, for clarity I will call this the ConfigDB. At runtime, SSIS packages execute a query on the ConfigDB to determine the current connection string that they should use to for source and destination of dataflows and tasks. This provides us some isolation from server changes. If something in the environment changes this is reflected in one place and modifications to the connection string in hundreds of jobs across multiple servers is not required.
In the past, we have managed this in script tasks. We used a VB script that would execute the configDB query and replace the connection string on an existing OLE DB connection in the package. However this is a little inelegant and hard to manage since the script gets replicated (and modified) into every SSIS package.
We have recently started a project to migrate all our SSIS packages to SQL 2012, so now is a good time to refactor. Since this gets used all over the place in hundreds of packages, I would like to give this a more built in feel and experience. So what I really want is the ability for a developer to drag something on the canvas, configure the couple of parameters used to obtain the connection string from the ConfigDB, and then be able to use this new connection in dataflows and tasks.
I guess what I am really looking for is a custom OLE DB (or ODBC) connection UI.
So, I wrote a custom connection manager with a UI that lets me specify the parameters specific to our application. This works well because it does not store a connection string in the SSIS package, the connection manager stores only the parameters needed to get the correct connection string from the ConfigDB. However there is one major issue, it seems I can only use it with other custom components that I write, even though I am handing back a known connection type. I can’t find a way to tell SSIS to treat these connections as know connection types.
Is there any way to modify the connection manager that I wrote so that built in SSIS components can use the SQLConnection that it returns?
If not, what would be the best suggestions to meet my goal?
Friday, November 30, 2012 9:17 PMModerator
Most of the useful connection properties are exposed through the configuration, in SSIS 2012 now you can benefit from the project level settings (variables), so I am not too sure why you must re-invent the wheel.
Can you elaborate more on "modify the connection manager that I wrote so that built in SSIS components can use the SQLConnection that it returns"?
Any pictures of what you built, what is the purpose of refactoring is not too clear.
Arthur My Blog
Saturday, December 01, 2012 2:31 AM
The approach you have taken will not work. Instead of creating a brand new connection manager, you may implement connection configurator control flow task. Setup to execute this task as a first step before executing your other package tasks.
- Proposed As Answer by Eileen ZhaoMicrosoft Contingent Staff, Moderator Tuesday, December 04, 2012 8:28 AM