Problem with passing Connection String to Sub-Packages

  • Hello everybody,

    i hope you can help me on this one because i couldn't fix it since monday..

    I have set up an SQL Server Agent Job which starts a package which executes other packages based on a database table. My problem is that i always get the message that our service account has no rights to access the database. The error message is right because somehow it tries to connect with our development database instead of our production database. I have set up the job as following:

    In the data sources tab is the connection manager of the main package checked and correct configured. In the "Set values" tab i have set the connection string with the following path:

    \Package.Variables[User::ConnectionString].Properties[Value]

    and the same value as in the data source tab

    In the main package i have set the ConnectionString variable in the user namespace on the package level. Furthermore it told all tasks to delay validation. The connection manager does not have an expression because it should inherit the value from the job.

    In the sub packages which get called by an execute package task is also a variable for the connection string defined. In the package configuration i have defined the inheritance of the connection string which, as far as i can tell, works. It's not the only variable that gets passed and the other work fine on development. The connection manager in the sub packages has an expression set. I uses the connection string variable as the ConnectionString.

    I already checked on my development machine and saw that the production user tried to connect to it. I don't see what i am missing and why i am still getting this error.

    (replaced names with placeholder)

    Executed as user: @@SA@@. Microsoft (R) SQL Server Execute Package Utility Version 10.0.5500.0 for 64-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 14:15:43 Error: 2014-08-12 14:15:44.15 Code: 0xC0202009 Source: parentPackage Connection manager "@@conManager@@" Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Login failed for user '@@SA@@p'.". An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Cannot open database "@@DB@@" requested by the login. The login failed.". End Error Error: 2014-08-12 14:15:44.17 Code: 0xC00291EC Source: @@task@@ Execute SQL Task Description: Failed to acquire connection "@@conManager@@". Connection may not be configured correctly or you may not have the right permissions on this connection. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 14:15:43 Finished: 14:15:44 Elapsed: 0.842 seconds. The package execution failed. The step failed.

    We use SQL Server 2008.

    Thanks in advance.

  • Too bad nobody could help me on this (at least by now)..

    I used a workaround in which i changed the parent packages to use XML-Files to get the connectionString and got it working. Seems like it doesn't work properly when the connection string is set by the sql server agent job.

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

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