Télefono:
91 626 61 20
Dirección:
C/ Copenhague 6. Edificio Al Andalus. Planta 2ª. Oficina 5. 28232. Las Rozas. Madrid
En ocasiones resulta interesante saber qué transacciones llevan mucho tiempo activas. Esto puede desembocar en una Long Transaction, obligando a deshacer la transacción (Cuando se supera el umbral definido por LTXHWM), y eventualmente, bloqueando el gestor para todos los usuarios (Cuando se supera el umbral definido por LTXEHWM).
Lo primero de todo es saber encontrar qué transacciones llevan mucho tiempo. Para ello es necesario que sepamos en qué log nos encontramos actualmente, y para ello podemos hacer:
# onstat -l|grep C
Con este log ya podemos localizar las transacciones que llevan tiempo por medio de:
# onstat -x
De esta salida nos interesa la columna begin_logpos, que nos indica el log en el cual empezó la transacción. Cuanta más diferencia haya con el log actual, más tiempo llevará la transacción. De las transacciones que hayamos localizado tenemos que obtener el valor de userthread.
En el caso de que ya se haya marcado una transacción como larga, el gestor empieza a deshacerla. En este caso, el gestor se pone en el estado LONGTX y apunta en el online.log la transacción que está deshaciendo. Para localizarla podemos hacer:
#onstat -x|grep transaccion
Una vez obtenido el valor de userthread para la transacción correspondiente, podemos ver la sesión a la que pertenece por medio de
# onstat -u| grep
Una vez localizada la sesión, ya podemos consultar todo lo que necesitemos de ella.
# onstat -g ses
# onstat -g sql
Para cualquier tema relacionado con este artículo o relacionado con informix, no dude en ponerse en contacto con nosotros en info@proyectosysoluciones.es