✒️SAP BASIS El proceso de bloqueo
SAP BASIS El proceso de bloqueo
PROCESO DE BLOQUEO
1.Transacciones de base de datos.
Desde la perpectiva de la base de datos, vimos en la leccion anterior que 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.
Desde el punto de vista de SAP, de todas formas esto no es suficiente para asegurar la consistencia porque las transacciones SAP, las cuales se forman por una secuencia logica de pasos de trabajo relacionados que son consistentes en terminos 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 tambien asegura la independencia de plataforma utilizada para el sistema.
3.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.
4.Enqueue work process.
El enqueue work process maneja los bloqueos lógicos 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.
En la figura 261, se muestra un escenario con dos instancias, podemos deducir que la instancia central es aquella donde el enqueue work process se encuentra corriendo.
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 ppal 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 enrada en la tabla y se le entrega una llave (key), al usuario la cual se mantiene en la memoria de contexto de usuario.
NOTA:Si el work process de dialogo y el enqueue work process corren en diferentes instancias se comunicaran 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 chequear si puede crearse un bloqueo en la tabla. Si esto es posible, el bloqueo se realiza y la key generada se envia a traves del dispatcher y el message server.
5.Modos de bloqueo
Cuand Si se solicita el 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. La aplicacion informa al usuario que la operacion solicitada no puede realizarse en este momento.
Los desarrolladores son quienes deciden el modo de bloqueo para la aplicacion:
a) 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 transaccion. Solo puede acumular otros bloqueos E por el mismo usuario.
b) 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 lectura es rechazada.
c) Bloqueo de escritura mejorado (Exclusive Noncumulative Write Lock): Identificado con la letra X en la tabla, solo puede ser solicitado una vez, todas las demas solicitudes se rechazan.
d) Bloqueo optimistico (Optimistic Lock): Denominados con la letra O en la tabla de bloqueo. Al cominezo se establecen como bloqueos de lectura y luego pueden transformarse en bloqueos de escritura. Permite bloqueos adicionales del mismo tipo sobre un objeto.
NOTA: Cuando un usuario pasa al modo de modificacion en una transaccion, el bloqueo pasa al tipo E. Si otros bloqueos de tipo O, existen sobre el objeto estos son eliminados de la tabla.
La transaccion SM12, muestra los bloqueos que actualmente hay en el sistema. Si bien es un hecho que se pueden liberar desde esta transaccion, 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 podriamos generar inconsistencias de datos.
 
 
 
Sobre el autor
Publicación académica de Luis Alberto Caro Montañez, en su ámbito de estudios para la Carrera Consultor Basis NetWeaver.
Luis Alberto Caro Montañez
Profesión: Ingeniero en Sistemas - Mexico - Legajo: ML16S
✒️Autor de: 106 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Mi principal objetivo es formar parte de un equipo profesional, en el que los logros y éxitos de cada uno sean reconocidos en un ambiente de trabajo optimo y agradable.
Certificación Académica de Luis Caro