Función JetCommitTransaction
Se aplica a: Windows | Windows Server
Función JetCommitTransaction
La función JetCommitTransaction confirma los cambios realizados en el estado de la base de datos durante el punto de guardado actual y los migra al punto de guardado anterior. Si se confirma el punto de guardado más externo, los cambios realizados durante ese punto de guardado se confirmarán en el estado de la base de datos y la sesión saldrá de la transacción.
JET_ERR JET_API JetCommitTransaction(
__in JET_SESID sesid,
__in JET_GRBIT grbit
);
Parámetros
sesid
Sesión que se va a usar para esta llamada.
grbit
Un grupo de bits que especifica cero o más de las siguientes opciones.
Value |
Significado |
---|---|
JET_bitCommitLazyFlush |
La transacción se confirma normalmente, pero esta API no espera a que la transacción se vacíe en el archivo de registro de transacciones antes de volver al autor de la llamada. Esto reduce drásticamente la duración de una operación de confirmación a costa de durabilidad. Cualquier transacción que no se vacíe en el registro antes de que se anule automáticamente un bloqueo durante la recuperación de bloqueos durante la siguiente llamada a JetInit. Si se especifican JET_bitWaitLastLevel0Commit o JET_bitWaitAllLevel0Commit, esta opción se omite. Si esta llamada a JetCommitTransaction no coincide con la primera llamada a JetBeginTransaction para esta sesión, esta opción se omite. Esto se debe a que la acción final que se produce en el punto de guardado más externo es el factor determinante de si toda la transacción se confirma realmente en el disco. |
JET_bitWaitAllLevel0Commit |
Todas las transacciones confirmadas previamente por cualquier sesión que aún no se hayan vaciado en el archivo de registro de transacciones se vaciarán inmediatamente. Esta API esperará hasta que las transacciones se hayan vaciado antes de volver al autor de la llamada. Esta opción se puede usar incluso si la sesión no está actualmente en una transacción. Esta opción no se puede usar en combinación con ninguna otra opción. Esta opción solo está disponible a partir de Windows Server 2003. |
JET_bitWaitLastLevel0Commit |
Si la sesión ha confirmado previamente las transacciones y aún no se han vaciado en el archivo de registro de transacciones, se deben vaciar inmediatamente. Esta API esperará hasta que las transacciones se hayan vaciado antes de volver al autor de la llamada. Esto resulta útil si la aplicación ha confirmado previamente varias transacciones mediante JET_bitCommitLazyFlush y ahora quiere vaciar todas ellas en el disco. Esta opción se puede usar incluso si la sesión no está actualmente en una transacción. Esta opción no se puede usar en combinación con ninguna otra opción. |
Valor devuelto
Esta función devuelve el tipo de datos JET_ERR con uno de los siguientes códigos de retorno. Para obtener más información sobre los posibles errores de ESE, vea Extensible Storage Engine Errors and Error Handling Parameters.
Código devuelto |
Descripción |
---|---|
JET_errSuccess |
La operación se ha completado correctamente. |
JET_errClientRequestToStopJetService |
No es posible completar la operación porque toda la actividad de la instancia asociada a la sesión ha dejado de funcionar como resultado de una llamada a JetStopService. |
JET_errInstanceUnavailable |
No es posible completar la operación porque la instancia asociada a la sesión ha encontrado un error irrecuperable que requiere que se revoque el acceso a todos los datos para proteger la integridad de esos datos. Windows XP solo devolverá este error y versiones posteriores. |
JET_errInvalidgrbit |
Una de las opciones solicitadas no era válida o no se implementó. JetCommitTransaction devolverá este error cuando:
|
JET_errNotInitialized |
No es posible completar la operación porque la instancia asociada a la sesión aún no se ha inicializado. |
JET_errNotInTransaction |
Error en la operación porque la sesión especificada no está en una transacción. |
JET_errRestoreInProgress |
No es posible completar la operación porque hay una operación de restauración en curso en la instancia asociada a la sesión. |
JET_errSessionSharingViolation |
No se puede usar la misma sesión para más de un subproceso al mismo tiempo. Windows XP solo devolverá este error y versiones posteriores. |
JET_errTermInProgress |
No es posible completar la operación porque se está cerrando la instancia asociada a la sesión. |
Si se ejecuta correctamente, se confirmarán los cambios realizados en la base de datos durante el punto de guardado actual de la sesión especificada y se finalizará ese punto de guardado. Si el último punto de guardado de la sesión finalizó, la transacción se vaciará opcionalmente en el archivo de registro de transacciones y la sesión saldrá de la transacción.
En caso de error, el estado transaccional de la sesión permanecerá sin cambios. No se producirá ningún cambio en el estado de la base de datos. La aplicación debe llamar a JetRollback para anular la transacción.
Comentarios
Debe haber una llamada a JetCommitTransaction o JetRollback para que coincida con cada llamada a JetBeginTransaction para una sesión determinada.
Requisitos
Requisito | Value |
---|---|
Cliente |
Requiere Windows Vista, Windows XP o Windows 2000 Professional. |
Servidor |
Requiere Windows Server 2008, Windows Server 2003 o Windows 2000 Server. |
Encabezado |
Declarado en Esent.h. |
Library |
Use ESENT.lib. |
Archivo DLL |
Requiere ESENT.dll. |
Consulte también
JET_ERR
JET_GRBIT
JET_SESID
JetBeginTransaction
JetCommitTransaction
JetRollback
JetStopService