viernes, 12 de septiembre de 2014

Error ORA-00060: deadlock detected while waiting for resource

APP-SQLAP-10916: appbdn/1:ORA-00060: deadlock detected while waiting for resource

Este error se origina  Cuando Oracle detecta que se produjo un Deadlock en la base de Datos, lo que hace es cortar la ejecución del proceso y mostrar el siguiente mensaje de error: ORA-00060: deadlock detected while waiting for resource. 

Deadlock
Un Deadlock (abrazo mortal) es cuando 2 o más usuarios están esperando algún dato que está siendo ejecutado por alguna sesión. Si ésto sucede, los usuarios involucrados en el Deadlock deben esperar y no pueden continuar con el procesamiento.

Estos Deadlocks  pueden ocurrir en diferentes escenarios: Pueden ocurrir mientras se hace operaciones DML en paralelo, mientras se realiza una la actualización / eliminación de datos de mismas tablas de diferentes sesiones, al realizar transacciones  y así sucesivamente, pero los escenarios mencionados son los más comunes.

¿Cómo Detectar un Deacklock? 
Oracle detecta automáticamente los Deadlocks y los resuelve revirtiendo una de las transacciones  participan en el bloqueo, liberando así un conjunto de recursos bloqueados por esa transacción. La sesión que se deshace observará como error Oracle ORA-00060: deadlock detected while waiting for resource. Oracle también producirá información detallada en un archivo de rastreo en las bases de datos en el directorio udump


Mayormente estos Deadlocks son causados ​​por las aplicaciones que implican cambios de varias tablas en la misma transacción y múltiples operaciones están actuando en la misma tabla al mismo tiempo. 


1 comentario: