Tài liệu của tôi

Thanh bên đa gốc

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

Giao dịch

Giải thích về giao dịch ClientSession MongoDB của getTxJob, sự lan truyền phiên Reactor Context, trách nhiệm retry và ranh giới giao dịch Spring.


getTxJob
java

getTxJob(...) mở ClientSession bằng MongoExecutionContext.startSession() và bắt đầu giao dịch, sau đó gán phiên vào Reactor Context. Khi hoàn thành bình thường thì commit, khi có lỗi/hủy thì hủy giao dịch đang hoạt động, và cuối cùng là đóng phiên.

Phạm vi phiên

Phiên giao dịch chỉ được truyền bởi MongoExecutionContext#getSessionScope() cho cùng một thực thi DSL. DriverMongoExecutionContext cơ bản sử dụng MongoClient của riêng nó làm phạm vi phiên.

Việc thử lại giao dịch là trách nhiệm của bên gọi.

getTxJob(...) không tự động thử lại các lỗi giao dịch MongoDB như TransientTransactionError. Việc thử lại và số lần thử lại được quyết định bởi tính idempotent của operation, tác động bên ngoài, và quy tắc nghiệp vụ mà ứng dụng gọi biết.

Ranh giới với giao dịch Spring.

Spring @Transactional / TransactionalOperator

Ranh giới giao dịch/session do Spring Data MongoDB quản lý.

ReactiveMongoDsl#getTxJob

DSL khởi động trực tiếp ClientSession và truyền vào Reactor Context.

© 2026 Byeolnaerim. Bảo lưu mọi quyền.Giới thiệuChính sách xử lý thông tin cá nhân