xa_commit
Prototypes
int xa_commit(XID *xid, int rmid, long flags);
Description
Valide stricto sensu la transaction identifiée par xid, qui a déjà été préparée, pour le gestionnaire de ressources identifié par rmid avec les options flags.
Cette Application Program Interface (API) est fournie par le gestionnaire de ressources au moniteur transactionnel. Ce dernier décide des identifications.
Les valeurs possibles du codage bit de flags sont les suivantes :
- TMNOFLAGS.
Pas d'options.
- TMASYNC.
Demande de traitement asynchrone.
- TMONEPHASE.
Demande de validation en un temps en non en deux temps. En fait la préparation n'a pas été effectuée parce qu'il n'y a qu'un seul gestionnaire de ressources.
Les valeurs possibles du code retour sont les suivantes :
- XAER_RMERR.
Erreur interne.
- XAER_RMFAIL.
Echec.
- XAER_ASYNC.
Le mode asynchrone n'est pas supporté.
- XAER_INVAL.
Un paramètre possède une valeur invalide.
- XAER_NOTA.
xid n'identifie pas une transaction.
- XA_RBINTEGRITY.
Une contrainte d'intégrité n'est pas respectée aussi la validation est impossible. Uniquement avec TMONEPHASE.
- XA_OK.
Succès.
Exemple
#include <xa.h>
static int rmid;
static XID xid;
static xa_switch_t *XaSwitch;
...
if ((*XaSwitch->xa_prepare_entry)(&Xid, rmid, TMNOFLAGS)!=XA_OK)
...
if ((*XaSwitch->xa_forget_entry)(&Xid, rmid, TMNOFLAGS)!=XA_OK)
...
if ((*XaSwitch->xa_commit_entry)(&Xid, rmid, TMNOFLAGS)!=XA_OK)
...
if ((*XaSwitch->xa_rollback_entry)(&Xid, rmid, TMNOFLAGS)!=XA_OK)
...
Voir aussi
xa_prepare pour préparer la validation d'une transaction.
xa_forget pour abandonner la validation d'une transaction.
xa_rollback pour invalider une transaction.