معالجة أخطاء الاتصال العابرة لقاعدة بيانات Azure ل MariaDB
توضح هذه المقالة كيفية التعامل مع الأخطاء العابرة المتصلة بقاعدة بيانات Azure ل MariaDB.
الأخطاء العابرة
الخطأ العابر ، المعروف أيضا باسم الخطأ العابر ، هو خطأ سيحل نفسه. عادة ما تظهر هذه الأخطاء كاتصال بخادم قاعدة البيانات الذي يتم إسقاطه. كما لا يمكن فتح اتصالات جديدة بخادم. يمكن أن تحدث أخطاء عابرة على سبيل المثال عند حدوث فشل في الأجهزة أو الشبكة. قد يكون هناك سبب آخر هو إصدار جديد من خدمة PaaS التي يتم طرحها. يتم تخفيف معظم هذه الأحداث تلقائيا بواسطة النظام في أقل من 60 ثانية. أفضل الممارسات لتصميم وتطوير التطبيقات في السحابة هي توقع أخطاء عابرة. افترض أنها يمكن أن تحدث في أي مكون في أي وقت وأن يكون لديك المنطق المناسب للتعامل مع هذه المواقف.
التعامل مع الأخطاء العابرة
يجب معالجة الأخطاء العابرة باستخدام منطق إعادة المحاولة. الحالات التي يجب مراعاتها:
- يحدث خطأ عند محاولة فتح اتصال
- يتم إسقاط اتصال خامل على جانب الخادم. عند محاولة إصدار أمر لا يمكن تنفيذه
- يتم إسقاط اتصال نشط يقوم حاليا بتنفيذ أمر.
الحالة الأولى والثانية مستقيمة إلى حد ما للتعامل معها. حاول فتح الاتصال مرة أخرى. عندما تنجح، تم تخفيف الخطأ العابر بواسطة النظام. يمكنك استخدام قاعدة بيانات Azure الخاصة بك ل MariaDB مرة أخرى. نوصي بالانتظار قبل إعادة محاولة الاتصال. التراجع في حالة فشل عمليات إعادة المحاولة الأولية. بهذه الطريقة يمكن للنظام استخدام جميع الموارد المتاحة للتغلب على حالة الخطأ. النمط الجيد الذي يجب اتباعه هو:
- انتظر لمدة 5 ثوان قبل إعادة المحاولة الأولى.
- لكل إعادة محاولة تالية، قم بزيادة الانتظار بشكل كبير، حتى 60 ثانية.
- قم بتعيين الحد الأقصى لعدد عمليات إعادة المحاولة التي يعتبر التطبيق الخاص بك أن العملية قد فشلت.
عند فشل اتصال مع معاملة نشطة ، يكون من الصعب التعامل مع الاسترداد بشكل صحيح. هناك حالتان: إذا كانت المعاملة ذات طبيعة للقراءة فقط ، فمن الآمن إعادة فتح الاتصال وإعادة محاولة المعاملة. ومع ذلك ، إذا كانت المعاملة تكتب أيضا إلى قاعدة البيانات ، فيجب عليك تحديد ما إذا كانت المعاملة قد تم التراجع عنها ، أو إذا نجحت قبل حدوث الخطأ العابر. في هذه الحالة، قد لا تكون قد تلقيت إقرار الالتزام من خادم قاعدة البيانات.
إحدى طرق القيام بذلك ، هي إنشاء معرف فريد على العميل يتم استخدامه لجميع عمليات إعادة التأهيل. يمكنك تمرير هذا المعرف الفريد كجزء من المعاملة إلى الخادم وتخزينه في عمود به قيد فريد. بهذه الطريقة يمكنك إعادة محاولة المعاملة بأمان. سينجح إذا تم التراجع عن المعاملة السابقة ولم يكن العميل الذي أنشأ معرفا فريدا موجودا بعد في النظام. سيفشل في الإشارة إلى انتهاك مفتاح مكرر إذا تم تخزين المعرف الفريد مسبقا لأن المعاملة السابقة اكتملت بنجاح.
عندما يتصل البرنامج بقاعدة بيانات Azure ل MariaDB من خلال برامج وسيطة تابعة لجهات خارجية، اسأل البائع عما إذا كانت البرامج الوسيطة تحتوي على منطق إعادة المحاولة للأخطاء العابرة.
تأكد من اختبار إعادة محاولة المنطق. على سبيل المثال، حاول تنفيذ التعليمات البرمجية الخاصة بك أثناء توسيع نطاق موارد الحوسبة الخاصة بك لأعلى أو لأسفل قاعدة بيانات Azure لخادم MariaDB. يجب أن يتعامل التطبيق الخاص بك مع وقت التوقف القصير الذي تتم مواجهته أثناء هذه العملية دون أي مشاكل.