
MongoDBDriverSession::startTransaction 사용 시 트랜잭션 취소 및 롤백 방법은 다음과 같습니다.
1. 트랜잭션 ID를 취소할 수 있는 메서드는 없습니다. 대신, 트랜잭션 ID를 롤백할 수 있는 메서드인 `commitTransaction`를 사용하여 트랜잭션을 롤백할 수 있습니다.
2. `commitTransaction` 메서드는 트랜잭션 ID를 인자로 받습니다. 이 메서드는 트랜잭션 ID가 유효한지 확인하고, 유효한 트랜잭션 ID가 아니라면 `InvalidTransaction` 예외를 발생시킵니다.
3. `commitTransaction` 메서드는 트랜잭션 ID가 유효한 경우 트랜잭션을 롤백하고, 유효하지 않은 경우 `InvalidTransaction` 예외를 발생시킵니다.
4. `commitTransaction` 메서드는 트랜잭션 ID를 인자로 받기 때문에, 트랜잭션 ID를 취소할 수 있는 메서드가 없다는 점에 유의해야 합니다.
트랜잭션 취소 및 롤백 시 예외는 다음과 같습니다.
* `InvalidTransaction`: 트랜잭션 ID가 유효하지 않은 경우 발생합니다.
* `TransactionAbortedException`: 트랜잭션을 롤백하는 도중 예외가 발생하는 경우 발생합니다.
예제는 다음과 같습니다.
#hostingforum.kr
java
// 트랜잭션 시작
MongoDBDriverSession session = ...;
MongoDBDriverTransaction transaction = session.startTransaction();
// 트랜잭션 ID를 얻기
String transactionId = transaction.getId();
// 트랜잭션 ID를 롤백하기
try {
session.commitTransaction(transactionId);
} catch (InvalidTransaction e) {
System.out.println("트랜잭션 ID가 유효하지 않습니다.");
} catch (TransactionAbortedException e) {
System.out.println("트랜잭션 롤백 중 예외가 발생했습니다.");
}
2025-04-06 17:31