Mis Documentos

Barra lateral de múltiples raíces

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

Transacciones

Explica la transacción de MongoDB ClientSession de getTxJob, la propagación de sesión del contexto de Reactor, la responsabilidad de reintento y los límites de transacción de Spring.


getTxJob
java

getTxJob(...) abre un ClientSession con MongoExecutionContext.startSession(), inicia la transacción y luego vincula la sesión al contexto de Reactor. En caso de finalización normal, se realiza un commit; en caso de error/cancelación, se aborta la transacción activa, y al final se cierra la sesión.

Alcance de sesión

La sesión de transacción se propaga solo a la misma ejecución de DSL a través de MongoExecutionContext#getSessionScope(). El DriverMongoExecutionContext básico utiliza su propio MongoClient como alcance de sesión.

El reintento de transacción es responsabilidad del llamador.

getTxJob(...) no reintenta automáticamente errores de transacción de MongoDB como TransientTransactionError. La decisión de reintentar y el número de intentos se determina en la aplicación llamadora, que conoce la idempotencia de la operación, los efectos secundarios externos y las reglas de negocio.

Límite con transacciones de Spring.

Spring @Transactional / TransactionalOperator.

Límite de transacción/sesión gestionado por Spring Data MongoDB.

ReactiveMongoDsl#getTxJob.

DSL inicia directamente ClientSession y lo pasa al contexto de Reactor.

© 2026 Byeolnaerim. Todos los derechos reservados.IntroducciónPolítica de privacidad