El ¿auto deadlock?
¡Últimamente me pasan unas cosas muy curiosas!
¿Qué puede causar que una sesión aparezca en la vista DBA_WAITERS como bloqueadora y como en espera? Fernando García sabe la respuesta, pues él «estaba allí» cuando sucedió.
Se trata de la sesión 80 y, como podéis ver, los bloqueos son todos sobre el objeto 524308 (una tabla).
Se admiten apuestas!!! La base de datos es una Oracle12c y hay tres sesiones en el juego.
PISTA: No hay, ni hubo, ni habrá en este ejemplo un deadlock ORA-00060.
PDB1@ORCL> select * from dba_waiters;
WAITING_SESSION HOLDING_SESSION LOCK_TYPE
————— ————— ————————–
MODE_HELD
—————————————-
MODE_REQUESTED LOCK_ID1 LOCK_ID2
—————————————- ———- ———-
80 44 Transaction
Exclusive
Exclusive 524308 2374
72 44 Transaction
Exclusive
Share 524308 2374
80 80 Transaction
None
Exclusive 524308 2374
72 80 Transaction
None
Share 524308 2374