Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:sql_lock_library_cache

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;
Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
prog/sql_lock_library_cache.txt · Zuletzt geändert: 2010/10/25 22:50 von Gunther Pippèrr