Partilhar via


EventHubsException - .NET

Um EventHubsException é acionado quando uma operação específica dos Hubs de Eventos causou um problema, incluindo erros no serviço e específicos do cliente.

Informações de exceção

A exceção inclui as seguintes informações contextuais para ajudar a compreender o contexto do erro e a respetiva gravidade relativa.

  • IsTransient: identifica se a exceção é considerada recuperável ou não. No caso em que foi considerada transitória, a política de repetição adequada já foi aplicada e as repetições não foram bem-sucedidas.
  • Motivo: fornece um conjunto de razões conhecidas para a falha que ajudam a categorizar e clarificar a causa principal. Estes motivos destinam-se a permitir a aplicação da filtragem de exceções e outra lógica ao inspecionar o texto de uma mensagem de exceção não seria o ideal. Alguns dos principais motivos de falha são:
    • Cliente Fechado: ocorre quando um cliente do Hub de Eventos que já foi fechado ou eliminado. Recomendamos que verifique o código da aplicação para garantir que os objetos da biblioteca de cliente dos Hubs de Eventos são criados e fechados no âmbito pretendido.
    • Tempo Limite do Serviço: indica que o serviço Hubs de Eventos não respondeu a uma operação dentro do período de tempo esperado. Este problema pode ter sido causado por um problema transitório na rede ou no serviço. O serviço Hubs de Eventos pode ou não ter concluído o pedido com êxito; o estado não é conhecido. Recomenda-se que tente verificar o estado atual e tente novamente, se necessário.
    • Quota Excedida: indica que existem demasiadas operações de leitura ativas para um único grupo de consumidores. Este limite depende da camada do espaço de nomes dos Hubs de Eventos e pode ser necessário mudar para um escalão superior. Uma alternativa seria criar grupos de consumidores adicionais e garantir que o número de leituras do cliente de consumidor para qualquer grupo está dentro do limite. Para obter mais informações, veja Hubs de Eventos do Azure quotas e limites.
    • Tamanho da Mensagem Excedido: dados de eventos como um tamanho máximo permitido para um evento individual e um lote de eventos. Inclui os dados do evento e quaisquer metadados associados e sobrecarga do sistema. Para resolver este erro, reduza o número de eventos enviados num lote ou reduza o tamanho dos dados incluídos na mensagem. Uma vez que os limites de tamanho estão sujeitos a alterações, veja Hubs de Eventos do Azure quotas e limites para especificações.
    • Consumidor Desligado: um cliente de consumidor foi desligado pelo serviço Hub de Eventos da instância do Hub de Eventos. Normalmente, ocorre quando um consumidor com um nível de proprietário mais elevado afirma a propriedade sobre uma partição e emparelhamento de grupos de consumidores.
    • Recurso Não Encontrado: o serviço Hubs de Eventos não conseguiu encontrar um recurso, como um hub de eventos, um grupo de consumidores ou uma partição. Pode ter sido eliminado ou que exista um problema com o próprio serviço dos Hubs de Eventos.

Processamento de exceções

Pode reagir a um motivo de falha específico para o EventHubException de várias formas. Uma forma é 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
}

Passos seguintes

Existem outras exceções documentadas no artigo legado. Alguns deles aplicam-se apenas à biblioteca de cliente .NET dos Hubs de Eventos legada.