Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

commitTransaction()

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 행동
commitTransaction

다중 문서 트랜잭션 에서 작업으로 인한 변경 사항을 저장하고 트랜잭션 을 종료합니다.

mongosh 에서 이 명령은 Session.commitTransaction()Session.withTransaction() 헬퍼 메서드를 통해서도 실행할 수 있습니다.

헬퍼 메서드는 mongosh 사용자에게 편리하지만 데이터베이스 명령과 동일한 수준의 정보를 반환하지 못할 수 있습니다. 편의가 필요하지 않거나 추가 리턴 필드가 필요한 경우 데이터베이스 명령을 사용합니다.

commitTransaction 을(를) 실행하려면 admin 데이터베이스에 대해 명령을 실행하고 Session() 내에서 실행해야 합니다.

이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

참고

이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원 에 대한 자세한 내용은 지원되지 않는 명령을 참조하세요.

명령은 다음과 같은 구문을 가집니다:

db.adminCommand(
{
commitTransaction: 1,
txnNumber: <long>,
writeConcern: <document>,
autocommit: false,
comment: <any>
}
)

트랜잭션을 커밋할 때 세션은 트랜잭션 시작 시 지정된 쓰기 고려를 사용합니다. Session.startTransaction()을 참조하세요.

"w: 1" 쓰기 고려를 사용하여 커밋하는 경우 트랜잭션을 페일오버 발생 시 롤백할 수 있습니다.

트랜잭션이 커밋되면 트랜잭션에서 이루어진 모든 데이터 변경 사항이 저장되고 트랜잭션 외부에서 볼 수 있습니다. 즉, 트랜잭션은 다른 트랜잭션을 롤백하는 동안 다른 변경 사항을 커밋하지 않습니다.

트랜잭션이 커밋될 때까지 트랜잭션에서 변경된 데이터는 트랜잭션 외부에 표시되지 않습니다.

그러나 트랜잭션이 여러 샤드에 쓰기를 수행하는 경우, 모든 외부 읽기 작업이 커밋된 트랜잭션의 결과가 샤드 전체에 표시될 때까지 기다릴 필요는 없습니다. 예를 들어, 트랜잭션이 커밋되고 쓰기 1이 샤드 A에 표시되지만 쓰기 2가 샤드 B에 아직 표시되지 않는 경우, 읽기 고려 "local"의 외부 읽기는 쓰기 2를 보지 않고 쓰기 1의 결과를 읽을 수 있습니다.

돌아가기

abortTransaction

이 페이지의 내용