Meilleur auteur de réponses
Execute Package Task qui ne fonctionne pas en mode Job-Agent

Question
-
Bonjour
J'ai un package SSIS qui s'exécute bien en mode debug avec BIDS ou en dtexec (execute package sur le serveur SSIS) mais qui plante avec SQL-Agent, lancé sur le même serveur avec une erreur OLE DB de type 'CANNOTACQUIRECONNECTION'. Les 2 cas sont lancés avec le même compte d'exécution et les mêmes paramètres.
Après des recherches/essais/erreurs, il s'avère qu'il s'agit d'une tâche 'Execute package task' (package stocké en base, execute as separate process décoché) qui plante en mode Agent, les autres tâches semblent fonctionner sans problème (data flow task, execute process, OLE DB Task).
Quelques précisions :
- Le compte applicatif utilisé pour la tâche SQL-Agent fait partie du domaine, il lance tous les services SQL (base, SQL-Agent, SSIS), il est sysadmin de la base et administrateur local du serveur.
- La base où sont stockés les packages à lancer dans 'Execute package task', les service SSIS et SQL-Agent sont sur la même machine.
- Configuration logicielle, Windows Server 2008 standard x64, SQL 2008 R2 x64 SP1 CU3
- Toutes les connexions vers les bases sont en mode Authentification Windows, les sécurités des packages sont paramétrées en DontSaveSensitive
- Le package enfant exécute une procédure stockée sur une base de données sur un second serveur. Apparemment c'est la connexion vers cette seconde base de données dans la base enfant qui ne fonctionne pas et déclenche le message.
Je pense à un problème de délégation de droits, comme si en mode SQL-Agent, dtexec (lancé par le SQL-Agent) n'était plus authentifié dans le package enfant pour se connecter à la seconde base, parce que si le package enfant est récupéré par son maître sous forme de fichier, là ca marche.
Merci à ceux qui m'aideront à résoudre ce problème bien compliqué :)
Edit : Voici ce message
Executed as user: HEADOFFICE\s_sql_SIF_prod. Microsoft (R) SQL Server Execute Package Utility Version 10.50.2500.0 for 32-bit Copyright (C) Microsoft Corporation 2010. All rights reserved. Started: 19:46:15 Error: 2012-03-28 19:46:18.87 Code: 0xC0202009 Source: StagingCostCenters Connection manager "ETL_Settings" Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E4D. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E4D Description: "Login failed for user 'HEADOFFICE\s_sql_SIF_prod'.". End Error Error: 2012-03-28 19:46:18.88 Code: 0xC020801C Source: Chargement en staging Extract CostCenters [1] Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "ETL_Settings" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed. End Error Error: 2012-03-28 19:46:18.91 Code: 0xC0047017 Source: Chargement en staging SSIS.Pipeline Description: component "Extract CostCenters" (1) failed validation and returned error code 0xC020801C. End Error Error: 2012-03-28 19:46:18.94 Code: 0xC004700C Source: Chargement en staging SSIS.Pipeline Description: One or more component failed validation. End Error Error: 2012-03-28 19:46:18.96 Code: 0xC0024107 Source: Chargement en staging Description: There were errors during task validation. End Error Error: 2012-03-28 19:46:19.01 Code: 0xC00220E4 Source: Chargement en staging Description: Error 0xC0012050 while preparing to load the package. Package failed validation from the ExecutePackage task. The package cannot run. . End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 19:46:15 Finished: 19:46:19 Elapsed: 3.219 seconds. The package execution failed. The step failed.
- Modifié Guillaume_WAISSO jeudi 29 mars 2012 07:54
Réponses
-
Merci de vos conseils. Pour ceux qui auraient le même problème, finalement j'ai créé dans mon instance liée à SQL-Agent un credential, un proxy lié à ce credential avec des droits d'exécution SSIS et mon job SQL-Agent se lance sur les droits de ce proxy et non sur ceux du compte de service. J'ai suivi les conseils de cet article KB : http://support.microsoft.com/kb/918760/fr
- Marqué comme réponse Guillaume_WAISSO jeudi 29 mars 2012 14:34
Toutes les réponses
-
-
Bonjour,
Que dit le errorlog su second serveur. Vu qu'il y a login failed, on voit si l'utilisateur est bien elui qui doit arriver ou bien si on prend un null.
Est-ce que les spn sont correctement enregistrés niveau AD ?
Cdlt,
Christophe
Christophe LAPORTE - Independent Consultant & Trainer - SQL Server MVP-MCM
-
Merci de vos conseils. Pour ceux qui auraient le même problème, finalement j'ai créé dans mon instance liée à SQL-Agent un credential, un proxy lié à ce credential avec des droits d'exécution SSIS et mon job SQL-Agent se lance sur les droits de ce proxy et non sur ceux du compte de service. J'ai suivi les conseils de cet article KB : http://support.microsoft.com/kb/918760/fr
- Marqué comme réponse Guillaume_WAISSO jeudi 29 mars 2012 14:34