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

SSIS Discussion :

[SSIS] [2K8] Gestion des transactions


Sujet :

SSIS

  1. #1
    Membre éclairé
    Avatar de patriceharel
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 466
    Points : 884
    Points
    884
    Par défaut [SSIS] [2K8] Gestion des transactions
    Bonjour à tous,

    J'ai un package qui démarre une transaction (TransactionOption=Required). Une tâche SQL qui effectue des instructions DDL sur une base située sur un serveur distant. Cette tâche SQL utilise la transaction du package. J'ai l'erreur suivante :

    [Execute SQL Task] Error: Failed to acquire connection "DWHCLIENT". Connection may not be configured correctly or you may not have the right permissions on this connection.
    [Connection manager "DWHCLIENT"] Error: The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D00E "La transaction a déjà été validée ou annulée de manière implicite ou explicite".
    En revanche, lorsque les lots SSIS sont sur le même serveur que la base tout fonctionne. Avez vous une idée?

  2. #2
    Membre éclairé
    Avatar de patriceharel
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 466
    Points : 884
    Points
    884
    Par défaut
    Bon j'ai trouvé une solution, je ne sais pas si elle est propre mais là voici. En fait j'utilise le DTC du serveur de base de données à partir du poste exécutant les lots SSIS.

    Bref maintenant j'ai un autre soucis. Lorsque dans un lot j'ai un Lookup pour distinguer les lignes à mettre à jour (elles seront mises à jour via un OLEDB Command) des nouvelles à insérer (insérées via un OLEDB Destination), SSIS me claque une erreur du type :

    An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E14 Description: "This operation conflicts with another pending operation on this transaction. The operation failed.".
    Ce qui dans un sens est logique car je tente de mettre à jour des lignes qui n'ont pas encore étaient Commit. Pour pallier à ce problème je pensais que mettre la propriété IsolationLevel de mes objets à Chaos suffirait... vraisemblablement non.

    Quelqu'un a déjà eu ce soucis?

    Merci à vous

  3. #3
    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
    Dans l'idée c'est assez logique: tu as en fait deux transactions une qui UPDATE et une autre qui INSERT donc des locks concurrents de part et d'autre...

    Dans ton cas j'aurais plutôt tendance à faire l'UPDATE en mode massif après:
    -DF1: insertion des nouveaux records dans ta table de dim et des "à mettre à jour" dans une table temporaire
    -DF2: UPDATE massif de la table de dim depuis la table temporaire

    Il y a d'autres solutions plus drastiques (DELETE partiel + INSERT, DELETE total + INSERT) mais qui dépendent du design de ton alimentation (type de SCD, sur quels champs...) et qui toutes gardent ce côté séquentiel qui évite l'auto-locking du lot.

    François JEHL
    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]).
    */

  4. #4
    Membre éclairé
    Avatar de patriceharel
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 466
    Points : 884
    Points
    884
    Par défaut
    Merci François,

    Je suis effectivement passé à quelque chose de plus séquentiel. Je souhaiterai tout de même savoir pourquoi le fait de passer mon IsolationLevel à Chaos a été sans effet? Je pensais que ce dernier permettait d'outre passer le lock sur les updates?

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/07/2010, 10h12
  2. [SSIS] [2K8] Gestion des erreurs SSIS
    Par trukmuche dans le forum SSIS
    Réponses: 2
    Dernier message: 29/10/2009, 15h00
  3. [SSIS] Gestion des transactions
    Par marman dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 01/02/2007, 12h48
  4. Gestion des transactions - Gestion des erreurs
    Par devdev dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 23/03/2005, 20h17
  5. gestion des transactions
    Par viny dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/03/2004, 21h53

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