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 sur des objets


Sujet :

Oracle

  1. #1
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 95
    Points
    95
    Par défaut LOCK sur des objets
    Bonjour,
    on me pose une bonne question : peut-on faire un lock sur une séquence ?
    Sur une table OK, mais sur les autres objets en général ?

    @+,
    NicK.

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Tous les objets tables, séquences, index sont verrouillés en mode partagé dès qu'ils sont utilisés par une requête pour éviter que leur structure soit modifiée alors que l'objet est en cours d'utilisation.


    Je ne crois pas que verrouiller la valeur retournée par une séquence soit possible. Cela n'aurait d'ailleurs pas de sens puisqu'une des raisons d'être des séquences est d'éviter la sérialisation par verrouillage des données pour générer des valeurs uniques à utiliser comme clés primaires ...

    Ceci dit, il est possible d'utiliser le package DBMS_LOCK qui permet d'utiliser certains services de verrouillage d'Oracle si les mécanismes standard ne suffisent pas.

    Les mécanismes de verrouillage sur les objets et les lignes dans les tables sont détaillés dans le Concepts Guide: http://download-uk.oracle.com/docs/c...htm#sthref2026

  3. #3
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 95
    Points
    95
    Par défaut
    Si quelqu'un a un exemple d'utilisation, ce serait sympa car je n'ai jamais utilisé ce package. Merci.

    @+,
    NicK.

  4. #4
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Il y a un petit exemple en COBOL dans la doc Oracle:
    http://download-uk.oracle.com/docs/c...ns_sqlproc.htm

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Citation Envoyé par Nick_Holmes
    Bonjour,
    on me pose une bonne question : peut-on faire un lock sur une séquence ?
    Sur une table OK, mais sur les autres objets en général ?

    @+,
    NicK.
    il faudrait nous en dire un peu plus sur ce que tu souhaites faire

  6. #6
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 95
    Points
    95
    Par défaut
    Ce n'est pas moi mais un développeur (fou bien sur... ).
    Il voulait récupérer une plage continue de valeurs d'une séquence pour l'utiliser dans son code JAVA. D'où le bloquage de la séquence pendant son utilisation puis le relâchement de celle-ci. Je préfère qu'il insère ligne à ligne même si c'est moins rapide.

    @+,
    NicK.

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Mouai , ca me parait bien compliqué ,

    Soit il fait de l'insertion ligne par ligne soit il se crée lui même sa séquence , stocké dans une table par exemple , soit tu le TUE

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Citation Envoyé par Nick_Holmes
    Ce n'est pas moi mais un développeur (fou bien sur... ).
    Il voulait récupérer une plage continue de valeurs d'une séquence pour l'utiliser dans son code JAVA. D'où le bloquage de la séquence pendant son utilisation puis le relâchement de celle-ci. Je préfère qu'il insère ligne à ligne même si c'est moins rapide.
    il faudrait mettre en place le despistage de produits illicites dans tes équipes de dév

  9. #9
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par Fred_D
    il faudrait mettre en place le despistage de produits illicites dans tes équipes de dév
    Il faudrait virer la moitié de l'équipe :p
    Bon, on va faire autrement car c'est de la bidouille sinon.

    @+,
    NicK.

  10. #10
    Membre averti Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Points : 408
    Points
    408
    Par défaut
    Citation Envoyé par Nick_Holmes
    Bon, on va faire autrement car c'est de la bidouille sinon.


    NicK.
    C'est de la bidouille et tu as en plus toutes les chances de plomber les perfs de ton appli

  11. #11
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Bonjour,


    J'ai déjà rencontré ce pb dans le cas où on a besoin de réserver une plage de valeur d'une séquence. Le risque avec la séquence est que lorsqu'on l'incrémente pour réserver la plage, rien ne garantit qu'un autre traitement ne va pas faire un nextval.

    La solution qu'on a utilisée est effectivement de faire une table-séquence avec une fonction qui renvoie la prochaine valeur et une fonction qui réserve la plage, toutes deux en pragma autonomous.


    Laly.

  12. #12
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 95
    Points
    95
    Par défaut
    Salut,

    Citation Envoyé par lalystar
    Bonjour,


    J'ai déjà rencontré ce pb dans le cas où on a besoin de réserver une plage de valeur d'une séquence. Le risque avec la séquence est que lorsqu'on l'incrémente pour réserver la plage, rien ne garantit qu'un autre traitement ne va pas faire un nextval.
    Exactement ce que je disais à mes développeurs.

    Citation Envoyé par lalystar
    La solution qu'on a utilisée est effectivement de faire une table-séquence avec une fonction qui renvoie la prochaine valeur et une fonction qui réserve la plage, toutes deux en pragma autonomous.


    Laly.
    pas bête... mais le choix technique est de ne pas faire de PL/SQL ...
    moins de boulot pour moi mais limitations pour les dév.

    Merci pour tes réponses constructives.
    @+,
    NicK.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/01/2007, 15h27
  2. utilisations de pointeurs sur des objets
    Par niarkyzator dans le forum Delphi
    Réponses: 21
    Dernier message: 13/12/2006, 09h42
  3. Réponses: 9
    Dernier message: 31/05/2006, 11h56
  4. vector de pointeurs sur des objet
    Par jean-bobby dans le forum SL & STL
    Réponses: 26
    Dernier message: 06/08/2004, 14h54

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