Приостановка и повторная активация сущностей обмена сообщениями (отключение)

Очереди, разделы и подписки можно временно приостанавливать. Приостановка помещает сущность в отключенное состояние, при котором все сообщения остаются в хранилище. Однако удалить или добавить сообщения нельзя, а соответствующие операции протокола выдают ошибки.

Возможно, вы захотите приостановить сущность для срочного администрирования. Например, когда неисправный приемник принимает сообщения из очереди, не может их обработать и при этом неправильно завершает сообщения и удаляет их. В этом случае может потребоваться отключить получение очереди до тех пор, пока не будет исправлен и развернут код.

Приостановку или повторную активацию может выполнить либо пользователь, либо система. Система приостанавливает сущности только из-за серьезных причин, связанных с администрированием, например при достижении предельного лимита на подписку. Отключенные системой сущности не могут быть повторно активированы пользователем, но восстанавливаются, когда причина приостановки устранена.

Состояние очереди

Для очереди можно установить следующие состояния

  • Active (активно): очередь активна. Вы можете отправлять сообщения в очередь и получать сообщения из нее.
  • Disabled (отключено): очередь приостановлена. Это эквивалентно установке SendDisabled и ReceiveDisabled.
  • SendDisabled. Вы не можете отправлять сообщения в очередь, но можете получать сообщения из нее. При попытке отправить сообщения в очередь будет сгенерировано исключение.
  • ReceiveDisabled. Вы можете отправлять сообщения в очередь, но не можете получать сообщения из нее. При попытке получить сообщения из очереди будет сгенерировано исключение.

Проверьте состояние очереди на портале Azure:

  1. На портале Azure перейдите в пространство имен служебной шины.

  2. Выберите очередь, состояние которой вы хотите изменить. Очереди отображаются в нижней области посередине.

  3. На странице Очередь служебной шины посмотрите текущее состояние очереди в виде гиперссылки. Если Обзор не выбран в меню слева, выберите его, чтобы посмотреть состояние очереди. Выберите текущее состояние очереди, чтобы изменить его.

    Select state of the queue

  4. Выберите новое состояние очереди и нажмите кнопку ОК.

    Set state of the queue

Также можно отключить операции отправки и получения с помощью шаблона Azure Resource Manager через Azure CLI или Azure PowerShell.

Изменение состояния очереди с помощью Azure PowerShell

В следующем примере показана команда PowerShell для отключения очереди. Команда повторной активации эквивалентна установке значения Active для параметра Status.

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

$q.Status = "Disabled"

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

Статус темы

Вы можете изменить состояние раздела на портале Azure. Выберите текущее состояние раздела, чтобы открыть следующую страницу, на которой можно изменить состояние.

Change topic status

Для раздела можно установить следующие состояния

  • Active. Раздел активен. Вы можете отправлять сообщения в раздел.
  • Disabled. Раздел отключен. Вы не можете отправлять сообщения в раздел. Установка Disabled эквивалентна установке SendDisabled для раздела.
  • SendDisabled. Тот же результат, что и для опции Неактивно. Вы не можете отправлять сообщения в раздел. При попытке отправить сообщения в раздел будет сгенерировано исключение.

Состояние подписки

Вы можете изменить состояние подписки на портале Azure. Выберите текущее состояние подписки, чтобы открыть следующую страницу, на которой можно изменить состояние.

Change subscription status

Для подписки можно задать следующие состояния:

  • Active. Подписка активна. Вы можете получать сообщения из подписки.
  • Disabled. Подписка отключена. Вы не можете получать сообщения из подписки. Установка Disabled для подписки эквивалентна установке ReceiveDisabled. При попытке получить сообщения из подписки будет сгенерировано исключение.
  • ReceiveDisabled. Тот же результат, что и для опции Disabled. Вы не можете получать сообщения из подписки. При попытке получить сообщения из подписки будет сгенерировано исключение.

Ниже показано, как поведение зависит от состояния, указанного для раздела и подписки на него.

Статус темы Состояние подписки Поведение
Активные Активные Вы можете отправлять сообщения в раздел и получать сообщения из подписки.
Активно Disabled или Receive Disabled Вы можете отправлять сообщения в раздел, но не можете получать сообщения из подписки.
Disabled или Send Disabled Активно Вы не можете отправлять сообщения в раздел, но можете получать сообщения из подписки.
Disabled или Send Disabled Disabled или Receive Disabled Вы не можете ни отправлять сообщения в раздел, ни получать сообщения из подписки.

Другие состояния

Перечисление EntityStatus также определяет набор переходных состояний, которые могут устанавливаться только системой.

Следующие шаги

Дополнительные сведения об обмене сообщениями через служебную шину см. в следующих статьях: