Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:sql_lock_library_cache

Dies ist eine alte Version des Dokuments!


library cache Lock

Code in Session 1 anlegen, in Session 2 aufrufen und in Session 1 erneut anlegen ⇒ Ein Library Cache Lock entsteht 1. Beispiel Code Endlos Schleife

create or replace procedure endless
is
begin
 loop
  null;
 end loop;
end;
/ 

2. in zweiter Session aufrufen

sqlplus>exec endless

3. Code erneut anlegen

4. Abfrage wer hat den Lock:

/** Waiter ******************/
select ss.sid
     , ss.username
     , ss.terminal
     , ss.program
	 , sw.event
  from v$session ss , v$session_wait sw
 where ss.sid=sw.sid
   and sw.event like 'library cache %' 

Session die die Procedure erneutern will ⇒ ABER Lock das zweite Session PL/SQL Objekt im Zugriff hat ⇒ Event 'library cache pin'

Session die blockiert: — in Arbeit —- über die x$kgllk

This table lists all held and requested library object locks for all sessions.
The column kglnaobj displays the first 80 characters of the name of the object.
kgllkreq = 0 means, the lock is held,
while kgllkreq > 0 means that the lock is requested.

/**** Suchen über die v$lock und die X$KGLLK mit Username der blockierenden Session ***/
SELECT * FROM X$KGLLK where user_name = 'GPI' and KGLLKEXC > 0
/*** Beispiel ***/
select 
  kglnaobj, kgllkreq
from 
  x$kgllk x join v$session s on 
    s.saddr = x.kgllkses;
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
prog/sql_lock_library_cache.1288039835.txt.gz · Zuletzt geändert: 2010/10/25 22:50 von gpipperr