Freigeben über


Aktivieren Sie Dead Lettering beim Ablauf von Nachrichten für Azure Service Bus-Warteschlangen und -Abonnements

Die Azure Service Bus-Warteschlangen und Themenabonnements bieten eine sekundäre Sub-Warteschlange, die sogenannte Dead-Letter-Queue (DLQ). Die Warteschlange für unzustellbare Nachrichten muss nicht explizit erstellt werden, und kann nicht gelöscht oder unabhängig von der Hauptentität verwaltet werden. Die Warteschlange für unzustellbare Nachrichten dient zum Speichern von Nachrichten, die an keinen Empfänger übermittelt oder nicht verarbeitet werden können. Weitere Informationen finden Sie unter Übersicht über Service Bus-Warteschlangen für unzustellbare Nachrichten. In diesem Artikel werden verschiedene Möglichkeiten zum Aktivieren von Dead Lettering für Service Bus-Warteschlangen und -Abonnements beschrieben.

Verwenden des Azure-Portals

Beim Erstellen einer Warteschlange oder eines Themenabonnements im Azure-Portal wählen Sie die Option Ablauf von Nachrichten aktivieren, wie in den folgenden Beispielen gezeigt.

Erstellen Sie eine Warteschlange mit aktiviertem Dead Lettering

Aktivieren Sie Dead Lettering zum Zeitpunkt der Erstellung der Warteschlange

Erstellen Sie ein Abonnement mit aktiviertem Dead Lettering

Aktivieren Sie Dead Lettering zum Zeitpunkt der Abonnementerstellung

Aktualisieren Sie die Einstellung für Dead Lettering bei Ablauf der Nachricht für eine vorhandene Warteschlange

Auf der Seite Übersicht für Ihre Service-Bus-Warteschlange wählen Sie den aktuellen Wert für die Einstellung Dead lettering bei Ablauf der Nachricht. Im folgenden Beispiel ist der aktuelle Wert Deaktiviert. Im Popup-Fenster können Sie Dead Lettering beim Ablauf der Nachricht aktivieren oder deaktivieren.

Deaktivieren Sie Dead-Lettering bei Nachrichtenablauf für eine vorhandene Warteschlange

Aktualisieren Sie die Einstellung für Dead Lettering bei Ablauf der Nachricht für eine vorhandene Abonnement

Auf der Seite Übersicht für Ihr Service-Bus-Abonnement wählen Sie den aktuellen Wert für die Einstellung Dead lettering bei Ablauf der Nachricht. Im folgenden Beispiel ist der aktuelle Wert Deaktiviert. Im Popup-Fenster können Sie Dead Lettering beim Ablauf der Nachricht aktivieren oder deaktivieren.

Aktivieren des Dead-Lettering bei Nachrichtenablauf für ein bestehendes Abonnement

Verwenden der Azure-Befehlszeilenschnittstelle

Um eine Warteschlange mit aktivierter Dead Lettering bei Ablauf der Nachricht zu erstellen, verwenden Sie den Befehl az servicebus queue create mit der Einstellung --enable-dead-lettering-on-message-expiration auf true.

az servicebus queue create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --enable-dead-lettering-on-message-expiration true

Um die Einstellung Dead Lettering bei Ablauf der Nachricht für eine vorhandene Warteschlange zu aktivieren, verwenden Sie den Befehl az servicebus queue update mit --enable-dead-lettering-on-message-expiration auf true.

az servicebus queue update \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --enable-dead-lettering-on-message-expiration true

Um eine Themenabonnement mit aktivierter Dead Lettering bei Ablauf der Nachricht zu erstellen, verwenden Sie den Befehl az servicebus topic subscription create mit der Einstellung --enable-dead-lettering-on-message-expiration auf true.

az servicebus topic subscription create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --topic-name mytopic \
    --name mysubscription \
    --enable-dead-lettering-on-message-expiration true

Um die Einstellung Dead Lettering bei Ablauf der Nachricht für ein Themenabonnement zu aktivieren, verwenden Sie den Befehl az servicebus topic subscription update mit --enable-dead-lettering-on-message-expiration auf true.

az servicebus topic subscription update \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --topic-name mytopic \
    --name mysubscription \
    --enable-dead-lettering-on-message-expiration true

Hinweis

Wenn Sie eine Warteschlange oder ein Thema mithilfe des --forward-dead-lettered-messages-to-Parameters angeben, leitet Service Bus unzustellbare Nachrichten automatisch an diese Warteschlange oder dieses Thema weiter. Ein Beispiel: az servicebus queue create --resource-group mysbusrg --namespace-name mysbusns --name myqueue --enable-dead-lettering-on-message-expiration true --forward-dead-lettered-messages-to myqueue2.

Verwenden von Azure PowerShell

Um eine Warteschlange mit aktivierter Dead Lettering bei Ablauf der Nachricht zu erstellen, verwenden Sie den Befehl New-AzServiceBusQueue mit der Einstellung -DeadLetteringOnMessageExpiration auf $True.

New-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue `
    -DeadLetteringOnMessageExpiration $True

Um die Einstellung Dead Lettering bei Ablauf der Nachricht für eine vorhandene Warteschlange zu aktivieren, verwenden Sie den Befehl Set-AzServiceBusQueue wie im folgenden Beispiel gezeigt.

$queue=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue 

$queue.DeadLetteringOnMessageExpiration=$True

Set-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue `
    -QueueObj $queue

Um ein Abonnement für ein Thema mit aktivierter Dead Lettering bei Ablauf der Nachricht zu erstellen, verwenden Sie den Befehl New-AzServiceBusSubscription mit der Einstellung -DeadLetteringOnMessageExpiration auf $True.

New-AzServiceBusSubscription -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -TopicName mytopic `
    -SubscriptionName mysubscription `
    -DeadLetteringOnMessageExpiration $True

Um die Einstellung Dead Lettering bei Ablauf der Nachricht für ein bestehendes Abonnement zu aktivieren, beachten Sie das folgende Beispiel.

$subscription=Get-AzServiceBusSubscription -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -TopicName mytopic `
    -SubscriptionName mysub

$subscription.DeadLetteringOnMessageExpiration=$True

Set-AzServiceBusSubscription -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -Name mytopic `
    -SubscriptionName mysub `
    -SubscriptionObj $subscription 

Hinweis

Wenn Sie eine Warteschlange oder ein Thema mithilfe des -ForwardDeadLetteredMessagesTo-Parameters angeben, leitet Event Grid unzustellbare Nachrichten automatisch an diese Warteschlange oder dieses Thema weiter.

Verwenden von Azure Resource Manager-Vorlagen

Um eine Warteschlange zu erstellen, bei der das Schreiben von Dead Lettering bei Ablauf der Nachricht aktiviert ist, setzen Sie deadLetteringOnMessageExpiration im Abschnitt Warteschlangeneigenschaften auf true. Weitere Informationen finden Sie unter Microsoft. ServiceBus Namespaces/Warteschlangen Vorlagenreferenz.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "serviceBusNamespaceName": {
      "type": "string",
      "metadata": {
        "description": "Name of the Service Bus namespace"
      }
    },
    "serviceBusQueueName": {
      "type": "string",
      "metadata": {
        "description": "Name of the Queue"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.ServiceBus/namespaces",
      "apiVersion": "2018-01-01-preview",
      "name": "[parameters('serviceBusNamespaceName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard"
      },
      "properties": {},
      "resources": [
        {
          "type": "Queues",
          "apiVersion": "2017-04-01",
          "name": "[parameters('serviceBusQueueName')]",
          "dependsOn": [
            "[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]"
          ],
          "properties": {
            "deadLetteringOnMessageExpiration": true
          }
        }
      ]
    }
  ]
}

Um ein Themenabonnement zu erstellen, bei dem das Schreiben von Dead Lettering bei Ablauf der Nachricht aktiviert ist, setzen Sie deadLetteringOnMessageExpiration im Abschnitt Warteschlangeneigenschaften auf true. Weitere Informationen finden Sie unter Vorlagenreferenz für Microsoft.ServiceBus-Namespaces/-Themen/-Abonnements Vorlagenreferenz.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "service_BusNamespace_Name": {
      "type": "string",
      "metadata": {
        "description": "Name of the Service Bus namespace"
      }
    },
    "serviceBusTopicName": {
      "type": "string",
      "metadata": {
        "description": "Name of the Topic"
      }
    },
    "serviceBusSubscriptionName": {
      "type": "string",
      "metadata": {
        "description": "Name of the Subscription"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    }
  },
  "resources": [
    {
      "apiVersion": "2018-01-01-preview",
      "name": "[parameters('service_BusNamespace_Name')]",
      "type": "Microsoft.ServiceBus/namespaces",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard"
      },
      "properties": {},
      "resources": [
        {
          "apiVersion": "2017-04-01",
          "name": "[parameters('serviceBusTopicName')]",
          "type": "topics",
          "dependsOn": [
            "[resourceId('Microsoft.ServiceBus/namespaces/', parameters('service_BusNamespace_Name'))]"
          ],
          "properties": {
            "maxSizeInMegabytes": 1024
          },
          "resources": [
            {
              "apiVersion": "2017-04-01",
              "name": "[parameters('serviceBusSubscriptionName')]",
              "type": "Subscriptions",
              "dependsOn": [
                "[parameters('serviceBusTopicName')]"
              ],
              "properties": {
                "deadLetteringOnMessageExpiration": true
              }
            }
          ]
        }
      ]
    }
  ]
}

Hinweis

Wenn Sie eine Warteschlange oder ein Thema für die forwardDeadLetteredMessagesTo-Eigenschaft angeben, leitet Event Grid unzustellbare Nachrichten automatisch an diese Warteschlange oder dieses Thema weiter.

Nächste Schritte

Sehen Sie sich die Beispiele in der Sprache Ihrer Wahl an, um Azure Service Bus-Features zu untersuchen.

Hier finden Sie Beispiele für die älteren .NET- und Java-Clientbibliotheken:

Am 30. September 2026 werden die Azure Service Bus SDK-Bibliotheken „WindowsAzure.ServiceBus“, „Microsoft.Azure.ServiceBus“ und „com.microsoft.azure.servicebus“ eingestellt, da sie nicht den Azure SDK-Richtlinien entsprechen. Außerdem wird die Unterstützung des SBMP-Protokolls beendet, sodass Sie dieses Protokoll nach dem 30. September 2026 nicht mehr verwenden können. Migrieren Sie vor diesem Datum zu den neuesten Azure SDK-Bibliotheken, die wichtige Sicherheitsupdates und verbesserte Funktionen bieten.

Obwohl die älteren Bibliotheken noch über den 30. September 2026 hinaus verwendet werden können, erhalten sie keinen offiziellen Support und keine Updates mehr von Microsoft. Weitere Informationen finden Sie in der Ankündigung der Supporteinstellung.