
`MongoDBDriverSession::commitTransaction` 메서드는 MongoDB 트랜잭션을 커밋하는 역할을 합니다.
1. 트랜잭션 커밋 과정은 다음과 같습니다.
- 트랜잭션을 시작한 후, 데이터베이스에 변경을 적용합니다.
- `commitTransaction` 메서드를 호출하여 트랜잭션을 커밋합니다.
- 커밋이 성공적으로 완료되면, 트랜잭션의 변경이 데이터베이스에 반영됩니다.
2. 예외 상황에서 처리는 다음과 같습니다.
- 트랜잭션 커밋 중 예외가 발생하면, 트랜잭션은 자동으로 롤백됩니다.
- 예외가 발생하면, `MongoDBDriverSession` 객체의 상태가 변경되지 않습니다.
3. 트랜잭션 롤백은 다음과 같습니다.
- 트랜잭션을 롤백하기 위해서는 `abortTransaction` 메서드를 호출하면 됩니다.
- 롤백이 완료되면, 트랜잭션의 변경이 데이터베이스에서 취소됩니다.
사용 예는 다음과 같습니다.
#hostingforum.kr
php
use MongoDBDriverSession;
// MongoDB Driver 세션 객체 생성
$session = new Session();
// MongoDB 클라이언트 객체 생성
$client = new MongoDBClient('mongodb://localhost:27017');
// 데이터베이스 선택
$db = $client->selectDatabase('mydb');
// 컬렉션 선택
$collection = $db->selectCollection('mycollection');
// 트랜잭션 시작
$session->startTransaction();
// 데이터베이스에 변경을 적용
$collection->updateOne(['_id' => 1], ['$set' => ['name' => 'John']]);
// 트랜잭션 커밋
$session->commitTransaction();
// 트랜잭션 롤백
$session->abortTransaction();
2025-08-07 02:05