✒️SAP BASIS El proceso de bloqueo
SAP BASIS El proceso de bloqueo
Unidad 2. Lección 6. Proceso de Bloqueo.
Para asegurar la consistencia de datos dentro de SAP, debemos asegurarnos que los registros de datos no puedan ser accedidos y cambiados por mas de un usuario al mismo tiempo. Para lograr esto SAP tiene su propia administración de bloqueos (lock management)
1. Transacciones de base de datos. Cada paso de dialogo forma unidad fisica y logica: transacción de base de datos, y SAP puede coordinar estas transacciones de base de datos.
2. Transacciones SAP. Las transacciones SAP se forman por secuencias logicas de pasos de trabajo relacionados y consistentes en terminos de negocio, los cuales se forman de varios pasos de dialogo. SAP Administra su propio concepto de bloqueo utilizando el Work Process de enqueue (encolado)
3. Sistema de bloqueo SAP. Los programas SAP realizan entradas de registros en la tabla de bloqueo (lock table), y solo pueden generarse nuevas entradas en esta tabla si no existen otras ya para el objeto que intenta bloquearse.
4. Enqueue Work Process. maneja los bloqueos logicos de las transacciones de SAP en la tabla de bloqueo. Esta tabla se situa en la memoria principal de la instancia donde el proceso corre.
- Un work process 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 checar si un nuevo bloqueo puede generarse, esto es, sino ocurrira otro conflicto con un bloqueo ya establecido.
- si un bloqueo puede crearse, entonces el work process de dialogo crea la entrada en la tabla y se le entrega una key al usuario, la cual se mantiene en la memoria de contexto del usuario.
- Si el work process de dialogo y el enqueue work process corren en diferentes instancias, se comunicacran a traves del message server. En este caso la solicitud de bloqueo se reenvia desde el work process de dialogo al enqueue work process a traves de los respectivos dispatchers y el message server.
- Ahora el enqueue work process es quien se encarga de checar si puede crearse un bloqueo en la tabla. Si esto es posible, el bloqueo se realiz y la key generada se envia a traves del dispatcher y el mesage server.
5. Modos de bloqueos.
Cuando se solicita el bloqueo, el sistema verifica si el bloqueo generara un conflicto con alguna de las entradas que ya pueden existir en la tabla. Si esto ocurre, la solicitud de bloqueo es rechazada. Y la aplicacion informa al usuario que la operacion solicitada no puede realizarse en ese momento.
Los desarrolladores deciden el modo de bloqueo para su aplicacion:
- Bloqueo de Escritura Exclusivo (Exclusive write lock). se idenfica con la letra E en la tabla de bloqueos. Los datos bloqueados solo pueden ser editados por el usuario. El modo Exclusivo (E) rechaza cualquier otro tipo de bloqueo por otra transacción. Solo puede acumular otros bloqueos E por el mosmo usuario.
- Bloqueo de Lecutura Compartido (Shared Lock Mode). Se identifica con la letra S en la tabla de bloqueo. Se aceptan solicitudes adicionales de lectura. Una solicitud de escrituda es rechazada.
- Bloqueo de Escritura Mejorado (Exclusive Noncumulative Write Lock). Se identifica con la letra X y solo puede ser solicitado una vez, todas las demas solicitudes se rechazan.
- Bloqueo Optimistico (Optimistic Lock). Se denomina con la letra O. 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 pasa al modo de modificación en una transacion, el bloqueo pasa al tipo E. Si otros bloqueos de tipo O existen sobre el objeto, éstos son eliminados de la tabla.
La transaccion para ver los bloqueos que existen en el sistema, es la SM12. En esta transacción se pueden liberar los bloqueos, sin embargo hay que realizarlo con mucha cautela, ya que cuando SAP los realiza es cuando un dato se encuentra dentro de un evento transaccional, es decir, que se eejecuta todo o nada y si lo liberamos podriamos generar la insconsistencia de los datos.
TIP. Pueden existir dos situaciones, cuando un usuario nos diga que no puede trabajar porque esta siendo bloqueados, y se dbe analizar.
1. Ver que el bloqueo pueda estar ocurriendo desde su mismo usuario, ya sea porque esta ejecutando las mismas tareas en paralelo o bien se haya perdido conexion el usuario y se quedaron pendientes los bloqueos, y entonces en este caso podemos liberar esos bloqueos con la SM12, seleccionandolos y dando click en el botecito de basura.
2. Que los bloqueos se esten generando por un tercero. En este caso hay que asegurarse que ese tercero ya no se encuentre trabajando, o bien que no haya prestado su usuario (situacion que no debe ocurrir, es grave). Sinos aseguramos que el usarios ya no se encuentre en la empresa o trabajando, entonces y solo entonces, podemos liberar los bloqueos. Pero hay que estar bien seguros, ya que podriamos estar liberando los bloqueos cuando existe una transaccion por detras y causar inconsistencia.
 
 
 
Sobre el autor
Publicación académica de Marybell Adriana Hernandez Robles, en su ámbito de estudios para la Carrera Consultor Basis NetWeaver.
Marybell Adriana Hernandez Robles
Profesión: Ing. en Sistemas Computacionales / Mti - Mexico - Legajo: SC27M
✒️Autor de: 50 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Marybell Hernandez