My Library Docs

Multi-root Sidebar

flex-layout

  • Getting Started

  • Guides

  • Reference

typed-rx-http

  • Getting Started

  • Guides

  • Reference

global-rx-state

  • Getting Started

  • Guides

  • Reference

webflux-fe-dev-assistant

reactive-mongo-dsl

Transactions

getTxJob의 MongoDB ClientSession transaction, Reactor Context session propagation, retry 책임과 Spring transaction 경계를 설명합니다.


getTxJob
java

getTxJob(...)MongoExecutionContext.startSession()으로 ClientSession을 열고 transaction을 시작한 뒤 Reactor Context에 session binding을 넣습니다. 정상 완료 시 commit, error/cancel 시 active transaction abort, 마지막에 session close 순서로 처리합니다.

Session scope

transaction session은 MongoExecutionContext#getSessionScope()가 같은 DSL 실행에만 전파됩니다. 기본 DriverMongoExecutionContext는 자신의 MongoClient를 session scope로 사용합니다.

Transaction retry는 호출 측 책임입니다

getTxJob(...)TransientTransactionError 같은 MongoDB transaction 오류를 자동 retry하지 않습니다. 재시도 여부와 횟수는 operation의 멱등성, 외부 side effect, 업무 규칙을 아는 호출 애플리케이션에서 결정합니다.

Spring transaction과의 경계

Spring @Transactional / TransactionalOperator

Spring Data MongoDB가 관리하는 transaction/session 경계입니다.

ReactiveMongoDsl#getTxJob

DSL이 직접 ClientSession을 시작하고 Reactor Context로 전달합니다.

© 2026 Byeolnaerim. All rights reserved.소개개인정보처리방침