سؤال

لقد جبوس و السبات على أساس النظام.وأنا بحاجة إلى معالجة اثنين من عمليات طويلة.عمليات يمكن أن يكون ربما أطول من الصفقة المهلة.فإنه عمليات استمرت العديد من العديد من الجهات في مختلف المعاملات.و إذا كان هناك شيء يذهب على نحو خاطئ ، خلال هذه العمليات يجب أن التراجع عن كافة التغييرات من المعاملات.

ما هي أفضل طريقة لحل ذلك ؟

أعتقد أن أفضل طريقة هي دمج جميع العمليات معاملة واحدة ، ولكن ذلك يتطلب إلى تعيين طويلة مهلة المعاملة, و من غير المقبول لدينا نظام.

هو إدارة العديد من المعاملات أفضل في هذه الحالة.و كيف يمكنني أن أفعل ذلك ؟

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

المحلول

ويمكن استخدام الخادم JTA (منسق المعاملات) للقيام بهذه العملية في خطوات متعددة مع معاملات XA؟ هذا الإعلان ديه قليلا من fan- إلى بضع منها مفتوحة المصدر التي يمكن أن تعمل من أجلك.

معاملات XA تسمح لك ان تفعل مجموعة من العمليات الصغيرة وارتكاب أو دحر لهم في ضربة واحدة. محاولة غوغلينغ عن "السبات XA المعاملات. معظم منصات RDBMS الحديثة (الخلية 5.X، الإنترنت، SQL Server و Oracle، DB2، سايبيس الخ) دعم معاملات XA.

نصائح أخرى

باستخدام معاملة واحدة جيدة وقوية جرا.حاول مرة أخرى لإقناع المسؤول ;-)


خلاف ذلك, أستطيع أن أفكر:

  • باستخدام أقصر المعاملات إلى إدراج عدد الصفوف باستخدام علامة تعني "غير مكتملة".هذا يمكن أن يكون في القائمة عمود أو واحدة جديدة (ربما تكون في الجدول؟).
  • إذا كان أي معاملة مستواها السابق, حاول مرة أخرى ؛ إذا كنت تفضل أن إحباط العملية ، يمكنك اختيار حذف الصفوف التي تحتوي على "غير مكتملة" علامة.
  • عندما تكون جميع المعاملات ارتكبت ، يمكنك فتح الصفقة الأخيرة فقط وضع علامات على جميع الصفوف كما في "الكامل" (ex: update ... where ...).هذا ينبغي أن يكون أسرع بكثير من كامل الإدراج ، لذلك ينبغي أن تكون المعاملة قصيرة بما فيه الكفاية.

وكان علي أن أفعل شيئا من هذا القبيل في نقابة الصحفيين (عبر السبات). فعلت العملية في المعاملات N بدلا من 1 صفقة كبيرة. ركض هذه العملية نادرا ما - كان بعمل الآلي - لذلك كان هناك أي مستخدم الانتظار في صفحة على شبكة الإنترنت للحصول على نتيجة

ومتى تتوقعون الصفقة لاتخاذ؟ متى تتوقعون المستخدم إلى الانتظار ؟؟ كيف وغالبا ما كنت تتوقع هذه العملية تحدث. ربما كنت متطلبات كنت ليست واضحة.

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