📘Deadlocks

Selector Alummnos / Empresas

Definición de Deadlocks

En SAP, un "deadlock" (o "interbloqueo" en español) es una situación crítica que ocurre a nivel de la base de datos. Se produce cuando dos o más procesos o transacciones están esperando mutuamente los recursos (generalmente, registros de una tabla) que el otro proceso tiene bloqueados, creando un ciclo de espera sin fin.

 

Para entenderlo mejor, imaginemos el siguiente escenario:

 

  • Proceso A necesita modificar un registro en la tabla 1 y un registro en la tabla 2.

  • Proceso B necesita modificar un registro en la tabla 2 y un registro en la tabla 1.

La secuencia de eventos que conduce a un deadlock sería:

 

  1. Proceso A inicia y bloquea el registro en la tabla 1.

  2. Proceso B se ejecuta en paralelo e inmediatamente bloquea el registro en la tabla 2.

  3. Proceso A ahora intenta bloquear el registro en la tabla 2, pero descubre que está bloqueado por el Proceso B. Entonces, se pone en espera.

  4. Proceso B ahora intenta bloquear el registro en la tabla 1, pero se encuentra con que está bloqueado por el Proceso A. También se pone en espera.

En este punto, ambos procesos están esperando que el otro libere el recurso que necesitan. Ninguno puede avanzar, y el sistema queda "atascado".

 

¿Por qué son un problema en SAP?

 

  • Afectan el rendimiento del sistema: Un deadlock puede paralizar a los usuarios que intentan acceder a las tablas afectadas y a los jobs de fondo que intentan procesar datos.

  • Causan errores y fallos de actualización: El sistema de base de datos tiene un mecanismo de detección de deadlocks. Cuando detecta un ciclo de espera, debe elegir a una de las transacciones como "víctima" para terminarla. La transacción de la víctima es "rollback" (sus cambios son deshechos), lo que a menudo resulta en un error de tiempo de ejecución (dump de ABAP) o un fallo de actualización en SAP (visible en la transacción SM13).

 

¿Dónde se producen y cómo se identifican?

 

Los deadlocks no son un problema de SAP en sí mismo, sino de la base de datos subyacente (Oracle, SQL Server, SAP HANA, etc.). Sin embargo, la causa principal suele ser un problema de programación o diseño en la capa de la aplicación (programas ABAP).

Los administradores de sistemas SAP (Basis) y los desarrolladores ABAP utilizan varias herramientas para identificar y analizar deadlocks:

  • Log del Sistema (SM21): Los deadlocks a nivel de la base de datos se registran aquí. Un mensaje de error como "Deadlock detected" o "Database error" es una señal clara.

  • Monitoreo de Bloqueos (SM12): Aunque SM12 muestra los bloqueos activos, no detecta directamente los deadlocks. Sin embargo, puede ayudar a identificar los bloqueos que están causando el problema.

  • Análisis de Actualizaciones (SM13): Si un deadlock causa un fallo en una actualización, el registro de la actualización fallida proporcionará detalles sobre el error y el programa que lo causó.

  • Herramientas de monitoreo de la base de datos: El DBA Cockpit de SAP (transacción DB02 o similar) y las herramientas nativas del proveedor de la base de datos (como el SQL Server Profiler o las vistas de Oracle) son las más potentes para analizar los logs de deadlock, que proporcionan la secuencia de eventos, las tablas involucradas y las sentencias SQL responsables.

 

¿Cómo se resuelven?

 

La solución a un deadlock es casi siempre corregir la lógica del programa ABAP que lo causa. Esto puede implicar:

 

  • Bloquear los registros en un orden consistente: Asegurarse de que todos los programas que acceden a las mismas tablas lo hagan en la misma secuencia para evitar ciclos de espera.

  • Reducir el tiempo de bloqueo: Minimizar la duración de las transacciones para que los recursos se liberen más rápido.

  • Optimizar las consultas: Asegurar que las consultas SELECT ... FOR UPDATE o UPDATE no bloqueen innecesariamente un gran número de registros.

  • Utilizar mecanismos de bloqueo específicos de SAP: Usar los "enqueue locks" de SAP para gestionar el acceso a los datos de manera más granular y controlada.

 

 

 

✒️+Comunidad Académica CVOSOFT

Para continuar aprendiendo, le invitamos a conocer las últimas 10 Publicaciones Académicas sobre el tema "Deadlocks" creadas y compartidas abiertamente por nuestros alumnos.

SAP Senior

Durante el día un gran número de usuarios de diálogo están trabajando en el sistema y una gran cantidad de procesos de trabajo de diálogo deben estar disponibles. En la noche solo se utiliza un número pequeño de estos procesos de trabajo de diálogo esto libera los recursos del sistema para procesar trabajos en segundo plano backgrounds jobs. El tipo y número de procesos de trabajo para cada instancia se definen en los perfiles mediante parámetros de perfil, el sistema se ajusta a los diferentes tipos y números de procesos de trabajo para adaptarse a las distintas demandas mediante el concepto de modos de operación. Con este modo se puede adaptar el tipo y la...

Acceder a esta publicación

Creado y Compartido por: Mayra Herrera Naranjo / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Establecer los modos de operación para la configuración de recursos Modos de Operación 1. ¿Qué son los Modos de Operación? Los modos de operación son una herramienta que permite ajustar de manera flexible el tipo y la cantidad de procesos de trabajo (work processes) en las instancias de SAP para adaptarse a las demandas variables del sistema a lo largo del día. Permiten cambiar la distribución de procesos (por ejemplo, de diálogo a fondo) sin necesidad de reiniciar el sistema. Definen cómo se utilizan los recursos del sistema (CPU y memoria) en diferentes momentos. 2. ¿Para qué sirven? Su función principal es la optimización...

Acceder a esta publicación

Creado y Compartido por: Fernando Escola / Disponibilidad Laboral: FullTime + Carta Presentación


👉Bueno, estos fueron los últimos artículos de más de 99.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.