Lock de tablas

Hola a todos, estamos teniendo un problema con la aplicacion a la hora de la carga de la oferta academica en el ABM de Comisiones, esta interfaz le tira a los usuarios el error “Los datos han sido modificados por otro usuario desde que se recuperaron de la Base” Error de Base de Datos (-3). Intullo que tiene que ver con el nivel de Lock de la tabla o las tablas, pero no se cuales son todas las que se ven afectadas. ¿Me podran arrojar un poco de luz sobre el tema? Estamos trabajando con la version 2.6 e informix v10.0.

Desde ya muchas gracias!

Claudio.–


Hola Claudio

El lockeo de tablas te genera otro error.
Normalmente ese se produce cuando se está queriendo actualizar un registro “inexistente”.
Lo de “inexistente” puede ser porque todavía no se haya insertado o porque algun otro usuario lo modificó desde el momento en que se recuperó de la base de datos.

Esa operación está personalizada?

Emilio

Hola Emilio, la verdad que no, esta base. El escenario es varios Departamento cargando Comisiones a traves de esta Interfaz, cada depto con su propio perfil acotado a los planes suyos y un usuario por depto cargando por vez. El problema radica en que no pueden guardar muchos registros a la vez dado que disparado el error, pierden todos los cambios hechos. A mi lo que me extraña qe entre ellos no pueden excluirse por que el conjunto de materias es disjunto, salvo para 6 materias que son comunes a todos. Aun asi estas ultimas no las carga ninguno de estos deptos, salvo una direccion dedicada a este fin.

No me quedo claro lo que queres decir con inexistente, la app genera un registro vacio en la db antes de hacer la escritura (update) final del registro?

Hola Claudio, este error lo da Power builder cuando un usuario intenta modificar un registro de una tabla que fue previamente modificada por otro usuario, es decir:

  1. Usuario 1 recupera un registro de una tabla
  2. Usuario 2 recupera el mismo registro de esa tabla
  3. Usuario 2 modifica y graba los cambios en ese registro. Ok. no hay problema.
  4. Usuario 1 modifica y graba los cambios en ese registro. En este caso da el error -3.

Si fuera error de LOCKS, suponiendo que el nivel de lockeo es Pagina, el error como comenta Emilio es otro, es decir que te dira que el registro esta bloqueado por otra sesion.
Igualmente podes cambiar el nivel de lockeo de esa tabla para que sea a nivel de registro (row) y no pagina que es el que se crea por defecto.

Muchas gracias por su ayuda Alejandro y Emilio, aparentemente las tablas sga_asig_clases y sga_comisiones y sus respectivas tablas de logs estaban en page lock, no asi sga_asignaciones que estaba bien, voy a esperar como reaccionan los usuarios frente a este cambio.

Saludos y gracias devuelta!

Claudio.–

Claudio, adjunto un archivo que contiene el seteo de lock a Row, de algunas tablas de Guarani (las de mayor acceso concurrente).

Saludos!