Parent package variable configuration not working after migrating package from 2008 to 2016


I have a set of ssis 2008 packages that I need to now migrate to ssis 2016. I used VS data tools 2015 to migrate the packages. Packages got migrated successfully with few warnings regarding the script tasks which I have taken care of.

Now one of the packages has an execute package task which in turn calls a child package. The connection managers for both parent and child packages are set using variables (using expressions). The connection string variable for parent package is set from c# code and is working as expected. The connection string variable for child package is set using parent package variable configuration.

So in short its like:

  • Parent Package: variable connstring : set from c# code
  • Child Package: variable connstringchild: set from connstring from parent package.

Delay validation is true for the package execute task in parent package. In the child package delay validation is true for each container and the sql task that uses the connManager as well as for the connection Manager. I also tried to set delay validation to true at the package level for both packages.

Still, when the parent package gets executed, it fails at this execute package task with below error:

SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. 
Error code: 0x80004005.  An OLE DB record is available.  
Source: "Microsoft OLE DB Provider for ODBC Drivers"  
Hresult: 0x80004005  
Description: "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified". 

From the error my guess is that the child package variable for connection string is not having any value and hence the error. Tried to do more logging and it looks like after getting this error, the package continues to execute and the configuration values are set and execution completes. However the end result of the package is returned as failed as the maximum error count exceeds.

From whatever I have searched on google and here, it looks like if delay validation is set to true, this variable validation should not happen before execution. But somehow, its validating before and hence failing. The 2008 package works fine without any issues.

Please note that the parent package is getting executed from C# code using the ManagedDTS assembly.

Has anyone come across any such issue? Please help with any suggestions or solutions. Have been stuck with this for more than 2 weeks now!

asked on Stack Overflow Sep 4, 2019 by ketaki • edited Sep 4, 2019 by ketaki

0 Answers

Nobody has answered this question yet.

User contributions licensed under CC BY-SA 3.0