マイライブラリドキュメント

マルチルートサイドバー

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トランザクション、Reactorコンテキストセッション伝播、リトライ責任とSpringトランザクション境界を説明します。


getTxJob
java

getTxJob(...)MongoExecutionContext.startSession()ClientSessionを開き、トランザクションを開始した後、Reactorコンテキストにセッションバインディングを入れます。正常に完了した場合はコミット、エラー/キャンセル時はアクティブトランザクションを中止し、最後にセッションをクローズする順序で処理します。

セッションスコープ

トランザクションセッションはMongoExecutionContext#getSessionScope()が同じDSL実行にのみ伝播されます。基本のDriverMongoExecutionContextは自身のMongoClientをセッションスコープとして使用します。

トランザクションの再試行は呼び出し側の責任です。

getTxJob(...)TransientTransactionError のような MongoDB トランザクションエラーを自動的に再試行しません。再試行の有無と回数は、操作の冪等性、外部の副作用、業務ルールを知っている呼び出しアプリケーションが決定します。

Spring トランザクションとの境界

Spring @Transactional / TransactionalOperator

Spring Data MongoDB が管理するトランザクション/セッションの境界です。

ReactiveMongoDsl#getTxJob

DSL が直接 ClientSession を開始し、Reactor コンテキストに渡します。

© 2026 Byeolnaerim. 無断転載を禁じます。紹介プライバシーポリシー