I've a Master package where in I'm calling several packages using Execute package task.
Both child and master packages don't have any configuration and are connecting OLEDB (SQL Server) using hardcoded SQL authentication connections in the connection managers.
Also the packages have encrypt sensitive with the password.
Strange behavior seen: 1. Child Packages run successfully when run from BIDS but fail when run from master packages with Acquire Connection failure
"The AcquireConnection method call to the connection manager failed with error code 0xC0202009"
Can someone help with the resolution for this?
The Execute Package task can run child packages that are contained in the same project that contains the parent package.
Parent execute Child1 and Child2 .
You can use the Execute package task to call another package in SSIS. If you also want to pass parameters that also you can do. 1. Execute package task is the straightforward way where you can call package within same project (if project deployment model) or from msdb/filesystem.
It seems that your child package is not getting the connection string from your parent package .You need to pass connection string from Parent to child package .
Check this article
Update :-
When you have EncryptSensitiveWithPassword as an access control for both your child and parent package then while executing the child pkg from parent package
You will be prompted to enter the password for your child package during execution .
There may be scenarios that even after entering the password at the run time child pkg execution fails due to acquire connection error .This may happens ( im not sure ) due to the child connection string (In Execute Package Task ) which may still be pointing to the old child package which has not been rebuild after the modification .
My Suggestion is when you drag a Execute SQL Task
onto the control flow use the file System Location and point to the updated child package placed in the bin folder ( or your deployment path )
and enter the password of your child package in the task
In order to run the parent package from Integration Service (MSDB) then you need to some how pass the child decryption key while executing at run time .
Edit :
Step 1 : Create a Package Configuration for parent SSIS package .Execute Package Task
has a property PackagePassword
.You need select this property while creating the config file
Executables->ExecutePackageTask->PackagePassword
Step 2 : After creating the XML file open it and search for the ConfiguredType=property and in the configured Value enter the password for your child package
Step 3:After importing the parent package in MSDB select the configuration file in the configuration tab
64/32 bit error? Do you have excel connection managers as source maybe?
Dtexec have both a 64-bit and a 32-bit application. I assume that when you run from BIDS, it uses the 32 bits dtexec and how are you running the master? If you are double clicking it, that may be the issue because DTExecUI (Execute Package Utility) is available only as a 32-bit application. If you are working on a 64-bit server and run a package through the DTExecUI , the package will run in 32-bit emulation mode. Furthermore, the package might fail if the connection managers used are not 32-bit compliant.
Be sure to note that if you develop a package in a 32-bit environment and want to run the package in a 64-bit environment, the connection managers need to be 64-bit compliant. Some connection managers such as Excel work in a 32-bit environment only.
EDIT: try setting the password here:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With