Suspender e reativar entidades de mensagens (desativar)
Filas, tópicos e assinaturas podem ser temporariamente suspensos. A suspensão coloca a entidade em um estado desativado no qual todas as mensagens são mantidas em armazenamento. No entanto, as mensagens não podem ser removidas ou adicionadas, e as respetivas operações de protocolo geram erros.
Você pode querer suspender uma entidade por razões administrativas urgentes. Por exemplo, um recetor defeituoso retira as mensagens da fila, falha no processamento e, no entanto, conclui incorretamente as mensagens e as remove. Nesse caso, convém desabilitar a fila de recebimentos até corrigir e implantar o código.
Uma suspensão ou reativação pode ser realizada pelo usuário ou pelo sistema. O sistema só suspende entidades por motivos administrativos graves, como o cumprimento do limite de gastos com assinaturas. As entidades desativadas pelo sistema não podem ser reativadas pelo usuário, mas são restauradas quando a causa da suspensão é resolvida.
Estado da fila
Os estados que podem ser definidos para uma fila são:
- Ativo: a fila está ativa. Você pode enviar e receber mensagens da fila.
- Desativado: a fila está suspensa. É equivalente a definir SendDisabled e ReceiveDisabled.
- SendDisabled: Você não pode enviar mensagens para a fila, mas pode receber mensagens dela. Você receberá uma exceção se tentar enviar mensagens para a fila.
- ReceiveDisabled: Você pode enviar mensagens para a fila, mas não pode receber mensagens dela. Você receberá uma exceção se tentar receber mensagens da fila.
Altere o status da fila no portal do Azure:
No portal do Azure, navegue até o namespace do Service Bus.
Selecione a fila para a qual você deseja alterar o status. Você vê filas no painel inferior no meio.
Na página Fila do Barramento de Serviço, consulte o status atual da fila como um hiperlink. Se a opção Visão geral não estiver selecionada no menu à esquerda, selecione-a para ver o status da fila. Selecione o status atual da fila para alterá-la.
Selecione o novo status da fila e selecione OK.
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 Ativo.
$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.
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. Não é possível enviar mensagens para o tópico. Definir Disabled é equivalente a definir SendDisabled para um tópico.
- SendDisabled: mesmo efeito que Disabled. Não é possível enviar mensagens para o tópico. Você receberá uma exceção se tentar enviar mensagens para o tópico.
Estado da subscrição
Você pode alterar o status da assinatura no portal do Azure. Selecione o estado atual da subscrição para ver a página seguinte, que lhe permite alterar o estado.
Os estados que podem ser definidos para uma assinatura são:
- Ativo: A assinatura está ativa. Você pode receber mensagens da assinatura.
- Desativado: a assinatura está suspensa. Não é possível receber mensagens da assinatura. Definir Desabilitado em uma assinatura equivale a definir ReceiveDisabled. Você receberá uma exceção se tentar receber mensagens da assinatura.
- ReceiveDisabled: mesmo efeito que Disabled. 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 em sua assinatura.
Status do tópico | Estado da subscrição | Comportamento |
---|---|---|
Ativos | Ativos | Você pode enviar mensagens para o tópico e receber mensagens da assinatura. |
Ativo | Desabilitado ou Receber Deficiente | Você pode enviar mensagens para o tópico, mas não pode receber mensagens da assinatura |
Desativado ou Enviar desativado | Ativo | Você não pode enviar mensagens para o tópico, mas pode receber mensagens que já estão na assinatura. |
Desativado ou Enviar desativado | Desabilitado ou Receber Deficiente | Você não pode enviar mensagens para o tópico e também não pode receber da assinatura. |
Outros estatutos
A enumeração EntityStatus também define um conjunto de estados de transição que só podem ser definidos pelo sistema.
Próximos passos
Para saber mais sobre as mensagens do Service Bus, consulte os seguintes tópicos: