MongoDB\Driver\Session::startTransaction
(mongodb >=1.5.0)
MongoDB \ Driver \ Session :: startTransaction - 트랜잭션 시작
설명
final public MongoDB\Driver\Session::startTransaction(array $options
= ?): void
세션과 연결된 다중 문서 트랜잭션을 시작합니다. 주어진 시간에 세션에 대해 최대 하나의 열린 트랜잭션을 가질 수 있습니다. 트랜잭션을 시작한 후 세션 개체는 해당 작업을 트랜잭션과 연결하기 위해 "session"
옵션(예: MongoDB\Driver\Manager::executeBulkWrite())을 통해 각 작업에 전달되어야 합니다.
트랜잭션은 MongoDB\Driver\Session::commitTransaction()을 통해 커밋할 수 있고 MongoDB\Driver\Session::abortTransaction()을 통해 중단할 수 있습니다. 또한 세션이 가비지 수집에서 닫히거나 MongoDB\Driver\Session::endSession()을 명시적으로 호출하여 트랜잭션이 자동으로 중단됩니다.
매개변수
options
- 옵션은 이 메서드에 대한 인수로 전달할 수 있습니다. 이 옵션 배열의 각 요소는 MongoDB\Driver\Manager::startSession()으로 세션을 시작할 때 설정된 경우
"defaultTransactionOptions"
옵션의 해당 옵션을 재정의합니다.options
Option Type 설명 maxCommitTimeMS integer 단일 commitTransaction
명령을 실행할 수 있는 최대 시간(밀리초)입니다.지정된 경우
maxCommitTimeMS
는 0보다 크거나 같은 부호 있는 32비트 정수여야 합니다.readConcern MongoDB\Driver\ReadConcern 작업에 적용할 읽기 관심사입니다. 이 옵션은 MongoDB 3.2 이상에서 사용할 수 있으며 이전 서버 버전에 대해 지정된 경우 실행 시 예외가 발생합니다.
readPreference MongoDB\Driver\ReadPreference 작업을 위한 서버를 선택하는 데 사용할 읽기 기본 설정입니다. writeConcern MongoDB\Driver\WriteConcern 작업에 적용할 쓰기 관심사입니다.
반환 값
값이 반환되지 않습니다.
오류/예외
- 인수 구문 분석 오류에 대해 MongoDB\Driver\Exception\InvalidArgumentException을 던집니다.
- 서버 측 문제(예: 잠금을 얻을 수 없음)로 인해 트랜잭션을 시작할 수 없는 경우 MongoDB\Driver\Exception\CommandException을 던집니다.
- 트랜잭션을 중단할 수 없는 경우(예: 트랜잭션이 시작되지 않은 경우) MongoDB\Driver\Exception\RuntimeException을 던집니다.
변경 로그
버전 | 설명 |
---|---|
PECL mongodb 1.6.0 | "maxCommitTimeMS" 옵션이 추가되었습니다. |
기타
- MongoDB\Driver\Manager::startSession() - 이 클라이언트와 함께 사용할 새 클라이언트 세션 시작
- MongoDB\Driver\Session::commitTransaction() - 트랜잭션을 커밋합니다.
- MongoDB\Driver\Session::abortTransaction() - 트랜잭션 중단