مكتبتي

شريط جانبي متعدد الجذور

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

المعاملات

اشرح معاملة MongoDB ClientSession لـ getTxJob، وانتشار جلسة Reactor Context، ومسؤولية إعادة المحاولة وحدود معاملة Spring.


getTxJob
java

getTxJob(...) يفتح ClientSession باستخدام MongoExecutionContext.startSession() ويبدأ المعاملة ثم يربط الجلسة بسياق Reactor. عند الانتهاء بشكل طبيعي، يتم الالتزام، وعند حدوث خطأ/إلغاء، يتم إلغاء المعاملة النشطة، وأخيرًا يتم إغلاق الجلسة.

نطاق الجلسة

تنتشر جلسة المعاملة فقط في نفس تنفيذ DSL عبر MongoExecutionContext#getSessionScope(). يستخدم DriverMongoExecutionContext الافتراضي MongoClient الخاص به كنطاق جلسة.

إعادة محاولة المعاملة هي مسؤولية الجهة المستدعية.

getTxJob(...) لا يعيد المحاولة تلقائيًا لأخطاء معاملات MongoDB مثل TransientTransactionError. يتم تحديد ما إذا كان سيتم إعادة المحاولة وعدد مرات الإعادة من قبل التطبيق المستدعي الذي يعرف عن المساواة، التأثيرات الجانبية الخارجية، وقواعد العمل.

حدود المعاملة في Spring.

Spring @Transactional / TransactionalOperator.

حدود المعاملة/الجلسة التي تديرها Spring Data MongoDB.

ReactiveMongoDsl#getTxJob.

يبدأ DSL جلسة ClientSession مباشرة وينقلها إلى سياق Reactor.

© 2026 بيولناريم. جميع الحقوق محفوظة.مقدمةسياسة معالجة المعلومات الشخصية