مشاركة عبر


EventHubsException - .NET

يتم تشغيل EventHubsException عندما تتسبب عملية معينة لمراكز الأحداث في مشكلة، بما في ذلك كل من الأخطاء داخل الخدمة والخاصة بالعميل.

معلومات الاستثناء

يتضمن الاستثناء المعلومات السياقية التالية للمساعدة في فهم سياق الخطأ وخطورته النسبية.

  • IsTransient: لتحديد ما إذا كان الاستثناء يعتبر قابلاً للاسترداد أم لا. في حالة اعتباره عابراً، تم بالفعل تطبيق نهج إعادة المحاولة المناسب ولم تنجح عمليات إعادة المحاولة.
  • السبب: يقدم مجموعة من الأسباب المعروفة جيداً للفشل والتي تساعد في تصنيف السبب الأساسي وتوضيحه. تهدف هذه الأسباب إلى السماح بتطبيق تصفية الاستثناءات والمنطق الآخر عند فحص نص رسالة استثناء لن يكون مثالياً. بعض أسباب الفشل الرئيسية هي:
    • وقف العميل: يحدث عندما يتم وقف عميل Event Hub أو التخلص منه بالفعل. نوصي بالتحقق من رمز التطبيق للتأكد من إنشاء وإغلاق كائنات من مكتبة عميل Event Hubs في النطاق المقصود.
    • مهلة الخدمة: تشير إلى أن خدمة Event Hubs (مراكز الأحداث) لم تستجب لعملية ما خلال الفترة الزمنية المتوقعة. قد تكون هذه المشكلة ناتجة عن مشكلة عابرة في الشبكة أو مشكلة في الخدمة. ربما تكون خدمة Event Hubs قد أكملت الطلب بنجاح أو لا؛ الحالة غير معروفة. يوصى بمحاولة التحقق من الحالة الحالية وإعادة المحاولة إذا لزم الأمر.
    • تم تجاوز الحصة النسبية: يشير إلى وجود عدد كبير جداً من عمليات القراءة النشطة لمجموعة مستهلكين واحدة. يعتمد هذا الحد على مستوى مساحة اسم "محاور الأحداث"، وقد يلزم الانتقال إلى مستوى أعلى. قد يكون البديل هو إنشاء مجموعات مستهلكين إضافية والتأكد من أن عدد قراءات عميل المستهلك لأي مجموعة ضمن الحد المسموح به. لمزيد من المعلومات، راجع حصص وحدود محاور أحداث Azure .
    • تجاوز حجم الرسالة: بيانات الحدث كحجم أقصى مسموح به لكل من حدث فردي ومجموعة من الأحداث. وهي تتضمن بيانات الحدث، وأي بيانات وصفية مرتبطة به، ونفقات النظام. لحل هذا الخطأ، قم بتقليل عدد الأحداث المرسلة دفعة واحدة أو تقليل حجم البيانات المضمنة في الرسالة. نظراً لأن حدود الحجم عرضة للتغيير، راجع حصص وحدود Azure Event Hubs للتعرف على التفاصيل.
    • المستهلك غير متصل: تم قطع اتصال عميل المستهلك بواسطة خدمة Event Hub من مثيل Event Hub. يحدث هذا عادةً عندما يؤكد مستهلك بمستوى مالك ملكيته لقسم وإقران مجموعة مستهلكين.
    • تعذر العثور على المورد: إخفاق خدمة "محاور الأحداث" في العثور على مورد، مثل مركز أحداث، أو مجموعة مستهلكين، أو قسم. ربما تم حذفه أو أن هناك مشكلة في خدمة Event Hubs نفسها.

معالجة الاستثناءات

يمكنك الرد على سبب فشل محدد لـ EventHubException بعدة طرق. إحدى الطرق هي تطبيق شرط مرشح استثناء كجزء من كتلة catch.

try
{
    // Read events using the consumer client
}
catch (EventHubsException ex) when 
    (ex.Reason == EventHubsException.FailureReason.ConsumerDisconnected)
{
    // Take action based on a consumer being disconnected
}

الخطوات التالية

هناك استثناءات أخرى موثقة في المقالة القديمة . بعضها ينطبق فقط على مكتبة عميل Event Hubs .NET القديمة.