![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️SAP BASIS El proceso de bloqueo
SAP BASIS El proceso de bloqueo
![SAP BASIS El proceso de bloqueo SAP BASIS El proceso de bloqueo](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/352.jpg)
Proceso de bloqueo
--Para asegurar la consistencia de datos en nuestro sistema 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, el sistema SAP tiene su propio concepto de administracion de bloqueos(lock managment).s.
1. Transacciones de base de datos.
--Cada paso de dialogo forma una unidad fisica y logica: la transaccion 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.
2. Transacciones SAP.
--Se forman por una secuencia logica de pasos de trabajo relacionados y consistentes en terminos de negocio.
-- El sistema SAP administra su concepto de bloqueo utilizando el work process de enqueue(encolado).
3. Sistema de bloqueo en SAP.
-- El funcionamiento del concepto de bloqueo se lleva a cabo cuando un programa SAP realiza entrada de registro 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.
4. Enqueue Work Process
Este proceso maneja los bloqueos logicos de las transacciones de SAP en la tabla de bloqueo. Y se situa en la memoria principal de la instancia donde el proceso corre.
En el ejemplo dela figura 261 podemos describir lo siguiente:
* 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 chequear si un nuevo bloqueo puede generarse, esto es, si no ocurrira un conflicto con un bloqueo ya establecido.
Si el bloqueo puede crearse, entonces el work process de dialogo crea entrada en la tabla y se le entrega una key(llave) al usuario la cual se mantiene en la memoria de contexto de usuario.
Si el work process de dialogo y el enqueue work process corren en diferentes instancias se comunican por medio del message server. La solicitud de bloqueo se reenvia desde el work process de dialogo al enqueue work process atravves de dispatcher y message server.
5. Modos de bloqueo.
Cuando se solicita el bloqueo, el sistema verifica si el bloqueo generara un conflicto con alguna de las entradas que ya pudiesen 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 este momento.
Los desarrolladores son quienes determinan el modo de bloqueo para la aplicacion.
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. Rechaza cualquier otro tipo de bloqueo por otra transaccion. Solo puede acumular otros bloqueos E por el mismo usuario.
BLOQUEO DE LECTURA COMPARTIDO(SHARED LOCK MODE) identifica con la letra S. Se aceptan solicitudes adicionales de lectura. Una solicitud de escritura es rechazada.
BLOQUEO DE ESCRITURA MEJORADO(EXCLUSIVE NONCUMLATIVE WRITE LOCK), identifica con la letra X, solo puede ser solicitado una vez, todas las demas solicitudes se rechazan. "No acumulativo".
BLOQUEO OPTIMISTICO(OPTIMISTIC LOCK),identifica con la letra O. Al comienzo se establece 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 modificacion en una transaccion el bloqueo pasa al tipo E que es bloqueo de escritura exclusivo. Si otro bloqueo de tipo O existen sobre el objeto estos son eliminados de la tabla.
Transaccion SM12 muestra los bloqueos que actualmente hay en el sistema. Tenemos que tener cuidado en su uso ya que los bloqueo que SAP realiza son cuando un datos se encuentra dentro de un evento transaccional, es decir se ejecuta todo o nada y si lo liberamos podriamos generar inconsistencia de datos.
AUDIOTIP: Entiendo que son 2 situaciones ejemplares:
La primera es que el bloqueo este siendo realizado por su propio usuario, primero tenemos que ver la transaccion SM04 si no esta ejecutando en paralelo las mismas tareas, lo que puede suceder es que el usuario perdio conexion con el sistema por lo tanto quedaron los bloqueos sin liberar para tal caso nosotros podemos liberar esos bloqueos con la transaccion SM12 cuando ingresamos filtramos por nombre de usuario, buscamos los bloqueos los seleccionamos y desde el tachito de basura los eliminamos.
La segunda es cuando un tercero esta realizando los bloqueos, debemos asegurarnos que el usuario aun no se encuentre trabajando o no le haya prestado el usuario a alguien mas. Asegurandonos de que la eliminacion que vayamos a hacer sea correcta.
 
 
 
Sobre el autor
Publicación académica de Juan Torres Andrade, en su ámbito de estudios para la Carrera Consultor Basis NetWeaver.
Juan Torres Andrade
Profesión: Ingeniero en Sistemas Computacional - Mexico - Legajo: XZ88V
✒️Autor de: 20 Publicaciones Académicas
🎓Cursando Actualmente: Consultor en SAP BASIS Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Mantenerme constante-disciplinado para poder obtener el conocimiento y así poder lograr ser un consultor sap basis.
Certificación Académica de Juan Torres