none
Execute Package Task qui ne fonctionne pas en mode Job-Agent RRS feed

  • 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.

    mercredi 28 mars 2012 21:01

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

    jeudi 29 mars 2012 14:34

Toutes les réponses

  • Bonjour,

    je ne sais pas si cela peut vous aider, mais j'avais eu un souci de ce type en SQL2005, et ceci m'avait aidé :

    http://support.microsoft.com/kb/918760

    Je ne sais pas par contre si c'est toujours d'actualité avec 2008 R2

    Cordialement

    Fred

    jeudi 29 mars 2012 08:30
  • 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

    jeudi 29 mars 2012 14:21
  • 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

    jeudi 29 mars 2012 14:34