목표는 저장 프로 시저 또는 트리거를 작성하여 문서를 읽고 바꾸고 한 트랜잭션에서 메타 데이터 문서를 업데이트 할 수있게하는 것입니다.DocumentDb 저장 프로 시저 및 낙관적 동시성
이제 컬렉션에 순차적으로 쓰는 경우 의도 한대로 작동하지만 여러 병렬 저장 프로 시저를 실행하는 경우 수동으로 etags를 비교하도록 스크립트를 구성해야합니까, 아니면 서버 측 스크립트?
this article에서 몇 가지 예를 읽은 후 읽기 교체 작업 도중에 etag가 변경되면 트랜잭션이 자동으로 실패 할 것이라는 인상을 받았습니다. 그러나 this example에서 작성자는 requestOptions 객체에 etag를 포함하고 replaceDocument 메소드에이를 전달합니다. 마찬가지로 클라이언트 측에서 .NET SDK를 사용하여이를 수행하고 있습니다.
이러한 불일치로 인해 혼란 스러웠습니다. 그래서 내 질문은 : 서버 측 스크립트의 경우 낙관적 동시성을 시행하기 위해 requestOptions 객체에 etag를 포함해야 하는가, 아니면 기본 동작인가?
좋은 질문입니다. 나는 항상 내 [sprocs] (https://github.com/lmaccherone/documentdb-utils/blob/master/sprocs/updateSomeDocuments.coffee)에서 etags를 사용했다. (아마도 방어 적으로) 나는 각 sproc 독자적으로 실행되며 일관성없는보기를 읽기 및 쓰기 할 기회가 없기 때문에 필요하지 않다고 생각합니다. –