DocumentDB 存储过程对于多个客户端同时执行是否安全?
Are DocumentDB stored procedures safe for simultaneous executions by multiple clients?
如何确保存储过程的每次执行都能完成其整个事务,而文档状态不会被另一个客户端同时执行的同一过程修改?
我需要做些什么来确保锁定正在修改的文档吗?
有没有办法实现类似 T-SQL TRANSACTION
的东西,以确保在发生错误时回滚整个操作?
存储过程在数据库快照上独立执行。要么操作中的一切正常,要么全部回滚。
您仍应为任何 replaceDocument()
或 deleteDocument()
调用使用 etag 选项,以确保您的文件未被更改。
etag = oldDocument._etag;
options = {etag: etag};
stillQueueing = collection.replaceDocument(documentLink, newDocument, options);
如何确保存储过程的每次执行都能完成其整个事务,而文档状态不会被另一个客户端同时执行的同一过程修改?
我需要做些什么来确保锁定正在修改的文档吗?
有没有办法实现类似 T-SQL TRANSACTION
的东西,以确保在发生错误时回滚整个操作?
存储过程在数据库快照上独立执行。要么操作中的一切正常,要么全部回滚。
您仍应为任何 replaceDocument()
或 deleteDocument()
调用使用 etag 选项,以确保您的文件未被更改。
etag = oldDocument._etag;
options = {etag: etag};
stillQueueing = collection.replaceDocument(documentLink, newDocument, options);