MON$TRANSACTIONS

Décrit les transactions qui ont été lancées

Table 1. Description des colonnes de la table MON$TRANSACTIONS
Nom de la colonneType de donnéesDescription

MON$TRANSACTION_ID

BIGINT

L'identifiant (numéro) de la transaction.

MON$ATTACHMENT_ID

BIGINT

L'Id de l'attachement

MON$STATE

SMALLINT

Statut de la transaction :

  • 0 inactif (la transaction n'est pas associée à des requêtes) ;

  • 1 active (il y a au moins une requête associée à la transaction).

Ce lien est rompu lorsque la requête commence une nouvelle exécution dans une autre transaction, ou lorsque la transaction ou la requête est supprimée, mais pas lorsque la requête est exécutée ou que tous les enregistrements ont été sélectionnés dans le curseur.

MON$TIMESTAMP

TIMESTAMP

La date et l'heure auxquelles la transaction a commencé.

MON$TOP_TRANSACTION

INTEGER

La limite supérieure utilisée par une transaction de balayage lors de l'avancement d'un OIT global. Toutes les transactions supérieures à ce seuil sont considérées comme actives. Normalement, il est équivalent à MON$TRANSACTION_ID, mais en utilisant COMMIT RETAINING ou ROLLBACK RETAINING, MON$TOP_TRANSACTION restera inchangé ("hanging") lorsque l'ID de la transaction sera augmenté.

MON$OLDEST_TRANSACTION

INTEGER

Le numéro de la transaction intéressée la plus ancienne est OIT, Oldest Interesting Transaction.

MON$OLDEST_ACTIVE

INTEGER

Le numéro de la transaction active la plus ancienne est OAT, Oldest Active Transaction.

MON$ISOLATION_MODE

SMALLINT

Mode d'isolation (niveau) :

  • 0 cohérent (snapshot table stability);

  • 1 Concurrent (snapshot);

  • 2 read committed record version;

  • 3 read committed no record version;

  • 4 read committed read consistency.

MON$LOCK_TIMEOUT

SMALLINT

Temps d'attente :

  • -1 attente indéterminé (wait);

  • 0 transaction no wait;
    un autre nombre est le temps d'attente en secondes (lock timeout).

MON$READ_ONLY

SMALLINT

Un flag indiquant si la transaction est en lecture seule (valeur 1) ou en lecture-écriture (0).

MON$AUTO_COMMIT

SMALLINT

Indique si auto-commit est utilisé (valeur 1) ou non (0).

MON$AUTO_UNDO

SMALLINT

Une indication pour savoir si l'auto-undo est utilisé (valeur 1) ou non (0). Si auto-undo est utilisé, un point de sauvegarde au niveau de la transaction est créé. L'existence d'un point de sauvegarde permet d'annuler les changements si ROLLBACK est appelé, après quoi la transaction est simplement validée. Si ce point de sauvegarde n'existe pas ou s'il existe, mais que le nombre de changements est très élevé, le ROLLBACK réel est exécuté et la transaction est marquée comme "morte" dans TIP.

MON$STAT_ID

INTEGER

Id.

Example 1. Récupérer toutes les connexions qui ont démarré des transactions de lecture-écriture avec un niveau d'isolation supérieur à celui de l'utilisateur. Read Committed.
SELECT
    DISTINCT a.*
FROM
    mon$attachments a
    JOIN mon$transactions t ON a.mon$attachment_id = t.mon$attachment_id
WHERE
  NOT(t.mon$read_only = 1 AND t.mon$isolation_mode >= 2);