트랜잭션 롤백

완료됨

트랜잭션은 Azure Cosmos DB SQL API의 JavaScript 프로그래밍 모델과 기본적으로 심도 있게 통합됩니다. JavaScript 함수 내부에서 모든 작업은 자동으로 단일 트랜잭션 아래에 래핑됩니다. 함수가 예외 없이 완료되면 모든 데이터 변경 내용이 커밋됩니다. 스크립트에서 단일 예외가 발생하면 Azure Cosmos DB의 SQL API가 전체 트랜잭션을 롤백합니다.

사실상 JavaScript 함수의 시작은 데이터베이스 시스템의 BEGIN TRANSACTION 문과 비슷하며 함수 범위의 끝은 COMMIT TRANSACTION과 기능이 동일합니다. 오류가 발생하면 ROLLBACK TRANSACTION과 기능이 동일합니다.

Illustration of the begin and commit of an implicit transaction using a JavaScript stored procedure를 입력합니다.

코드에서는 JavaScript에서 오류가 발생하여 간단하게 표시됩니다.

throw new Error('Something');

이 모듈의 앞부분에서 만든 항목 예제를 사용하여 콜백 함수를 만들어 작업이 서버에서 오류를 반환했는지 확인할 수 있습니다. 이 경우 즉시 오류를 다시 발생시켜 코드를 단락(short-circuit)하고 전체 저장 프로시저 트랜잭션이 롤백되도록 할 수 있습니다.

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