Blog

Monitorización de transacciones

Una transacción es cualquier operación que implica escritura en disco en una tabla. Velneo vAdmin V7 permite monitorizar las transacciones realizadas en las cajas de datos instanciadas en un Velneo vServer V7.

En este artículo explicaremos cómo consultarlas y cuál es la información que nos ofrecen.

vadmin

Si seleccionamos la opción Transacciones de Velneo vAdmin V7, veremos a la derecha una lista de las transacciones abiertas. Cada línea de dicha lista se corresponderá con una transacción. La información que se muestra es la siguiente:

trn_info_0

Estado en el que la transacción se encuentra en el momento de la consulta. Los estados posibles son:

trn_en_curso

En curso: La transacción está siendo ejecutada.

trn_ok Finalizada OK: La transacción ha finalizado correctamente.


trn_undo Deshecha: La transacción ha sido deshecha.


trn_colision Colisión: La transacción ha colisionado con otra transacción en curso.


trn_redo Reintento: Se está reintentando ejecutar una transacción que ha sido deshecha.


Código de la transacción: Numerador que Velneo vServer V7 usa internamente para identificar esa transacción.

Título de la transacción: Descripción de la transacción que está siendo ejecutada.

Enganche: Código que Velneo vServer V7 usa internamente para identificar el enganche desde el que se lanza la transacción.

Usuario: Nombre del usuario declarado en Velneo vServer V7 que ha lanzado la transacción.

Instancia: Nombre de la instancia de datos en la que la transacción ha sido ejecutada.

Inicio transacción: Fecha y hora (horas, minutos y segundos) en la que la transacción ha comenzado.

Última operación: Fecha y hora (horas, minutos y segundos) en la que la transacción ha realizado la última operación de escritura en disco.

Operaciones: Una operación es un acceso de escritura en disco. En esta columna se informará sobre el número de accesos de escritura a disco realizados por la transacción en el momento de la consulta.

Si queremos ampliar la información sobre una transacción, haremos doble clic sobre la transacción deseada, y se nos mostrará una ventana donde podremos comprobar todas las operaciones que la misma ha implicado:

trn_info_1

En la parte superior de la ventana se muestra información sobre el número de operaciones que ha implicado la transacción, fecha/ hora de inicio y final y su duración. Además se incluye un detalle de las operaciones que ha implicado. En la captura de pantalla anterior se muestra  una transacción correspondiente al alta de una ficha en una tabla con la siguiente estructura:

tabla

La ficha ha sido dada de alta con los valores siguientes: ID = 1 y NAME = MAESTRO 1. Esta transacción ha implicado las siguientes operaciones:

1. Alta de una ficha en la tabla MAESTROS (la primera ficha).
2. Indexación de la clave primaria; índice ID (IDX=0): 1.
3. Indexación de la clave NAME (IDX=1): Maestro 1.
4 y 5. Indexación de las palabras del nombre; índice PALABRAS (IDX=2): MAESTRO y 1.
6 a 10 Indexación de los trozos de palabras del nombre; índice TROZOS (IDX=3): MAE, AES, EST, STR, y TRO.

En la lista de operaciones existe una columna llamada U.T.L., se trata del acrónimo de Universal Table Locator; es una clave que identifica de una manera global a una tabla en un Velneo vServer V7.

trn_info_2

En la pestaña Tablas de la ficha de una transacción se muestra un resumen de las tablas implicadas en la transacción, el tipo y número de operaciones de escritura realizadas en las mismas, tanto a nivel de datos como de índices.

12 thoughts on “Monitorización de transacciones

  1. Buenos dias Rafa:
     
    Me gusta mucho la nueva información sobre transacciones. Mucho mejor y más completa que la de v6.
     
    Eso si, supongo que una vez terminadas las transacciones y borradas de la lista que muestra el vAdmin, esta información ya no se puede consultar… ¿o si?.
     
    ¿Está previsto algo parecido al historial del servidor de v6 que permita consultar los datos de enganches, transacciones ya finalizadas, etc?
     
    En caso de que una transacción se deshaga, ¿la nueva información sobre transacciones indica el porqué se ha deshecho?
     
    Un saludo,
     
    Fran.

  2. @Fran:

    1. Eso si, supongo que una vez terminadas las transacciones y borradas de la lista que muestra el vAdmin, esta información ya no se puede consultar… ¿o si?.

    La información que se muestra en Velneo vAdmin V7 es visible de forma temporal.

    2. ¿Está previsto algo parecido al historial del servidor de v6 que permita consultar los datos de enganches, transacciones ya finalizadas, etc?

    Sí, por supuesto. En su momento informaremos de forma más detallada.

    3. En caso de que una transacción se deshaga, ¿la nueva información sobre transacciones indica el porqué se ha deshecho?

    Por el momento, la información sobre transacciones indica las operaciones dentro de la transacción que ha podido realizar.

    @Fran Varona:

    Y… ¿sigue existiendo el límite de tiempo para transacciones abiertas sin operaciones?

    El límite temporal existe pero es adaptativo, en función de los comandos de instrucción ejecutados, el tiempo de time out se regula, adaptándose a la situación.

    Gracias y un saludo.

  3. Gracias por la respuesta. 
    El problema es que si existe un time-out, da igual que sea adaptativo, porque habrá que adoptar estrategias que impidan que al usuario se le pueda «agotar» el tiempo. O sea, como antes.
    Saludos,
     
    Fran Varona
     

  4. ¿Como siempre? Lo que yo entiendo es que lo puedes definir desde proceso y adaptarlo a cada situación por lo que eres tu el que puede definir si lo crres conveniente unos segundos  o 24 horas aunque no tenga en principio ninguna lógica. ¿Es así?

  5. Creo que el comentario que ha realizado Miguel Pérez es el más acertado bajo mi punto de vista. Tú te lo guisas y tú te lo comes.
    Pero,
    ¿ Se podría también crear una cesta pública de cara a los usuarios finales advirtiéndo de las transacciones no realizadas correctamente a nivel interno de velneo ?
    O simplemente con este sistema, implantar una caja de datos genérica a las vApps e incorporarlas a nuestras aplicaciones. Dicha vApps podría se algo parecido al historial de vServer pero sólo con transacciones no finalizadas correctamente.
    Al menos el usuario final se verá informado de tales situaciones, aunque también corre de nuestra parte hacer uso correcto de la velneación del timeout.

  6. Hola.
    Lo que entiendo por «adaptativo» es que dependiendo de los comandos que generan la transacción, habrá un time-out mayor o menor, no que sea configurable por el usuario, de ahí mi comentario de «como antes». Si, efectivamente, es configurable por el programador, entonces no hay problema.
    Antes (en v6.x) tenías que tener mucho cuidado de que el usuario no tuviera ventanas abiertas con una transacción pendiente, pues en cuanto se descuida (le llaman por teléfono, etc.) se pasaban los 4 minutos y se cortaba la transacción, con la consiguiente posible pérdida de datos. Y además, no daba ningún aviso. Esto es, justamente, lo que intento evitar.
    Gracias,
    Fran Varona
     

Dejar un comentario