暫止及重新啟動傳訊實體 (停用)
您可以暫時停止佇列、主題和訂用帳戶。 暫止會讓實體進入停用狀態,此時所有訊息都會保存在儲存體中。 不過,訊息無法移除或新增,而且個別的通訊協定作業都會產生錯誤。
您可能因為緊急系統管理原因而想要暫止實體。 舉例來說,您不慎部署了錯誤的接收者,將訊息從佇列中移除、無法處理,而且無法正確地完成訊息及移除訊息。 在此情況下,您可能想要停用接收訊息的佇列,直到您更正並部署程式碼為止。
暫止或重新啟動可以由使用者或系統執行。 系統只會因為重大的管理原因暫止實體,例如達到訂閱消費限制。 使用者無法重新啟動由系統停用的實體,不過當導致暫止的原因排除後實體將能恢復正常狀態。
佇列狀態
可以為佇列設定的狀態為:
- Active:佇列作用中。 您可以將訊息傳送至佇列,並從佇列接收訊息。
- Disabled:佇列已暫止。 這相當於同時設定 SendDisabled 和 ReceiveDisabled。
- SendDisabled:您無法將訊息傳送至佇列,但您可以從佇列接收訊息。 如果您嘗試將訊息傳送至佇列,將會收到例外狀況。
- ReceiveDisabled:您能夠將訊息傳送至佇列,但無法從佇列接收訊息。 如果您嘗試從佇列接收訊息,將會收到例外狀況。
變更 Azure 入口網站中的佇列狀態:
瀏覽至 Azure 入口網站中您的服務匯流排命名空間。
選取要變更狀態的佇列。 您會在中間的底部窗格中看到佇列。
在 [服務匯流排佇列] 頁面上,將佇列的目前狀態視為超連結。 如果未在左側功能表上選取 [概觀],請選取它以查看佇列的狀態。 選取佇列的目前狀態以變更佇列。
選取佇列的新狀態,然後選取 [確定]。
您也可以透過 Azure CLI 或 Azure PowerShell 使用 Azure Resource Manager 範本來停用傳送和接收作業。
使用 Azure PowerShell 來變更佇列狀態
以下範例展示停用佇列的 PowerShell 命令。 重新啟動命令與前述相同,它會將 Status
設定為 Active。
$q = Get-AzServiceBusQueue -ResourceGroup mygrp -NamespaceName myns -QueueName myqueue
$q.Status = "Disabled"
Set-AzServiceBusQueue -ResourceGroup mygrp -NamespaceName myns -QueueName myqueue -QueueObj $q
主題狀態
您能在 Azure 入口網站中變更主題狀態。 選取主題的目前狀態,以查看可讓您變更狀態的下列頁面。
可以為主題設定的狀態為:
- Active:主題正在作用中。 您能將訊息傳送到主題。
- Disabled:主題已暫止。 您無法將訊息傳送到主題。 設定 Disabled 相當於針對主題設定 SendDisabled。
- SendDisabled:與 Disabled 有著相同的效果。 您無法將訊息傳送到主題。 如果您嘗試將訊息傳送至主題,將會收到例外狀況。
訂閱狀態
您可以在 Azure 入口網站中變更訂閱狀態。 選取訂閱的目前狀態,以查看可讓您變更狀態的下列頁面。
可針對訂閱設定的狀態如下:
- Active:訂閱正在作用中。 您能自訂閱接收訊息。
- Disabled:訂閱已被暫止。 您無法自訂閱接收訊息。 在訂用帳戶上設定 Disabled 相當於設定 ReceiveDisabled。 如果您嘗試從訂用帳戶接收訊息,將會收到例外狀況。
- ReceiveDisabled:與 Disabled 有著相同的效果。 您無法自訂閱接收訊息。 如果您嘗試從訂用帳戶接收訊息,將會收到例外狀況。
以下是行為根據您在主題及其訂用帳戶上所設定狀態的情形。
主題狀態 | 訂閱狀態 | 行為 |
---|---|---|
使用中 | 使用中 | 您可以將訊息傳送至主題,並從訂閱接收訊息。 |
使用中 | 已停用或已停用接收 | 您可以將訊息傳送至主題,但無法從訂閱接收訊息 |
已停用或已停用傳送 | 使用中 | 您無法將訊息傳送至主題,但您可以接收已在訂閱中的訊息。 |
已停用或已停用傳送 | 已停用或已停用接收 | 您無法將訊息傳送至主題,而且也無法從訂用帳戶接收訊息。 |
其他狀態
EntityStatus 列舉另定義一組只能由系統設定的可轉換狀態。
下一步
若要深入了解服務匯流排傳訊,請參閱下列主題: