JetCommitTransaction2 fonction)
S’applique à : Windows | Windows Serveurs
La fonction JetCommitTransaction2 valide les modifications apportées à l’état de la base de données pendant le point d’enregistrement en cours et les migre vers le point d’enregistrement précédent. Si le point d’enregistrement le plus à l’extérieur est validé, les modifications apportées pendant ce point d’enregistrement sont validées à l’état de la base de données et la session quitte la transaction.
la fonction JetCommitTransaction2 a été introduite dans le système d’exploitation Windows 8.
JET_ERR JET_API JetCommitTransaction2(
__in JET_SESID sesid,
__in JET_GRBIT grbit,
__in DWORD cmsecDurableCommit,
__out JET_COMMIT_ID pCommitID
);
Paramètres
sesid
Session à utiliser pour cet appel.
grbit
Groupe de bits qui spécifient zéro, une ou plusieurs des valeurs énumérées dans le tableau suivant.
Valeur |
Signification |
|---|---|
JET_bitCommitLazyFlush |
La transaction est validée normalement, mais cette API n’attend pas que la transaction soit vidée dans le fichier journal des transactions avant de retourner à l’appelant. Cela réduit considérablement la durée d’une opération de validation au détriment de la durabilité. Toute transaction qui n’est pas vidée dans le journal avant un incident est automatiquement abandonnée lors de la récupération après incident lors du prochain appel à la fonction JetInit . Si JET_bitWaitLastLevel0Commit ou JET_bitWaitAllLevel0Commit sont spécifiés, cette option est ignorée. Si cet appel à JetCommitTransaction2 ne correspond pas au premier appel à la fonction JetBeginTransaction pour cette session, cette option est ignorée. Cela est dû au fait que la dernière action qui se produit sur le point d’enregistrement le plus à l’extérieur est le facteur déterminant si l’intégralité de la transaction est réellement validée sur le disque. |
JET_bitWaitAllLevel0Commit |
Toutes les transactions précédemment validées par une session qui n’ont pas encore été vidées dans le fichier journal des transactions seront vidées immédiatement. Cette API attend que les transactions aient été vidées avant de retourner à l’appelant. Cette option peut être utilisée même si la session n’est pas actuellement dans une transaction. Cette option ne peut pas être utilisée conjointement avec une autre option. cette option est disponible dans les versions du système d’exploitation Windows server à partir de Windows server 2003. |
JET_bitWaitLastLevel0Commit |
Si la session a précédemment validé des transactions et qu’elles n’ont pas encore été vidées dans le fichier journal des transactions, elles doivent être vidées immédiatement. Cette API attend que les transactions aient été vidées avant de retourner à l’appelant. Cela est utile si l’application a précédemment validé plusieurs transactions à l’aide de JET_bitCommitLazyFlush et souhaite maintenant les vider sur le disque. Cette option peut être utilisée même si la session n’est pas actuellement dans une transaction. Cette option ne peut pas être utilisée conjointement avec une autre option. |
cmsecDurableCommit
Durée de validation d’une transaction paresseuse.
pCommitID
ID de validation associé à cet enregistrement de validation.
Valeur retournée
Cette fonction retourne le type de données JET_ERR avec l’un des codes de retour énumérés dans le tableau suivant. pour plus d’informations sur les erreurs ESE (extensible Stockage engine) possibles, consultez erreurs du moteur de Stockage extensible et paramètres de gestion des erreurs.
Code de retour |
Description |
|---|---|
JET_errSuccess |
L’opération s’est terminée avec succès. |
JET_errClientRequestToStopJetService |
Il n’est pas possible de terminer l’opération, car toute activité sur l’instance associée à la session a cessé à la suite d’un appel à la fonction JetStopService . |
JET_errInstanceUnavailable |
Il n’est pas possible de terminer l’opération, car l’instance associée à la session a rencontré une erreur irrécupérable qui requiert que l’accès à toutes les données soit révoqué pour protéger l’intégrité de ces données. cette erreur est renvoyée uniquement par les versions du système d’exploitation Windows à partir de Windows XP. |
JET_errInvalidgrbit |
L’une des options demandées n’est pas valide ou n’est pas implémentée. Cette erreur est retournée par la fonction JetCommitTransaction2 dans les cas suivants :
|
JET_errNotInitialized |
Impossible de terminer l’opération, car l’instance associée à la session n’a pas encore été initialisée. |
JET_errNotInTransaction |
L’opération a échoué, car la session spécifiée n’est pas dans une transaction. |
JET_errRestoreInProgress |
Il n’est pas possible de terminer l’opération, car une opération de restauration est en cours sur l’instance associée à la session. |
JET_errSessionSharingViolation |
La même session ne peut pas être utilisée simultanément pour plusieurs threads. cette erreur est renvoyée uniquement par les versions du système d’exploitation Windows à partir de Windows XP. |
JET_errTermInProgress |
Il n’est pas possible de terminer l’opération, car l’instance associée à la session est en cours d’arrêt. |
En cas de réussite, toute modification apportée à la base de données pendant le point d’enregistrement actuel pour la session donnée est validée et le point d’enregistrement est terminé. Si le dernier point d’enregistrement de la session est terminé, la transaction est éventuellement vidée dans le fichier journal des transactions et la session quitte la transaction.
En cas d’échec, l’état transactionnel de la session reste inchangé. Aucune modification de l’état de la base de données ne se produit. L’application doit appeler la fonction JetRollback pour abandonner la transaction.
Remarques
Il doit y avoir un appel à JetCommitTransaction2 ou JetRollback pour qu’il corresponde à chaque appel à JetBeginTransaction pour une session donnée.
Configuration requise
| Condition requise | Valeur |
|---|---|
Client |
Requiert Windows 8. |
Serveur |
Requiert Windows Server 2012. |
En-tête |
Déclaré dans esent. h. |
Bibliothèque |
Utilisez ESENT. lib. |
DLL |
Requiert ESENT.dll. |
Voir aussi
JET_ERR
JET_GRBIT
JET_SESID
JetBeginTransaction
JetCommitTransaction
JetRollback
JetStopService