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 :

[Oracle 8i] pb de verrou


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 17
    Points : 19
    Points
    19
    Par défaut [Resolu][Oracle 8i] pb de verrou
    Bonjour,
    le problème auquel j ai été confronté est le suivant :
    Au moment de la compilation d'une procédure mon poste a planté ...
    La machine redemmare; je relance la compilation et là je vois que le processus de compilation est en stand by. Au bout d un moment un time out se declanche et un message d'erreur m indiquant que ma procedure esr vérouillée en écriture apparait.
    Après avoir un peu cherché je suis tombé sur des moyens de processus lancés (par v$session; v$processus ...), mais comment faire pour dévérrouiller mon objet ?

    J espère avoir été assez clair et que ma question n'a pas déjà été soulevée ...

    Merci à vous

  2. #2
    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
    Il faut killer la session tout simplement

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Jaouad
    Il faut killer la session tout simplement
    Merci.

    Par contre si j ai bien compris il s'agit de la session Oracle dont je peux trouver les infos dans v$session ...
    Mais comment faites vous cela ?

  4. #4
    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 une simple recherche vous aurait permis de résoudre ce probléme

    Il vous faut déterminer la session qui bloque par cette requête :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    SELECT   /*+ choose */ 
             bs.username "Blocking User", 
             bs.username "DB User", 
             ws.username "Waiting User", 
             bs.sid "SID", 
             ws.sid "WSID", 
             bs.sql_address "address", 
             bs.sql_hash_value "Sql hash", 
             bs.program "Blocking App", 
             ws.program "Waiting App", 
             bs.machine "Blocking Machine", 
             ws.machine "Waiting Machine", 
             bs.osuser "Blocking OS User", 
             ws.osuser "Waiting OS User", 
             bs.serial# "Serial#", 
             DECODE ( 
                wk.TYPE, 
                'MR', 'Media Recovery', 
                'RT', 'Redo Thread', 
                'UN', 'USER Name', 
                'TX', 'Transaction', 
                'TM', 'DML', 
                'UL', 'PL/SQL USER LOCK', 
                'DX', 'Distributed Xaction', 
                'CF', 'Control FILE', 
                'IS', 'Instance State', 
                'FS', 'FILE SET', 
                'IR', 'Instance Recovery', 
                'ST', 'Disk SPACE Transaction', 
                'TS', 'Temp Segment', 
                'IV', 'Library Cache Invalidation', 
                'LS', 'LOG START OR Switch', 
                'RW', 'ROW Wait', 
                'SQ', 'Sequence Number', 
                'TE', 'Extend TABLE', 
                'TT', 'Temp TABLE', 
                wk.TYPE 
             ) lock_type, 
             DECODE ( 
                hk.lmode, 
                0, 'None', 
                1, 'NULL', 
                2, 'ROW-S (SS)', 
                3, 'ROW-X (SX)', 
                4, 'SHARE', 
                5, 'S/ROW-X (SSX)', 
                6, 'EXCLUSIVE', 
                TO_CHAR (hk.lmode) 
             ) mode_held, 
             DECODE ( 
                wk.request, 
                0, 'None', 
                1, 'NULL', 
                2, 'ROW-S (SS)', 
                3, 'ROW-X (SX)', 
                4, 'SHARE', 
                5, 'S/ROW-X (SSX)', 
                6, 'EXCLUSIVE', 
                TO_CHAR (wk.request) 
             ) mode_requested, 
           object_name , 
             TO_CHAR (hk.id1) lock_id1, 
             TO_CHAR (hk.id2) lock_id2 
    FROM     v$lock hk, v$session bs, v$lock wk, v$session ws ,  V$LOCKED_OBJECT a , 
    dba_objects b 
    WHERE    hk.BLOCK = 1 
    AND      hk.lmode != 0 
    AND      hk.lmode != 1 
    AND      wk.request != 0 
    AND      wk.TYPE(+) = hk.TYPE 
    AND      wk.id1(+) = hk.id1 
    AND      wk.id2(+) = hk.id2 
    AND      hk.sid = bs.sid(+) 
    AND      wk.sid = ws.sid(+) 
    AND      a.object_id=b.object_id 
    AND      hk.sid=a.session_id 
    ORDER BY 1;
    dés que vous avez déterminer le SID et le SERIAL#

    la tache est plus simple
    sous un compte DBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter system kill session 'SID, SERIAL#' ;

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

Discussions similaires

  1. Problème de verrou sur Oracle 10 g
    Par GH dans le forum Oracle
    Réponses: 14
    Dernier message: 03/09/2009, 11h01
  2. Verrou Oracle : trouver le verrou d'un enregistrement
    Par stephDeZ dans le forum Oracle
    Réponses: 13
    Dernier message: 25/12/2008, 12h59
  3. [Oracle 10] Verrou sur ligne
    Par escafr dans le forum SQL
    Réponses: 4
    Dernier message: 22/04/2008, 15h20
  4. [Kylix] sqlconnection + oracle
    Par tibo55555 dans le forum EDI
    Réponses: 1
    Dernier message: 02/09/2002, 09h09
  5. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18

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