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 :

[9i] intervention sur PROCEDURE impossible


Sujet :

Oracle

  1. #1
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut [9i] intervention sur PROCEDURE impossible
    Bonjour, je dois avoir un lock sur un procédure car impossible de la modifier, supprimer ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    drop procedure p_toto;
    Comment supprimer cette procedure ou le lock sur celle ci ?

  2. #2
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> drop procedure p_toto;
    drop procedure p_toto
    *
    ERREUR à la ligne 1 :
    ORA-04021: temporisation pendant attente de verrouillage objet SCHEMA.P_TOTO

  3. #3
    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
    Bonjour ,
    1) Détectez le lock :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT session_id , oracle_username , os_user_name  FROM V$LOCKED_OBJECT 
    WHERE object_id =( SELECT object_id FROM dba_objects WHERE object_name ='obejct_name' 
    AND owner ='owner') ;
    2) killez la session


    Jaouad

  4. #4
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    Et là c'est le drame

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SQL> SELECT session_id , oracle_username , os_user_name  FROM V$LOCKED_OBJECT 
      2  WHERE object_id =( SELECT object_id FROM dba_objects WHERE object_name ='P_TOTO' 
      3  AND owner ='SCHEMA') ;
     
    aucune ligne sélectionnée
     
    SQL>
    Et poutant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SQL>  SELECT object_id FROM dba_objects WHERE object_name ='P_TOTO' 
      2  AND owner ='SCHEMA';
     
     OBJECT_ID
    ----------
          9735
     
    SQL>

  5. #5
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    essaye de lancer le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ORACLE_HOME/rdbms/admin/catblock.sql

  6. #6
    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
    Que donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM v$access WHERE object =package ;
    Jaouad

  7. #7
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    Citation Envoyé par Jaouad
    Que donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM v$access WHERE object =package ;
    Jaouad
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
           SID OWNER                                                            OBJECT                      
    ---------- ---------------------------------------------------------------- ------------------------
            22 SCHEMA                                                           P_TOTO
    qd à

    Citation Envoyé par bouyao
    essaye de lancer le script :
    Code:
    $ORACLE_HOME/rdbms/admin/catblock.sql
    Comme je suis pas DBA j'ai pas ce scripts peux tu me l'envoyer ?

  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
    il vaut mieux demander au DBA dans ce cas, je crains qu'il voit d'un mauvais oeil que quelqu'un intervienne sur la base sans son accord

  9. #9
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    le script est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    select /*+ ordered */ w1.sid  waiting_session,
    	h1.sid  holding_session,
    	w.kgllktype lock_or_pin,
            w.kgllkhdl address,
    	decode(h.kgllkmod,  0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive',
    	   'Unknown') mode_held, 
    	decode(w.kgllkreq,  0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive',
    	   'Unknown') mode_requested
      from dba_kgllock w, dba_kgllock h, v$session w1, v$session h1
     where
      (((h.kgllkmod != 0) and (h.kgllkmod != 1)
         and ((h.kgllkreq = 0) or (h.kgllkreq = 1)))
       and
         (((w.kgllkmod = 0) or (w.kgllkmod= 1))
         and ((w.kgllkreq != 0) and (w.kgllkreq != 1))))
      and  w.kgllktype	 =  h.kgllktype
      and  w.kgllkhdl	 =  h.kgllkhdl
      and  w.kgllkuse     =   w1.saddr
      and  h.kgllkuse     =   h1.saddr
    /

  10. #10
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    après de kk recherche j'ai trouvé : le scripts créé une vue dba_waiters donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL> select * from dba_waiters;
     
    aucune ligne sélectionnée
     
    SQL>
    Patience on vas trouver

  11. #11
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    Citation Envoyé par Fred_D
    il vaut mieux demander au DBA dans ce cas, je crains qu'il voit d'un mauvais oeil que quelqu'un intervienne sur la base sans son accord
    Je suis bien d'accord mais il est en vacances, je crois que l'on vas être obligé de de créer la même proc sous un autre nom en attendant

    pour info :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    SQL> select /*+ ordered */ w1.sid  waiting_session, 
      2     h1.sid  holding_session, 
      3     w.kgllktype lock_or_pin, 
      4          w.kgllkhdl address, 
      5     decode(h.kgllkmod,  0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive', 
      6        'Unknown') mode_held, 
      7     decode(w.kgllkreq,  0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive', 
      8        'Unknown') mode_requested 
      9    from dba_kgllock w, dba_kgllock h, v$session w1, v$session h1 
     10   where 
     11    (((h.kgllkmod != 0) and (h.kgllkmod != 1) 
     12       and ((h.kgllkreq = 0) or (h.kgllkreq = 1))) 
     13     and 
     14       (((w.kgllkmod = 0) or (w.kgllkmod= 1)) 
     15       and ((w.kgllkreq != 0) and (w.kgllkreq != 1)))) 
     16    and  w.kgllktype    =  h.kgllktype 
     17    and  w.kgllkhdl    =  h.kgllkhdl 
     18    and  w.kgllkuse     =   w1.saddr 
     19    and  h.kgllkuse     =   h1.saddr 
     20  / 
     
    aucune ligne sélectionnée
     
    SQL>

  12. #12
    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 sygale
    Je suis bien d'accord mais il est en vacances, je crois que l'on vas être obligé de de créer la même proc sous un autre nom en attendant
    en effet...

  13. #13
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    Ca ce peut un verrou dans le shared pool

    Pour cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter system flush shared_pool;
    Mai je prefere qu'un dba fasse cette commande

  14. #14
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    Bon merci pour toutes ces précisions on vas donc faire comme ca et froisser personne !
    cela évitera les

  15. #15
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    kk1 peux m'expliquer le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER FUNCTION [schema.]function COMPILE [DEBUG][REUSE SETTINGS]
    Reuse settings ?

  16. #16
    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 sygale
    Citation Envoyé par Jaouad
    Que donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM v$access WHERE object =package ;
    Jaouad
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
           SID OWNER                                                            OBJECT                      
    ---------- ---------------------------------------------------------------- ------------------------
            22 SCHEMA                                                           P_TOTO
    La session 22 pose probléme

    Kill la est ton probléme serat résolu

    Jaouad

  17. #17
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    J'ai killé la session 22

    elle est marquée KILLED mais tjs rien à faire sur la procedure !

  18. #18
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SQL> SELECT SID,SERIAL#,AUDSID,STATUS,MACHINE,PROGRAM,USERNAME
      2  FROM V$SESSION where sid = 22;
     
           SID    SERIAL#     AUDSID STATUS   
    ---------- ---------- ---------- -------- 
            22       1903     499403 KILLED

  19. #19
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    Citation Envoyé par bouyao
    Ca ce peut un verrou dans le shared pool

    Pour cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter system flush shared_pool;
    Mai je prefere qu'un dba fasse cette commande
    tu a essayé ca ?

  20. #20
    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
    Te voici dans le probléme des sessions qui sont marqués killed for ever

    Il existe deux solutions :

    - Arrêt/relance de la base
    - Dropper le processus

    Tu es sous quelle plateforme ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [SQL 2000]question sur procedure stockée et OSQL
    Par wfirefox dans le forum Outils
    Réponses: 4
    Dernier message: 29/06/2007, 09h59
  2. [FLASH 8 PRO] intervention sur une image clé
    Par CUCARACHA dans le forum Flash
    Réponses: 3
    Dernier message: 08/02/2007, 09h30
  3. [ASE][T-SQL]Timeout sur procedure stockee
    Par Le Tchetche dans le forum Sybase
    Réponses: 3
    Dernier message: 06/11/2006, 11h05
  4. [VBA E]problème sur procedure Exit d'un textbox
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 37
    Dernier message: 24/07/2006, 22h07
  5. Réponses: 3
    Dernier message: 14/04/2006, 09h32

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