Udostępnij za pośrednictwem


EventHubsException — .NET

Zdarzenie EventHubsException jest wyzwalane, gdy operacja specyficzna dla usługi Event Hubs spowodowała problem, w tym zarówno błędy w usłudze, jak i specyficzne dla klienta.

Informacje o wyjątku

Wyjątek zawiera następujące informacje kontekstowe ułatwiające zrozumienie kontekstu błędu i jego względnej ważności.

  • IsTransient: określa, czy wyjątek jest uznawany za możliwy do odzyskania, czy nie. W przypadku, gdy została uznana za przejściowa, zastosowano już odpowiednie zasady ponawiania prób, a ponowne próby zakończyły się niepowodzeniem.
  • Przyczyna: Zawiera zestaw dobrze znanych przyczyn niepowodzenia, które pomagają kategoryzować i wyjaśnić główną przyczynę. Te powody mają na celu umożliwienie stosowania filtrowania wyjątków i innej logiki podczas sprawdzania tekstu komunikatu wyjątku nie byłoby idealne. Oto niektóre kluczowe przyczyny awarii:
    • Klient zamknięty: występuje, gdy klient centrum zdarzeń, który został już zamknięty lub usunięty. Zalecamy sprawdzenie kodu aplikacji, aby upewnić się, że obiekty z biblioteki klienta usługi Event Hubs są tworzone i zamykane w zamierzonym zakresie.
    • Limit czasu usługi: wskazuje, że usługa Event Hubs nie odpowiedziała na operację w oczekiwanym czasie. Ten problem mógł być spowodowany przejściowym problemem z siecią lub problemem z usługą. Usługa Event Hubs może lub nie została pomyślnie ukończona żądania; stan nie jest znany. Zaleca się podjęcie próby zweryfikowania bieżącego stanu i ponowienie próby w razie potrzeby.
    • Przekroczono limit przydziału: wskazuje, że istnieje zbyt wiele aktywnych operacji odczytu dla pojedynczej grupy odbiorców. Ten limit zależy od warstwy przestrzeni nazw usługi Event Hubs i może być konieczne przejście do wyższej warstwy. Alternatywą byłoby utworzenie dodatkowych grup odbiorców i upewnienie się, że liczba odczytów klienta odbiorcy dla dowolnej grupy mieści się w limicie. Aby uzyskać więcej informacji, zobacz Azure Event Hubs limity przydziału i limity.
    • Przekroczono rozmiar komunikatu: dane zdarzenia jako maksymalny rozmiar dozwolony zarówno dla pojedynczego zdarzenia, jak i partii zdarzeń. Obejmuje ona dane zdarzenia oraz wszelkie skojarzone metadane i obciążenie systemowe. Aby rozwiązać ten błąd, zmniejsz liczbę zdarzeń wysyłanych w partii lub zmniejsz rozmiar danych uwzględnionych w komunikacie. Ponieważ limity rozmiaru mogą ulec zmianie, zobacz Azure Event Hubs limity przydziału i limity dla określonych elementów.
    • Użytkownik odłączony: klient odbiorcy został odłączony od usługi Event Hub z wystąpieniem centrum zdarzeń. Zwykle występuje, gdy użytkownik z wyższym poziomem właściciela potwierdza własność w przypadku parowania partycji i grupy odbiorców.
    • Nie znaleziono zasobu: usługa Event Hubs nie może odnaleźć zasobu, takiego jak centrum zdarzeń, grupa odbiorców lub partycja. Mogła zostać usunięta lub wystąpił problem z samą usługą Event Hubs.

Obsługa wyjątków

Możesz zareagować na konkretną przyczynę błędu zdarzenia EventHubException na kilka sposobów. Jednym ze sposobów jest zastosowanie klauzuli filtru wyjątku w ramach bloku przechwytywania.

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

Następne kroki

Istnieją inne wyjątki udokumentowane w starszym artykule. Niektóre z nich dotyczą tylko starszej biblioteki klienta platformy .NET usługi Event Hubs.