Transaccion SM12
Muestra los bloqueos que hay en el sistema desde aqui se pueden liberar bloqueos pero es imporante ser cauteloso ya que se podrian generar inconsistencia de datos debido a que los bloqueos se realizan generalmente cuando un dato se encuantra dentro de un evento transaccional
Administracion de bloqueos
cada paso de dialogo forma una unidad fisica y logica que es la transaccion de base de datos, de todos modos esto no es suficiente para asegurar la consistencia de una secuencia logica de pasos de trabajo conformada por varios pasos de dialogo
El sistema SAP administra su propio concepto de bloqueo utilizando el work process de enqueue asegurando la independencia de la plataforma para el sistema.
El concepto de bloqueo funciona sobre el principio que los programas realian entradas de registros en la tabla de bloqueo (Lock Table), solo se pueden generan neuvas entradas si no existen otras ya para el objeto que intenta bloquearse
El 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
Si en la misma instancia corre un work process y un enqueque work process se puede acceder directamente a la tabla de bloqueo en la memoria principal para chequear si un nuevo bloqueo puede generarse, esto es asi porque sino ocurriria 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 entrgea una hey al usuario y se mantiene en la memoria de contexto de usuario
Si en difernetes instancias corren el work process y el enqueue work process entonces se comunicaran a traves del message server, la solictud se reenvia a traves de los respectivos dispatchers, llegando al message server que entrega al enqueue para checar si se puede crear el bloqueo, de ser posible el bloqueo se realiza y la key generada se envia a traves del dispatcher y el message server
De existir un conflicto con alguna de las entradas el boqueo es rechazado.
Los desarrolladores son quienes deciden el modeo de bloqueo para la aplicacion:
Bloqueo de escritura exclusivo denominado con la letra E. Los datos bloqueados solo pueden ser editados por un usuario. este tipo de bloqueo rechaza cualquier otro tipo de bloqueo por otra transaccion, solo puede acumular otros bloqueos E por el mismo usuario
Bloqueo de lectura compartida se identifican con la letra S, solo acepta solicitudes de lectura, solicitudes de escrituras son rechazadas.
Bloqueo de escritura mejorado se identifica con la letra X, solo puede ser solicitado una vez, todas las demas solicitudes se rechazan
Bloqueo Optimistico se identifica con la letra O se establecen al comienzo como bloqueos de lectura y luego pueden transformarse en bloqueos de escritura, permite bloqueos aicionales del mismi tipo sobre un objeto
Cuando un usuario pasa al modo de modificacion en una transaccion el bloqueo pasa el tipo E. Si otros bloqueos de tipo O exiten esto son eliminados de la tabla.
Si el bloqueo esta siendo ejecutado por el mismo usuario puede ser posible que se desconecto de la session y esta bloqueandose a si mismo. SM04