Mesajlaşma varlıklarını askıya alma ve yeniden etkinleştirme (devre dışı bırakma)

Kuyruklar, konular ve abonelikler geçici olarak askıya alınabilir. Askıya alma, varlığı tüm iletilerin depolamada tutıldığı devre dışı duruma getirir. Ancak, iletiler kaldırılamaz veya eklenemez ve ilgili protokol işlemleri hata verir.

Bir varlığı acil yönetim nedenleriyle askıya almak isteyebilirsiniz. Örneğin, hatalı bir alıcı iletileri kuyruktan alır, işleme başarısız olur ve yine de iletileri yanlış tamamlar ve kaldırır. Bu durumda, kodu düzeltip dağıtana kadar almalar için kuyruğu devre dışı bırakmak isteyebilirsiniz.

Kullanıcı veya sistem tarafından askıya alma veya yeniden etkinleştirme gerçekleştirilebilir. Sistem yalnızca abonelik harcama limitinin aşılması gibi önemli yönetim nedenleriyle varlıkları askıya alır. Sistem devre dışı bırakılan varlıklar kullanıcı tarafından yeniden etkinleştirilemiyor, ancak askıya alma nedeni giderildiğinde geri yükleniyor.

Kuyruk durumu

Bir kuyruk için ayarlanabilecek durumlar şunlardır:

  • Etkin: Kuyruk etkin. Kuyruğa ileti gönderebilir ve kuyruktan ileti alabilirsiniz.
  • Devre dışı: Kuyruk askıya alındı. Hem SendDisabled hem de ReceiveDisabledayarlarının eşdeğeridir.
  • SendDisabled: Kuyruğa ileti gönderemezsiniz, ancak ileti alabilirsiniz. Kuyruğa ileti göndermeye çalışırsanız bir özel durumla karşınıza çıkar.
  • ReceiveDisabled: Kuyruğa ileti gönderebilirsiniz, ancak bu kuyruktan ileti alamazsınız. Kuyruktan ileti almaya çalışırsanız bir özel durumla karşınıza çıkar.

Azure portalında kuyruk durumunu değiştirin:

  1. Azure portalında Service Bus ad alanınıza gidin.

  2. Durumunu değiştirmek istediğiniz kuyruğu seçin. Ortadaki alt bölmede kuyruklar görürsünüz.

  3. Service Bus Kuyruğu sayfasında, kuyruğun geçerli durumunu köprü olarak görün. Sol menüde Genel Bakış seçili değilse, kuyruğun durumunu görmek için seçin. Değiştirmek için kuyruğun geçerli durumunu seçin.

    Select state of the queue

  4. Kuyruğun yeni durumunu seçin ve Tamam'ı seçin.

    Set state of the queue

Azure CLI veya Azure PowerShell aracılığıyla bir Azure Resource Manager şablonu kullanarak gönderme ve alma işlemlerini de devre dışı bırakabilirsiniz.

Azure PowerShell kullanarak kuyruk durumunu değiştirme

Bir kuyruğu devre dışı bırakmaya ilişkin PowerShell komutu aşağıdaki örnekte gösterilmiştir. Yeniden etkinleştirme komutu eşdeğerdir ve Etkin olarak ayarlanırStatus.

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

$q.Status = "Disabled"

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

Konu durumu

Konu durumunu Azure portalında değiştirebilirsiniz. Durumu değiştirmenize olanak tanıyan aşağıdaki sayfayı görmek için konunun geçerli durumunu seçin.

Change topic status

Bir konu için ayarlanabilecek durumlar şunlardır:

  • Etkin: Konu etkindir. Konuya ileti gönderebilirsiniz.
  • Devre dışı: Konu askıya alındı. Konuya ileti gönderemezsiniz. Devre Dışı ayarı, bir konu için SendDisabled ayarıyla eşdeğerdir.
  • SendDisabled: Devre Dışı ile aynı etki. Konuya ileti gönderemezsiniz. Konuya ileti göndermeye çalışırsanız bir özel durumla karşınıza çıkar.

Abonelik durumu

Azure portalında abonelik durumunu değiştirebilirsiniz. Durumu değiştirmenize olanak tanıyan aşağıdaki sayfayı görmek için aboneliğin geçerli durumunu seçin.

Change subscription status

Abonelik için ayarlanabilecek durumlar şunlardır:

  • Etkin: Abonelik etkin. Abonelikten ileti alabilirsiniz.
  • Devre dışı: Abonelik askıya alındı. Abonelikten ileti alamazsınız. Abonelikte Devre Dışı ayarı ReceiveDisabled ayarıyla eşdeğerdir. Abonelikten ileti almaya çalışırsanız bir özel durumla karşınıza çıkar.
  • ReceiveDisabled: Disabled ile aynı etki. Abonelikten ileti alamazsınız. Abonelikten ileti almaya çalışırsanız bir özel durumla karşınıza çıkar.

Davranışın, bir konu başlığında ayarladığınız duruma ve aboneliğine göre nasıl olduğu aşağıda açıklanmıştır.

Konu durumu Abonelik durumu Davranış
Etkin Etkin Konu başlığına ileti gönderebilir ve abonelikten ileti alabilirsiniz.
Etkin Devre Dışı veya Alma Devre Dışı Konuya ileti gönderebilirsiniz, ancak abonelikten ileti alamazsınız
Devre Dışı veya Gönderme Devre Dışı Etkin Konuya ileti gönderemezsiniz, ancak zaten abonelikte olan iletileri alabilirsiniz.
Devre Dışı veya Gönderme Devre Dışı Devre Dışı veya Alma Devre Dışı Konu başlığına ileti gönderemezsiniz ve abonelikten de ileti alamazsınız.

Diğer durumlar

EntityStatus numaralandırması, yalnızca sistem tarafından ayarlanabilen bir dizi geçiş durumu da tanımlar.

Sonraki adımlar

Service Bus mesajlaşması hakkında daha fazla bilgi edinmek için aşağıdaki konulara bakın: