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