Suspender e reativar as entidades de mensagens (desabilitar)

Filas, tópicos e assinaturas podem ser suspensos temporariamente. A suspensão coloca a entidade em um estado desabilitado em que todas as mensagens são mantidas no armazenamento. No entanto, as mensagens não podem ser removidas nem adicionadas e as respectivas operações de protocolo geram erros.

Talvez você queira suspender uma entidade por motivos administrativos urgentes. Por exemplo, um destinatário com falha tira as mensagens da fila, falha no processamento e ainda completa as mensagens de forma incorreta e as remove. Nesse caso, talvez você queira desabilitar a fila de recebimentos até corrigir e implantar o código.

Uma suspensão ou reativação pode ser executada pelo usuário ou pelo sistema. O sistema suspende entidades apenas por razões administrativas graves, como atingir o limite de gastos da assinatura. As entidades desabilitadas pelo sistema não podem ser reativadas pelo usuário, mas serão restauradas quando a causa da suspensão for resolvida.

Status da fila

Os estados que podem ser definidos para uma fila são:

  • Active: a fila está ativa. Você pode enviar mensagens e receber mensagens da fila.
  • Disabled: a fila está suspensa. É equivalente a definir SendDisabled e ReceiveDisabled.
  • SendDisabled: não é possível enviar mensagens para a fila, mas você pode receber mensagens. Você receberá uma exceção se tentar enviar mensagens para a fila.
  • ReceiveDisabled: é possível enviar mensagens para a fila, mas você não pode receber mensagens. Você receberá uma exceção se tentar receber mensagens da fila.

Altere o status da fila no portal do Azure:

  1. No portal do Azure, acesse o namespace do Barramento de Serviço.

  2. Selecione a fila na qual você pretende alterar o status. Você vê as filas no painel inferior central.

  3. Na página Fila do Barramento de Serviço, confira o status atual da fila como um hiperlink. Se a Visão geral não estiver selecionada no menu esquerdo, selecione para ver o status da fila. Selecione o status atual da fila para alterá-lo.

    Select state of the queue

  4. Selecione o novo status para a fila e selecione OK.

    Set state of the queue

Você também pode desabilitar as operações de envio e recebimento usando um modelo do Azure Resource Manager por meio da CLI do Azure ou do Azure PowerShell.

Alterar o status da fila usando o Azure PowerShell

O comando do PowerShell para desabilitar uma fila é mostrado no exemplo a seguir. O comando de reativação é equivalente, definindo Status como Active.

$q = Get-AzServiceBusQueue -ResourceGroup mygrp -NamespaceName myns -QueueName myqueue

$q.Status = "Disabled"

Set-AzServiceBusQueue -ResourceGroup mygrp -NamespaceName myns -QueueName myqueue -QueueObj $q

Status do tópico

Você pode alterar o status do tópico no portal do Azure. Selecione o status atual do tópico para ver a página a seguir, que permite alterar o status.

Change topic status

Os estados que podem ser definidos para um tópico são:

  • Ativo: o tópico está ativo. Você pode enviar mensagens para o tópico.
  • Desativado: o tópico está suspenso. Você não pode enviar mensagens para o tópico. A configuração Desabilitado é equivalente à definição de SendDisabled para um tópico.
  • SendDisabled: mesmo efeito como Desabilitado. Você não pode enviar mensagens para o tópico. Você receberá uma exceção se tentar enviar mensagens para a tópico.

Status da assinatura

Você pode alterar o status da assinatura no portal do Azure. Selecione o status atual da assinatura para ver a página a seguir, que permite alterar o status.

Change subscription status

Os estados que podem ser definidos para uma assinatura são:

  • Ativo: a assinatura está ativa. É possível receber mensagens da assinatura.
  • Desativado: a assinatura está suspensa. Não é possível receber mensagens da assinatura. A configuração Desabilitado em uma assinatura é equivalente à definição de ReceiveDisabled. Você receberá uma exceção se tentar receber mensagens da assinatura.
  • ReceiveDisabled: mesmo efeito que Desativado. Não é possível receber mensagens da assinatura. Você receberá uma exceção se tentar receber mensagens da assinatura.

Veja como o comportamento é baseado no status definido em um tópico e na respectiva assinatura.

Status do tópico Status da assinatura Comportamento
Ativo Ativo Você pode enviar mensagens para o tópico e receber mensagens da assinatura.
Ativo Desativado ou Recebimento Desativado Você pode enviar mensagens para o tópico, mas não poderá receber mensagens da assinatura
Desativado ou Enviar Desativado Ativo Não é possível enviar mensagens para o tópico, mas você pode receber mensagens que já estão na assinatura.
Desativado ou Enviar Desativado Desativado ou Recebimento Desativado Você não pode enviar mensagens para o tópico e não pode receber da assinatura.

Outros status

A enumeração EntityStatus também define um conjunto de estados de transição que podem ser definidos apenas pelo sistema.

Próximas etapas

Para saber mais sobre as mensagens do Barramento de Serviço, consulte os seguintes tópicos: