IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut [SSIS]Comment créer un timeout dans un package SSIS (forcer une contrainte de temps d'exécution sinon échec) ?
    Bonjour,

    Dans un package SSIS je voudrais chronométrer l'exécution du package et déclencher l'erreur et donc l'arrêt si le temps a dépassé une durée déterminée.

    Quelqu'un a-t-il une idée sur la façon d'y arriver ?

    Existe-t-il un composant "chronomètre" pour SSIS ?

    a+, =)
    -=Clement=-

    Configuration :
    SQL Server 2005
    Windows XP SP3

  2. #2
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Abandonne l'idée de le faire dans le lot en question, c'est vraiment complexe...
    Mieux vaut viser une technique pour stopper le processus DTEXEC depuis l'appelant.

    Une technique possible héritée de DTS serait de lancer ton package depuis... un autre package. Mais non pas en faisant un Execute Package Task mais un Execute Process, dans lequel tu exécutes un DTEXEC. Cette tâche à deux paramètres: Timeout (en secondes) et TerminateProcessAfterTimeOut à activer

    Sinon passe par un "bon" ordonnanceur qui te donne cette possibilité.

    Anecdote: c'est aussi possible via le TaskScheduler de Windows qui pourtant n'est pas considéré comme tel!

    François JEHL
    Consultant Formateur
    MCITP/MCT Business Intelligence Development
    Winwise (Paris)
    http://fjehl.blogspot.com
    François JEHL
    BI Engineer | MVP SQL Server
    http://fjehl.wordpress.com
    Pour me contacter, par MP ou ici, mais pas pour des questions techniques.

    /*
    Avant de poster cherchez dans la FAQ et utilisez la fonction "Rechercher" du forum.
    Au moment de poster, posez votre question dans le bon sous-forum (Débuter, SSAS, SSRS, SSIS), en utilisant les TAGs prédéfinis ([2K], [2K5], [2K8], [2K8R2]).
    */

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Merci,

    Je préfère rester dans le lot mais restreindre mon besoin : je suis en train de regarder du côté du timeout des Connection Managers car c'est là que le bât blesse. Il arrive qu'une query ne termine jamais et le package dure alors un temps infini.

    Utiliser un package simplement pour limiter le temps d'exécution d'un autre package est trop laborieux pour que j'utilise cette solution : j'utilise SQL Server Agent pour exécuter des packages hébergés par une instance SSIS SQL Server.

    a+, =)
    -=Clement=-

  4. #4
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Effectivement si ce n'est que sur des requêtes le TimeOut fait l'affaire, il est fait pour ça.

    La solution un peu brute du ExecuteProcess est vraiment à considérer dans le cas ou tu souhaites limiter l'exécution du package en entier, cas ou réelement il n'existe pas de solution en interne.
    C'est une question qui revient souvent en formation et ou la solution n'est il est vrai pas évidente.

    Dans ton cas tiens nous au courant des effets

    François JEHL
    Consultant Formateur
    MCITP/MCT Business Intelligence Development
    Winwise (Paris)
    http://fjehl.blogspot.com
    François JEHL
    BI Engineer | MVP SQL Server
    http://fjehl.wordpress.com
    Pour me contacter, par MP ou ici, mais pas pour des questions techniques.

    /*
    Avant de poster cherchez dans la FAQ et utilisez la fonction "Rechercher" du forum.
    Au moment de poster, posez votre question dans le bon sous-forum (Débuter, SSAS, SSRS, SSIS), en utilisant les TAGs prédéfinis ([2K], [2K5], [2K8], [2K8R2]).
    */

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Voici ma solution,
    pré-requis : un package SSIS avec une Data Flow Task, un Connection Manager OLEDB et un composant Source OLE DB l'utilisant dans la Data Flow Task.
    Clic droit sur le composant Source OLE DB, Show Advanced Editor et là j'ai saisi la propriété Timeout à deux fois le temps d'exécution habituel du package, pour être très large. Si la requête dépasse le temps imparti le package échoue.



    a+, =)
    -=Clement=-

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/05/2009, 17h53
  2. Comment Créer champ INPUT dans la meme page
    Par petchos64 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/04/2006, 15h41
  3. Réponses: 13
    Dernier message: 18/01/2006, 12h51
  4. Comment créer un commentaire dans une cellule d'Excel ?
    Par WebPac dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 26/04/2005, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo