Terugdraaitransacties

Voltooid

Transacties zijn diep en systeemeigen geïntegreerd in het JavaScript-programmeermodel van Azure Cosmos DB for NoSQL. In een JavaScript-functie worden alle bewerkingen automatisch verpakt onder één transactie. Als de functie zonder uitzondering is voltooid, worden alle gegevenswijzigingen doorgevoerd. Met Azure Cosmos DB voor NoSQL wordt de hele transactie teruggedraaid als er één uitzondering uit het script wordt gegenereerd.

In feite is het begin van de JavaScript-functie vergelijkbaar met een BEGIN TRANSACTION-instructie in een databasesysteem, waarbij het einde van het functiebereik het functionele equivalent is van COMMIT TRANSACTION. Als er een fout optreedt, is dat het functionele equivalent van ROLLBACK TRANSACTION.

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

In code wordt dit eenvoudig weergegeven door een fout in JavaScript te genereren:

throw new Error('Something');

Met behulp van het voorbeeld van een item maken van eerder in deze module kunt u een callback-functie maken om te bepalen of de bewerking een fout van de server heeft geretourneerd. Zo ja, dan kunt u de fout onmiddellijk opnieuw uitvoeren om uw code kort te houden en ervoor te zorgen dat de hele opgeslagen proceduretransactie wordt teruggedraaid.

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