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

Oracle Discussion :

Lock Table table


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20
    Par défaut Lock Table table
    Bonjour,

    j'ai crée une procédure en PLSQL et je veux que ma procédure ne ce lance pas plusieur fois en meme temps cad si on a 2 session diffrente lors du lancement seule une des 2 fonctione et l'autre soit attendre que la premiere termine soit un message qui dit qu'elle est encour de traitement.

    pour cela j'ai crée une table table1 pour blocage .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    create or replace
    PROCEDURE ma_procedure AS
    BEGIN
      INSERT INTO table1 VALUES('a');
      LOCK TABLE table1  IN SHARE MODE ;
     
      .... traitement;
     
     COMMIT;
    END ma_procedure ;
    le probleme losque je lance ma_procédure 2 fois avec 2 session diffrente

    le lock table ne fonctionne pas est le traitement fonctione en meme temps

    merci d'avance.

  2. #2
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Par définition SHARE mode ne bloque pas d'autres SHARE.
    Il faut mettre EXCLUSIVE. Mais ce n'est pas un peu radical de bloquer toutes les modifs à cette table ? dbms_lock peut permettre de sérialiser l'exécution aussi.
    Cordialement,
    Franck.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20
    Par défaut
    merci pour ta repense ,

    enfaite mon problème comme j'ai expliqué je veux bloqué l'execution de ma procédure PLSQL en parallèle par ce que j'ai des traitement sue une table unique et aussi je générer un compte rendu d'événement dans un fichier log donc si la procédure s'exécute 2 fois en parallèle mon fichier log deviendra illisible et sa bloque dans la suite de mes traitement. donc j'ai crée une table table1 et je veux dé le début inséré une ligne pour dire que ma procédure et encoure d'exécution et je bloque un autre lancement jusqu'à la fin du traitement.

    je sais pas si ma solution est la bonne mais si vous avez des idées je vous merci d'avance.

  4. #4
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Alors pour bloquer c'est en mode exclusif qu'il faut le faire.

    Je trouve ça dommage quand même que le traitement ne puisse pas être lancé en parallèle. On peut travailler à plusieurs sur une table. On peut faire plusieurs fichiers de logs.

    Cordialement,
    Franck.

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

Discussions similaires

  1. Alter Constraint et lock des tables
    Par elkamaro dans le forum Administration
    Réponses: 7
    Dernier message: 04/01/2011, 14h44
  2. Réponses: 0
    Dernier message: 29/01/2010, 15h15
  3. Problème avec un chemin de type "tables\table\tables\table"
    Par bankiz dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 12/09/2008, 22h25
  4. Lock de table et SQL Management studio
    Par The eye dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 21/08/2007, 17h30
  5. Thread et lock de tables
    Par babylone7 dans le forum Oracle
    Réponses: 6
    Dernier message: 27/06/2006, 17h31

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