✒️SAP BASIS El proceso de bloqueo
SAP BASIS El proceso de bloqueo
PROCESO DE BLOQUEO
Para asegurar la consistencia de datos dentro de nuestro sistema SAP, debemos asegurarnos que los registros de datos no pueden ser accedidos y cambiados por más de un usuario al mismo tiempo.
Para lograr esto, el sistema SAP tiene su propio concepto de administración de bloqueos (lock Management).
TRANSACCIONES DE BASE DE DATOS
Desde la perspectiva de la base de datos, vimos que cada paso de dialogo forma una unidad física y lógica: la transacción de base de datos.
El sistema de base de datos sobre el que corre nuestro sistema SAP puede coordinar este tipo de transacciones de base de datos.
TRANSACCIONES SAP
La transacciones SAP, se forman por una secuencia lógica de paso de trabajo relacionados que son consistentes en términos de negocio, los cuales se forman generalmente de varios pasos de dialogo.
El sistema SAP necesita administrar su propio concepto de bloqueo. Esto se logra utilizando el work process de enqueue (encolado). Esto también asegura la independencia de plataforma utilizada para el sistema.
SISTEMA DE BLOQUEO EN SAP
El concepto de bloqueo de SAP funciona sobre el principio de que los programas SAP realizan entradas de registros en la tabla de bloqueo (lock table). Solo pueden generarse nuevas entradas en esta tabla, si no existen otras ya para el objeto que intenta bloquearse.
ENQUEUE WORK PROCESS
El enqueue work process maneja los bloqueos lógicos de la transacciones de SAP en la tabla de bloqueo.
Esta tabla se sitúa en la memoria principal de la instancia donde el proceso corre.
Este se encuentra corriendo en la instancia central.
WORK PROCESS EN LA MISMA INSTANCIA QUE EL ENQUEUE WORK PROCESS
Un work porcess de dialogo que corre en la misma instancia que el enqueue work process puede acceder directamente a la tabla de bloqueo en la memoria principal para chequear si un nuevo bloqueo puede generarse, esto es, si no ocurrirá un conflicto con un bloqueo ya establecido.
Si el bloqueo puede crearse, entonces el work process de dialogo crea la entrada en la tabla y se le entrega una key (llave) al usuario la cual se mantiene en memora de contexto de usuario.
WORK PROCESS EN DIFERENTE INSTANCIA QUE EL ENQUEUE WORK PROCESS
Si el work process de dialogo y el enqueue work process corren en diferentes instancias de comunicaran a través del message server.
En este caso la solicitud de bloqueo se reenvía desde el work process de dialogo al enqueue work process a través de los respectivos dispatchers y el message server.
Ahora el enqueu work process es quien se encarga de chequear si puede crearse un bloqueo en la tabla. Si esto es posible, el bloqueo se realiza y la key generada de envía a través del dispatcher y el message server.
MODOS DE BLOQUEOS
Cuando se solicita el bloqueo, el sistema verifica si el bloqueo generará un conflicto con alguna de las entradas que ya pudiesen existir en la tabla. Si esto ocurre, la solicitud de bloqueo es rechazada. La aplicación informa al usuario que la operación solicitada no puede realizarse en este momento.
Los desarrolladores son quienes deciden el modo de bloqueo para la aplicación:
BLOQUEO DE ESCRITURA EXCLUSIVO (EXCLUSIVE WRITE LOCK): denominado con la letra E en la tabla de bloqueos. Los datos bloqueados solo pueden ser editados por un usuario. El modo Exclusivo E rechaza cualquier otro tipo de bloqueo por otra transacción. Solo puede acumular otros bloqueos E por el mismo usuario.
BLOQUEO DE LECTURA COMPARTIDO (SHARED LOCK MODE): estos bloqueos se identifican con la letra S en la tabla de bloqueo. Se aceptan solicitudes adicionales de lectura. Una solicitud de escritura es rechazada.
BLOQUEO DE ESCRITURA MEJORADO (EXCLUSIVE NONCUMULATIVE WRTIE LOCK): identificados con la letra X en la tabla, solo puede ser solicitado una vez, todas las demás solicitudes se rechazan.
BLOQUEO OPTIMISTICO (OPTIMISTIC LOCK): denominados con la letra O en la tabla de bloqueo. Al comienzo se establecen como bloqueos de lectura y luego pueden transformarse en bloqueos de escritura. Permite bloqueos adicionales del mismo tipo sobre un objeto.
Cuando un usuario pada al modo de modificación en una transacción, el bloqueo pasa al tipo E. Si otros bloqueos de tipo O existen sobre el objeto estos son eliminados de la tabla.
La transacción SM12 muestra los bloqueos que actualmente hay en el sistema. Se utiliza para la revisión de los bloqueos, si bien es un hecho que se pueden liberar desde esta transacción, se debe utilizar con mucha cautela pero los bloqueos generalmente SAP los realiza cuando un dato se encuentra dentro de un evento transaccional, es decir que se ejecuta todo o nada y si lo liberamos podríamos generar inconsistencias.
La transacción SM12 nos permite liberar bloqueos, lo seleccionamos y con el cubo de basura podemos eliminarlos. Antes hay que analizar los bloqueos y el porqué.
 
 
 
Sobre el autor
Publicación académica de Josep Antoni Lopez Moyano, en su ámbito de estudios para la Carrera Consultor Basis NetWeaver.
Josep Antoni Lopez Moyano
Profesión: It Manager - España - Legajo: QP26P
✒️Autor de: 375 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP HCM Nivel Inicial
- Carrera Consultor Basis NetWeaver Nivel Avanzado
- Carrera Consultor Basis NetWeaver Nivel Inicial
- Máster Funcional ABAP
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial