Blog

Mejoras en transacciones desatendidas

Mejoras en transacciones desatendidas 1En la versión 7.3 de Velneo V7 hemos introducido una mejora en la gestión de las transacciones que permitirá mayor libertad al usuario final.

Esta mejora supone para el usuario final que se puede despreocupar de haber iniciado transacciones que impliquen el bloqueo de registros, siempre y cuando otros usuarios no intenten acceder a los registros que el servidor mantiene bloqueados mientras tanto.

Una transacción desatendida se produce cuando se inicia una transacción y al cabo de cierto tiempo no realiza operaciones, ni crea registros ni los modifica, etc. El servidor entiende que ha sucedido algún error con esa transacción y la deshace de forma automática al cabo de un tiempo (rollback).

Mejoras en transacciones desatendidas 2Esto puede venir porque durante un proceso se haya solicitado información al usuario final y esté esperando respuesta durante demasiado tiempo, se haya cortado la conexión entre el cliente y el servidor, etc. El servidor en esos casos ha de deshacer la transacción iniciada.

Esto es debido a que un proceso que realiza operaciones en disco, es decir, modifica registros de las tablas, ha de bloquearlos durante todo el tiempo que dure la transacción, siendo desbloqueados al finalizar.

Y el servidor debe desbloquearlos a fin de que otros usuarios tengan acceso a esos mismos registros, por lo que deshará una transacción desatendida, teniendo en cuenta ciertos parámetros.

Mejoras en transacciones desatendidas 3Así, por ejemplo, un usuario puede estar modificando un registro desde un proceso con un formulario usando un comando de instrucción que bloquea, por lo que ha iniciado una transacción y puede tener el proceso en espera mientras realiza unas tareas y mantiene el formulario abierto.

Anteriormente, si el usuario no realizaba una operación en un plazo máximo que rondaba los 4 minutos, el servidor deshacía la transacción para que los registros bloqueados por la transacción en curso volvieran a estar disponibles para el resto de usuarios, ya que entendía que la transacción estaba desatendida.

Esto también sucedía si se producía un corte de conexión de red u otro fallo que desconectara al usuario del servidor.

Mejoras en transacciones desatendidas 4La mejora pretende simplificar y facilitar la tarea al usuario final. Así, por un lado se ha ampliado el tiempo máximo a 6 minutos, durante los cuales el usuario final bloquea en exclusiva los registros con los que esté trabajando, aunque no se encuentre realizando operaciones realmente.

Por ejemplo, puede tener un formulario abierto desde proceso buscando la información que necesita para rellenarlo, sin preocuparse de que sea deshecho.

Pasado ese tiempo, el usuario no tendrá la exclusiva sobre los registros bloqueados, pero el servidor le permitirá tener abierta la transacción pese a estar desatendida, siempre y cuando otro usuario no intente acceder a alguno de los registros que se encuentran bloqueados por esa transacción.

Únicamente en el caso de que otro usuario intente realizar una modificación de uno de los registros que se encuentran bloqueados por el otro usuario, entonces el servidor deshará la transacción desatendida a fin de responder a los requerimientos del otro usuario.

En el caso de que se trate de un problema de conexión en el que se haya perdido contacto entre el cliente y el servidor, una vez que se excede la tolerancia del servidor para mantener el enganche vivo, el servidor deshará la transacción desatendida sin necesidad de que un usuario solicite acceder a los datos.

Mejoras en transacciones desatendidas 5

La transacción desatendida no estará tampoco eternamente abierta, si no que el servidor al cabo de un tiempo, largo, del orden de horas, se encargará de deshacer todas aquellas transacciones que se encuentren desatendidas.

5 thoughts on “Mejoras en transacciones desatendidas

  1. Falta un matiz por aclarar.

    Si la transaccion está desatendida pero el enganche que la originó permanece vivo, no la deshace salvo a peticion de otros usuarios

    Si la transaccion está desatendida y el enganche se ha caido, el hilo de control la deshace automaticamente

Dejar un comentario