Compartilhar via


EventHubsException - .NET

Um EventHubsException é disparado quando uma operação específica para os hubs de eventos causou um problema, incluindo ambos os erros dentro do serviço e específico para o cliente.

Informações da exceção

A exceção inclui as seguintes informações contextuais para ajudar a entender o contexto do erro e sua severidade relativa.

  • IsTransient: identifica se a exceção é considerada recuperável ou não. No caso em que foi considerado transitório, a política de repetição apropriada já foi aplicada e as novas tentativas não foram bem-sucedidas.
  • Reason: fornece um conjunto de motivos conhecidos para a falha que ajudam a categorizar e esclarecer a causa raiz. Esses motivos destinam-se a permitir a aplicação de filtragem de exceção e outra lógica ao inspecionar o texto de uma mensagem de exceção que não seria ideal. Alguns motivos de falha de chave são:
    • Client Closed: ocorre quando um cliente do hub de eventos já foi fechado ou descartado. Recomendamos que você verifique o código do aplicativo para garantir que os objetos da biblioteca de cliente dos hubs de eventos sejam criados e fechados no escopo pretendido.
    • Service Timeout: indica que o serviço de hubs de eventos não respondeu a uma operação dentro do período de tempo esperado. Esse problema pode ter sido causado por um problema de rede ou problema de serviço transitório. O serviço de hubs de eventos pode ou não ter concluído a solicitação com êxito; o status não é conhecido. É recomendável tentar verificar o estado atual e tentar novamente, se necessário.
    • Quota Exceeded: indica que há muitas operações de leitura ativas para um único grupo de consumidores. Esse limite depende da camada do namespace dos hubs de eventos e a mudança para uma camada mais alta pode ser necessária. Uma alternativa seria criar grupos de consumidores adicionais e garantir que o número de leituras de clientes do consumidor para qualquer grupo esteja dentro do limite. Para obter mais informações, veja cotas e limites dos Hubs de Eventos do Azure.
    • Message Size Exceeded: dados de evento como um tamanho máximo permitido para um evento individual e um lote de eventos. Ele inclui os dados do evento e os metadados associados e a sobrecarga do sistema. Para resolver esse erro, reduza o número de eventos enviados em um lote ou reduza o tamanho dos dados incluídos na mensagem. Como os limites de tamanho estão sujeitos a alterações, Hubs de Eventos do Azure cotas e limites específicos.
    • Consumidor Desconectado: um cliente consumidor foi desconectado pelo serviço hub de eventos da instância do Hub de Eventos. Normalmente, isso ocorre quando um consumidor com um nível de proprietário mais alto declara a propriedade sobre um emparelhamento de partição e grupo de consumidores.
    • Recurso Não Encontrado: o serviço hubs de eventos não pôde encontrar um recurso, como um hub de eventos, um grupo de consumidores ou uma partição. Ele pode ter sido excluído ou que há um problema com o próprio serviço de Hubs de Eventos.

Tratamento de exceções

Você pode reagir a um motivo de falha específico para EventHubException de várias maneiras. Uma maneira é aplicar uma cláusula de filtro de exceção como parte do bloco 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
}

Próximas etapas

Há outras exceções documentadas no artigo herdado. Alguns deles se aplicam somente à biblioteca de cliente .NET dos hubs de eventos herdados.