سؤال

مؤخرا هذه تم نشر السؤال حول تعريف ما هي المعاملة في سياق عام. كانت الإجابة الشائعة لهذا السؤال هي أن الصفقة يجب أن تكون وحدة عمل ذرية

يتعلق سؤالي بهذه الذرية (على ما أظن)، غالبا ما أرى مكالمات واضحة للإرتادة في الإجراءات المخزنة SQL.

هل هو عموما متطلبات شائعة لأنظمة معالجة المعاملات التي تم استدعاءها صراحة؟

هل يحدث التراجع تلقائيا إذا حدث بعض الأخطاء عند ارتكابها؟

هل كانت مفيدة؟

المحلول

في أنظمة TP، يمكن أن يحدث التراجع بناء على:

  • طلب صريح، مثل مكالمة لاستعادة أو مماثلة
  • أي استثناء أو خطأ غير مصراعي. قد تشمل هذه:
    • فقدان التواصل مع مشارك (في صفقة موزعة)
    • قيمة أو معلمة غير صالحة أو خارج النطاق
    • مهلة، بسبب عدم القدرة على الحصول على قفل على سبيل المثال، أو تأخير المستخدم.
  • في كل معاملة توزيعت التدريجي التدريجي، فشل أحد المشاركين في التصويت لالتزام

لا تحدث الاستفسر كما تقول "عند الالتزام"، الذي أعتقد أنك تعني "عند محاولة الالتزام". يمكن أن الاستعادة في أي وقت بعد البداية.

نصائح أخرى

في بعض الحالات، سيحدث التراجع تلقائيا بسبب الزناد أو انتهاك القيد. في الآخرين (كما رأيت)، فإن الإجراء المخزن نفسه يفعل التراجع. أيدن هو الصحيح أن الالتزام التلقائي يختلف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top