我的文档库

多根目录侧边栏

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

事务

解释 getTxJob 的 MongoDB ClientSession 事务、Reactor 上下文会话传播、重试责任和 Spring 事务边界。


getTxJob
java

getTxJob(...) 通过 MongoExecutionContext.startSession() 打开 ClientSession 并开始事务,然后将会话绑定到 Reactor 上下文。正常完成时提交,错误/取消时中止活动事务,最后按顺序关闭会话。

会话范围

事务会话仅在 MongoExecutionContext#getSessionScope() 相同的 DSL 执行中传播。默认的 DriverMongoExecutionContext 使用自己的 MongoClient 作为会话范围。

事务重试由调用方负责。

getTxJob(...) 不会自动重试 TransientTransactionError 等 MongoDB 事务错误。重试的与否及次数由调用应用程序根据操作的幂等性、外部副作用和业务规则决定。

Spring 事务与 DSL 的边界。

Spring @Transactional / TransactionalOperator。

由 Spring Data MongoDB 管理的事务/会话边界。

ReactiveMongoDsl#getTxJob。

DSL 直接启动 ClientSession 并传递到 Reactor 上下文。

© 2026 Byeolnaerim. 保留所有权利.介绍隐私政策