Pausar o Detener transacciones JS


([N4] eduarchap) #1

Saludos

Quería saber si existe la posibilidad de pausar o detener una transacción en ejecución con presionar un botón (programado). Es decir, que desde el vDevelop programe algún script que cuando lo ejecute, determine cuales transacciones están en ejecución en ese instante y detener alguna en particular.


([N1] wikan) #2

Ahora mismo lo que pides es imposible hacerlo. No hay ningún comando para saber las transacciones en curso y tampoco para pararlas.


([N3] pacosatu) #3

Hola eduarchap.

No entiendo a qué te refieres con pausar o detener transacciones mediante código Velneo.
Las transacciones en Velneo se asocian normalmente a un proceso, es decir, el proceso genera una nueva transacción cuando usamos un comando que modifica datos. Cuando el proceso finaliza la transacción asociada finaliza igualmente, todo esto de forma automática. Tenemos además la posibilidad de “Forzar transacción” sin tener que usar un comando de mosificación.

Desde vAdmin solo podemos monitorizar las transacciones activas en un momento dado y “Cancelar” aquella transacción que por un ERROR de programación haya quedado activa permanentemente.

En una aplicación bien diseñada las transacciones serán de corta duración para producir los mínimos bloqueos posibles, por lo tanto no es necesario disponer de sistemas de control de transacciones desde el cliente.

De todas formas, si tienes procesos en 2º plano que generan transacciones muy largas y quieres controlarlas, yo diseñaría un sistema de variables globales, una por cada proceso en 2º plano. Estas variables globales funcionarían a modo de semáforo, de tal forma que si vale 1 el proceso en 2º plano está en PLAY, si vale 0 está en PAUSE y si vale -1 se CANCELA. Desde el proceso principal fijas el valor de estas variables globales para controlar los procesos/transacciones en 2º plano. Por supuesto, cada proceso en 2º plano se dará de alta y de baja en una lista cuando se inicie y finaliza la transacción. Cada proceso en 2º plano comprueba en un bucle el valor de la Variable global actuando en consecuencia: 1-contínua 0-pausa -1-rollback.

Saludos
Paco Satué