Wstrzymaj i ponownie uaktywnij jednostki obsługi komunikatów (wyłącz)

Kolejki, tematy i subskrypcje mogą być tymczasowo zawieszone. Zawieszenie umieszcza jednostkę w stanie wyłączonym, w którym wszystkie komunikaty są przechowywane w magazynie. Nie można jednak usuwać ani dodawać komunikatów, a odpowiednie operacje protokołu dają błędy.

Możesz chcieć zawiesić jednostkę z pilnych powodów administracyjnych. Na przykład uszkodzony odbiornik pobiera komunikaty z kolejki, kończy się niepowodzeniem przetwarzania, a jednak niepoprawnie kończy komunikaty i usuwa je. W takim przypadku możesz wyłączyć kolejkę dla odbieranych do momentu poprawienia i wdrożenia kodu.

Zawieszenie lub ponowna aktywacja może być wykonywana przez użytkownika lub przez system. System zawiesza tylko jednostki ze względu na poważne przyczyny administracyjne, takie jak przekroczenie limitu wydatków subskrypcji. Nie można ponownie uaktywnić jednostek wyłączonych przez system przez użytkownika, ale są przywracane po usunięciu przyczyny zawieszenia.

Stan kolejki

Stany, które można ustawić dla kolejki , to:

  • Aktywne: kolejka jest aktywna. Komunikaty można wysyłać do kolejki i odbierać z kolejki.
  • Wyłączone: kolejka jest zawieszona. Jest to równoważne ustawieniu zarówno SendDisabled, jak i ReceiveDisabled.
  • SendDisabled: nie można wysyłać komunikatów do kolejki, ale można z niej odbierać komunikaty. Jeśli spróbujesz wysłać komunikaty do kolejki, otrzymasz wyjątek.
  • ReceiveDisabled: komunikaty można wysyłać do kolejki, ale nie można z niej odbierać komunikatów. Jeśli spróbujesz odbierać komunikaty z kolejki, otrzymasz wyjątek.

Zmień stan kolejki w witrynie Azure Portal:

  1. W witrynie Azure Portal przejdź do przestrzeni nazw usługi Service Bus.

  2. Wybierz kolejkę, dla której chcesz zmienić stan. Kolejki są widoczne w dolnym okienku w środku.

  3. Na stronie Kolejka usługi Service Bus zobacz bieżący stan kolejki jako hiperlink. Jeśli w menu po lewej stronie nie wybrano pozycji Przegląd , wybierz go, aby wyświetlić stan kolejki. Wybierz bieżący stan kolejki, aby ją zmienić.

    Select state of the queue

  4. Wybierz nowy stan kolejki, a następnie wybierz przycisk OK.

    Set state of the queue

Możesz również wyłączyć operacje wysyłania i odbierania przy użyciu szablonu usługi Azure Resource Manager za pośrednictwem interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.

Zmienianie stanu kolejki przy użyciu programu Azure PowerShell

W poniższym przykładzie pokazano polecenie programu PowerShell, aby wyłączyć kolejkę. Polecenie ponownej aktywacji jest równoważne, ustawiając wartość Status Aktywne.

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

$q.Status = "Disabled"

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

Stan tematu

Stan tematu można zmienić w witrynie Azure Portal. Wybierz bieżący stan tematu, aby wyświetlić następującą stronę, która umożliwia zmianę stanu.

Change topic status

Stany, które można ustawić dla tematu, to:

  • Aktywne: temat jest aktywny. Wiadomości można wysyłać do tematu.
  • Wyłączone: temat jest zawieszony. Nie można wysyłać komunikatów do tematu. Ustawienie Wyłączone jest równoważne ustawieniu elementu SendDisabled dla tematu.
  • SendDisabled: taki sam efekt jak Wyłączone. Nie można wysyłać komunikatów do tematu. Jeśli spróbujesz wysłać komunikaty do tematu, otrzymasz wyjątek.

Stan subskrypcji

Stan subskrypcji można zmienić w witrynie Azure Portal. Wybierz bieżący stan subskrypcji, aby wyświetlić następującą stronę, która umożliwia zmianę stanu.

Change subscription status

Stany, które można ustawić dla subskrypcji , to:

  • Aktywne: subskrypcja jest aktywna. Możesz odbierać komunikaty z subskrypcji.
  • Wyłączone: subskrypcja jest zawieszona. Nie można odbierać komunikatów z subskrypcji. Ustawienie Wyłączone w subskrypcji jest równoważne ustawieniu właściwości ReceiveDisabled. Jeśli spróbujesz otrzymywać komunikaty z subskrypcji, otrzymasz wyjątek.
  • ReceiveDisabled: taki sam efekt jak Wyłączony. Nie można odbierać komunikatów z subskrypcji. Jeśli spróbujesz otrzymywać komunikaty z subskrypcji, otrzymasz wyjątek.

Poniżej przedstawiono sposób zachowania na podstawie stanu ustawionego dla tematu i jego subskrypcji.

Stan tematu Stan subskrypcji Zachowanie
Aktywne Aktywne Komunikaty można wysyłać do tematu i odbierać komunikaty z subskrypcji.
Aktywny Wyłączone lub odbierz wyłączone Komunikaty można wysyłać do tematu, ale nie można odbierać komunikatów z subskrypcji
Wyłączone lub Wyłączone wysyłanie Aktywny Nie można wysyłać komunikatów do tematu, ale możesz odbierać komunikaty, które znajdują się już w subskrypcji.
Wyłączone lub Wyłączone wysyłanie Wyłączone lub odbierz wyłączone Nie można wysyłać komunikatów do tematu i nie można ich odebrać z subskrypcji.

Inne stany

Wyliczenie EntityStatus definiuje również zestaw stanów przejściowych, które można ustawić tylko przez system.

Następne kroki

Aby dowiedzieć się więcej o komunikatach usługi Service Bus, zobacz następujące tematy: