L’application utilisateur freeze.
Les requetes suivantes permettent d’aider au diagnostic, il est nécessaire d’avoir le droit SELECT_CATALOG_ROLE pour y accéder.
il convient donc de demander au DBA de jouer la requete suivante sur la base avant de pouvoir lancer un diagnostic.
(:source lang=SQL : )
GRANT SELECT_CATALOG_ROLE TO "QUBESCONNECT"
Pour obtenir la liste des verrous
(:source lang=SQL : )
SELECT s.sid sid, s.username username, s.machine machine, l.type type, o.object_name object_name, DECODE(l.lmode, 0,'None', 1,'Null', 2,'Row Share', 3,'Row Exlusive', 4,'Share', 5,'Sh/Row Exlusive', 6,'Exclusive') lmode, DECODE(l.request, 0,'None', 1,'Null', 2,'Row Share', 3,'Row Exlusive', 4,'Share', 5,'Sh/Row Exlusive', 6,'Exclusive') request, l.block block FROM v$lock l, v$session s, dba_objects o WHERE l.sid = s.sid AND username != 'SYSTEM' AND o.object_id(+) = l.id1
Pour obtenir la liste des requêtes bloqués
(:source lang=SQL : )
select s.sid "SID", s.serial# "SER", o.object_name "Table", o.owner, s.osuser "OS User", s.machine "Node", s.terminal "Terminal", p.spid "SPID", s.process "CPID", decode (s.lockwait, null, 'Have Lock(s)', 'Waiting for <' || b.sid || '>') "Mode", substr (c.sql_text, 1, 150) "SQL Text" from v$lock l, v$lock d, v$session s, v$session b, v$process p, v$transaction t, sys.dba_objects o, v$open_cursor c where l.sid = s.sid and o.object_id (+) = l.id1 and c.hash_value (+) = s.sql_hash_value and c.address (+) = s.sql_address and s.paddr = p.addr and d.kaddr (+) = s.lockwait and d.id2 = t.xidsqn (+) and b.taddr (+) = t.addr and l.type = 'TM' group by o.object_name, o.owner, s.osuser, s.machine, s.terminal, p.spid, s.process, s.sid, s.serial#, decode (s.lockwait, null, 'Have Lock(s)', 'Waiting for <' || b.sid || '>'), substr (c.sql_text, 1, 150) order by decode (s.lockwait, null, 'Have Lock(s)', 'Waiting for <' || b.sid || '>') desc, o.object_name asc, s.sid asc
Pour la liste des transactions
(:source lang=SQL : )
SELECT s.sid, s.username, s.logon_time, t.start_date "DEBUT TRANSACTION" FROM V$TRANSACTION t INNER JOIN V$SESSION s ON (t.addr = s.taddr)
Pour la description des type de verrous
(:source lang=SQL : )
select * from v$lock_type