miércoles, 14 de octubre de 2009

AcquireConnection method call to the connection manager [Connection name] failed with error code 0xC0202009 - Llamada al método AcquireConnection

-- EN INGLES -----------------------------------------------------
---------------------------------------------------------------------
The message "The AcquireConnection method call to the connection manager ‘(Connection name)’ failed with error code 0xC0202009" occurs when you attempt to validate or run a SQL Server 2005 Integration Services package on a server (where ‘(Connection name)’ is a known connection manager object name).

This problem may occur when you use Integration Services in the following way:

1. Logged into the Server using a different user name than the one used to create the package.
2. Not using a Configuration file to read Connection settings.
3. Using Connections that include sensitive settings e.g. passwords.
4. Deploying the package using the Package Deployment Utility method.

Cause:

The Package’s ProtectionLevel property is set to encrypt sensitive settings with a user key e.g EncryptSensitiveWithUserKey (the default value) AND you attempt to deploy the package on the server logged in as a different user (i.e different user context).

The different user context results in the failure of decrypting sensitive settings (e.g. passwords) because the decryption key is specific to the user context at the time the package files were created.

The “The AcquireConnection method call to the connection manager ‘(Connection name)’ failed with error code 0xC0202009” message is indicative of a problem the Package has when attempting to read connection parameters e.g. a password, or connection string.

Solution :
Option 1 – Use Password protection

Set the Package’s ProtectionLevel property to encrypt settings with a password e.g EncryptSensitiveWithPassword. This setting prevents access to sensitive settings unless the user knows the correct password. The password is not user context dependent and will therefore allow the package to be run regardless of what user you are logged in as.

Option 2 – Use a Configuration file to store sensitive settings
Retain your existing ProtectionLevel setting and use a Configuration file to store sensitive settings.

The package will then read the Configuration file to obtain values it would otherwise have to decrypt dependent on the ProtectionLevel setting. This method relies on protecting the configuration file to prevent unauthorised access.

Notes:
Changing the ProtectionLevel setting may impact running the Package as a job in SQL Server 2005. See An SSIS package does not run when you call the SSIS package from a SQL Server Agent job step for more information.

See Setting the Protection Level of Packages for information about applying different protection levels to your Package.

--EN CASTELLANO ----------------------------------------------
---------------------------------------------------------------------
El mensaje de la llamada al método AcquireConnection al administrador de conexión (nombre de conexión) falló con código de error 0xC0202009 se produce cuando intentamos validar o ejecutar un SQL Server 2005 Integration Services en un servidor (donde [nombre de conexión] es un conocido administrador de nombre de objeto de conexión ).

Este problema puede producirse cuando utiliza Servicios de Integración de la siguiente manera:

1. Conectandose en el servidor utilizando un nombre de usuario diferente al que se utilizó para crear el paquete.
2. No usar un archivo de configuración para leer la configuración de conexión.
3. Uso de conexiones que incluyen ajustes de sensibilidad, por ejemplo contraseñas.
4. Implementar el paquete utilizando el método de implementación de paquete de utilidades (Package Deployment Utility).

Explicacion:
La propiedad del paquete ProtectionLevel se establece para cifrar los ajustes sensibles con una clave de usuario, por ejemplo EncryptSensitiveWithUserKey (el valor predeterminado) y se intenta implementar el paquete en el servidor conectado como un usuario diferente (es decir, el contexto de usuario diferente).

Los resultados de contexto diferente del usuario en el fracaso de descifrar los ajustes sensibles (por ejemplo, contraseñas), suceden porque la clave de descifrado es específica para el contexto de usuario en el momento en que los archivos del paquete fueron creados.

El método AcquireConnection o la llamada al administrador de conexión (nombre de conexión) falló con código de error 0xC0202009 es indicativo de un problema que se produce cuando el paquete intenta leer los parámetros de conexión por ejemplo, una contraseña, o la cadena de conexión.

Solución Opción 1 - Utilizar protección con contraseña
Estableciendo la propiedad del paquete ProtectionLevel para cifrar la configuración con una contraseña, por ejemplo EncryptSensitiveWithPassword.
Esta configuración impide el acceso a la configuración sensible a menos que el usuario conozca la contraseña correcta. La contraseña no es dependiente del usuario y por lo tanto, permite que el paquete se ejecute independientemente de qué usuario está conectado.

Opción 2 - Utilizar un archivo de configuración para guardar los ajustes de sensibilidad
Para conservar tu ProtectionLevel existente debes utilizar un archivo de configuración para guardar los ajustes sensibles. El paquete de continuación, leerá el archivo de configuración para obtener los valores de lo contrario tendría que descifrarlos, dependiendo de la configuración ProtectionLevel. Este método se basa en la protección del archivo de configuración para evitar el acceso no autorizado. Este método se basa en la protección del archivo de configuración para evitar el acceso no autorizado.

Notas :
La modificación del valor ProtectionLevel puede afectar la ejecución del paquete como un trabajo en SQL Server 2005. Para más información revisar un paquete SSIS no se ejecuta cuando se llama al paquete SSIS desde un paso de trabajo del Agente SQL Server .

Tambien revisar Ajuste del nivel de protección de los paquetes para obtener información sobre la aplicación de diferentes niveles de protección a su paquete.

Otros Links:
Error cuando ejecuta un paquete SSIS que está programado para ejecutarse como un trabajo del Agente SQL Server: "Error de OLE DB. Código de error: 0x80004005"

No hay comentarios: