18.2. Administration des transactions
18.2.1. Naviguer et gérer les transactions
Le CLI de gestion basé de ligne de commande prend en charge la capacité de naviguer et de manipuler les enregistrements des transactions. Cette fonctionnalité est fournie par l'interaction entre le gestionnaire de transactions et l'API de Gestion (Management) de JBoss Enterprise Application Platform 6.
Le gestionnaire de transactions stocke des informations sur chaque transaction en attente et les participants impliqués dans la transaction, dans un stockage persistant appelé object store. L'API de gestion expose le store objet sous forme de ressource appelée
log-store
. Une opération API nommée probe
lit les journaux de transaction et crée un noeud pour chaque journal. Vous pouvez invoquer la commande probe
manuellement, quand vous souhaitez réactualiser le log-store
. Il est normal pour les journaux de transaction d'apparaitre ou de disparaitre rapidement.
Exemple 18.1. Réactualiser le Log Store
Cette commande réactualise le Log Store des groupes de serveurs qui utilisent le profil par défaut
default
dans un domaine géré. Dans le cas d'un serveur autonome, supprimer profile=default
de la commande.
/profile=default/subsystem=transactions/log-store=log-store/:probe
Exemple 18.2. Voir toutes les transactions préparées
Pour voir toutes les transactions préparées, commencer par réactualiser le log store (voir Exemple 18.1, « Réactualiser le Log Store »), puis exécuter la commande suivante, qui fonctionne de la même manière qu'une commande
ls
de système de fichier.
ls /profile=default/subsystem=transactions/log-store=log-store/transactions
Chaque transaction est visible, ainsi que son identifiant unique. Les opérations individuelles peuvent être exécutées contre une transaction individuelle (voir Gérer une transaction).
Gérer une transaction
- Voir des attributs de transaction.
- Pour voir des informations sur une transaction, comme son nom JNDI, son nom de produit EIS ou sa version, ou statut, utiliser la commande CLI
:read-resource
./profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:read-resource
- Voir tous les participants d'une transaction.
- Chaque journal de transaction contient un élément enfant nommé
participants
. Utiliser la commande CLIread-resource
CLI sur cet élément pour voir les participants des transactions. Les participants sont identifiés par leurs noms JNDI./profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=java\:\/JmsXA:read-resource
Le résultat devrait ressembler à ceci :{ "outcome" => "success", "result" => { "eis-product-name" => "HornetQ", "eis-product-version" => "2.0", "jndi-name" => "java:/JmsXA", "status" => "HEURISTIC", "type" => "/StateManager/AbstractRecord/XAResourceRecord" } }
Le statut du résultat affiché ici est dans un étatHEURISTIC
et est susceptible d'être recouvert. Voir Recouvrement d'une transaction. pour plus d'informations. - Supprimer une transaction.
- Chaque journal de transaction supporte une opération
:delete
pour effacer l'enregistrement qui représente la transaction./profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:delete
- Recouvrement d'une transaction.
- Chaque journal de transaction supporte le recouvrement par la commande CLI
:recover
.Recouvrement des transactions heuristiques et des participants
- Si le statut de la transaction est
HEURISTIC
, l'opération de recouvrement change l'état enPREPARE
et déclenche un recouvrement. - Si l'un des participants de la transaction est heuristique, l'opération de recouvrement tente de répondre à l'opération
commit
(validation). En cas de succès, le participant est retiré du journal des transactions. Vous pouvez vérifier cela en exécutant à nouveau l'opération:probe
sur lelog-store
et en vérifiant que le participant n'est plus inscrit. Si c'est le dernier participant, la transaction sera également supprimée.
- Réactualiser le statut de la transaction qui a besoin d'être recouvrée.
- Si une transaction a besoin d'être recouvrée, vous pourrez utiliser la commande CLI
:refresh
pour vous assurer qu'elle a toujours besoin d'être recouvrée, avant de tenter le recouvrement./profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:refresh
Note
Pour les transactions JTS, si les participants se trouvent sur des serveurs à distance, un nombre limité d'informations peut être disponible au Gestionnaire de Transactions. Dans ce cas, il est conseillé d'utiliser le store objet basé sur fichiers, plutôt que le mode stockage HornetQ. Cela constitue le comportement par défaut. Pour utiliser le mode de stockage HornetQ, vous pouvez définir la valeur de l'option
use-hornetq-store
sur true
, dans la configuration de Gestionnaire de Transaction. Veuillez consulter Section 18.1.2, « Configurer le Transaction Manager » pour plus d'informations concernant la configuration du Gestionnaire de Transaction.
Voir les statistiques de transaction
Si les statistiques de TM (Transaction Manager) sont activées, vous pouvez consulter les statistiques à propos du Gestionnaire de Transaction et du sous-système de transaction. Veuillez consulter Section 18.1.2, « Configurer le Transaction Manager » pour plus d'informations sur l'activation des statistiques de TM.
Vous pouvez consulter les statistiques soit par la Console de gestion basée-web, soit par la gestion de ligne de commande CLI. Dans la Console de gestion basée-web, les statistiques de transaction seront disponibles via Runtime → Subsystem Metrics → Transactions. Les statistiques de transaction sont disponibles pour chaque serveur dans un domaine géré, également. Vous pourrez spécifier le serveur dans la case de sélection Server située en haut à gauche.
La table suivante affiche chaque statistique disponible, sa description et la commande CLI pour afficher le statistique.
Tableau 18.4. Les statistiques de sous-système de transaction
Statistique | Description | Commande CLI |
---|---|---|
Total |
Le nombre total de transactions exécutées par le Gestionnaire de Transaction sur ce serveur.
|
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-transactions,include-defaults=true) |
Validé |
Le nombre de transactions validées exécutées par le Gestionnaire de Transaction sur ce serveur.
|
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-committed-transactions,include-defaults=true) |
Abandonné |
Le nombre de transactions interrompues exécutées par le Gestionnaire de Transaction sur ce serveur.
|
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-aborted-transactions,include-defaults=true) |
Délai expiré |
Le nombre de transactions expirées exécutées par le Gestionnaire de Transaction sur ce serveur.
|
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-timed-out-transactions,include-defaults=true) |
Heuristiques |
Pas disponible dans la Console de Gestion. Nombre de transactions dans un état heuristique.
|
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-heuristics,include-defaults=true) |
Transactions In-Flight |
Pas disponible dans la Console de Gestion. Nombre de transactions commencées mais pas encore achevées.
|
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-inflight-transactions,include-defaults=true) |
Origine de l'échec - Applications |
Le nombre de transactions échouées dont l'origine de l'échec était une application.
|
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-application-rollbacks,include-defaults=true) |
Origine de l'échec - Ressources |
Le nombre de transactions échouées dont l'origine de l'échec était une ressource.
|
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-resource-rollbacks,include-defaults=true) |