Reversión de transacciones

Completado

Las transacciones están integradas de forma profunda y nativa en el modelo de programación de JavaScript de Azure Cosmos DB for NoSQL. Dentro de una función de JavaScript, todas las operaciones se ajustan automáticamente en una única transacción. Si la función se completa sin ninguna excepción, se confirman todos los cambios en los datos. Azure Cosmos DB for NoSQL revierte toda la transacción si se produce una única excepción desde el script.

De hecho, el inicio de la función de JavaScript es similar a una instrucción BEGIN TRANSACTION de un sistema de base de datos, mientras que el final del ámbito de la función es el equivalente funcional de COMMIT TRANSACTION. Si se produce algún error, es el equivalente funcional de ROLLBACK TRANSACTION.

Illustration of the begin and commit of an implicit transaction using a JavaScript stored procedure

En el código, se muestra simplemente mediante la generación de un error en JavaScript:

throw new Error('Something');

Con el ejemplo de creación de elementos mostrado anteriormente en este módulo puede crear una función de devolución de llamada para determinar si la operación ha devuelto un error desde el servidor. Si es así, puede volver a producir el error inmediatamente a fin de provocar un cortocircuito en el código y hacer que se revierta toda la transacción del procedimiento almacenado.

(error, newItem) => {
    if (error) throw error;
    // Do something with item
}