✒️SAP BASIS El proceso de bloqueo
SAP BASIS El proceso de bloqueo
- Las Transacciones de dB
Cada paso de dialogo forma una unidad física y lógica: la transacción de dB.
El sistema de dB sobre el que corre nuestro sistema SAP puede coordinar este tipo de transacciones de dB.
- Las Transacciones SAP
Las Transacciones SAP que se forman por una secuencia lógica de pasos de trabajo relacionados que son consistentes en términos de negocio, los cuales forman generalmente varios pasos de dialogo.
El sistema SAP necesita administrar su propio concepto de bloqueo, mediante el work process de enqueue (encolado). Esto asegura la independencia de plataforma utilizada para el sistema.
- El sistema de bloque en SAP
El concepto de bloqueo 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.
- El enqueue work process.
Maneja los bloqueos lógicos de las transacciones SAP en la tabla de bloqueo. Esta tabla se sitúa en la memoria principal de la instancia donde el proceso corre.
En el escenario de dos instancias, se puede deducir que la instancia central es aquella donde el enqueue work process se encuentra corriendo.
La transacción SM50 visualiza el equeue work process. Un WP de dialogo que corre en la misma instancia que el enqueue WP puede acceder directamente a la tabla de bloqueo en la memoria principal para revisar 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 wp de diálogo crea la entrada en la tabla y se le entrega una key al usuario la cual se mantiene en memoria de contexto de usuario.
En el caso que el wp de dialogo y el enqueue wp corren en diferentes instancias se comunicarán a través del message server. En este caso la solicitud de bloqueo se reenvía desde el wp de dialogo al enqueue wp a través del dispatcher y el ms (message server).
El enqueue wp es quien se encarga de revisar si puede crearse un bloqueo en la tabla. De ser posible, el bloqueo se realiza y la key generada se envía a través del dispatcher y el message server.
- Los modos de bloqueos.
A la solicitud de bloqueo, el sistema verifica si el bloqueo generará un conflicto con algunas de las entradas que ya pudiesen existir en la tabla. Si esto ocurre, la solicitud de bloqueo es rechazada, informando al usuario que la operación solicitada no puede realizarse en este momento.
El desarrollador es quien decide el modo de bloqueo para la aplicación:
- Bloqueo de Escritura Exclusivo (Exclusive write lock): Identificados con "E" en la tabla de bloqueos. Los datos bloqueados solo pueden ser editados por un usuario, rechazando cualquier otro tipo de bloqueo por otra transacción. Se puede acumular otros bloqueos "E" por el mismo usuario.
- Bloqueo de Lectura Compartida (Shared Lock Mode): Identificados con "S" en la tabla de bloqueos. Se aceptan solicitudes de lectura adicionales. La solicitud de escritura es rechazada.
- Bloqueo de Escritura Mejorado (Exclusive Noncumulative Write Lock): Identificados con "X" en la tabla de bloqueos. Solo se puede solicitar una única vez, todas las demás solicitudes se rechazan.
Bloqueo Optimístico (Optimistic Lock): Denominados con la letra "O" en la tabla de bloqueos. Estableciéndose en un principio como bloqueos de lectura y luego pueden transformarse en bloqueos de escritura. Permite bloqueos adicionales del mismo tipo sobre un objeto.
Cuando se pasa al modo de modificación en una transacción, el bloqueo pasa al tipo "E". Si otros bloqueos del 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 puede liberar desde esta transacción, se debe utilizar con mucha cautela pues los bloqueos generalmente SAP los realiza cuando un dato se encuentra dentro de un evento transaccional, es decir se ejecuta todo o nada y si lo liberamos podríamos generar inconsistencia de datos.
 
 
 
Sobre el autor
Publicación académica de Israel Cespedes Penaloza, en su ámbito de estudios para la Carrera Consultor Basis NetWeaver.
Israel Cespedes Penaloza
Profesión: Ingeniero Electrónico - Bolivia - Legajo: DO67A
✒️Autor de: 87 Publicaciones Académicas
🎓Cursando Actualmente: Consultor BASIS Nivel Avanzado
🎓Egresado del módulo:
Disponibilidad Laboral: PartTime
Certificación Académica de Israel Cespedes