เอกสารในห้องสมุดของฉัน

แถบด้านข้างหลายราก

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

ธุรกรรม

อธิบายธุรกรรม ClientSession ของ MongoDB ใน getTxJob, การแพร่กระจายเซสชันของ Reactor Context, ความรับผิดชอบในการลองใหม่ และขอบเขตธุรกรรมของ Spring


getTxJob
java

getTxJob(...) จะเปิด ClientSession โดยใช้ MongoExecutionContext.startSession() และเริ่มธุรกรรม จากนั้นจะใส่การผูกเซสชันใน Reactor Context เมื่อเสร็จสิ้นปกติจะทำการ commit, หากเกิดข้อผิดพลาด/ยกเลิกจะทำการ abort ธุรกรรมที่ใช้งานอยู่ และสุดท้ายจะปิดเซสชันตามลำดับ

ขอบเขตเซสชัน

เซสชันธุรกรรมจะถูกแพร่กระจายไปยังการดำเนินการ DSL เดียวกันโดย MongoExecutionContext#getSessionScope() DriverMongoExecutionContext พื้นฐานจะใช้ MongoClient ของตนเองเป็นขอบเขตเซสชัน

การลองทำธุรกรรมใหม่เป็นความรับผิดชอบของผู้เรียก.

getTxJob(...) จะไม่ลองทำธุรกรรม MongoDB ที่เกิดข้อผิดพลาดเช่น TransientTransactionError โดยอัตโนมัติ การตัดสินใจว่าจะลองทำใหม่หรือจำนวนครั้งขึ้นอยู่กับความเป็นอัตลักษณ์ของการดำเนินการ ผลข้างเคียงภายนอก และกฎทางธุรกิจที่รู้จักโดยแอปพลิเคชันที่เรียก.

ขอบเขตของธุรกรรม Spring.

Spring @Transactional / TransactionalOperator.

ขอบเขตของธุรกรรม/เซสชันที่จัดการโดย Spring Data MongoDB.

ReactiveMongoDsl#getTxJob.

DSL เริ่ม ClientSession โดยตรงและส่งต่อไปยัง Reactor Context.