Comparteix a través de


Habilitación de la cola de mensajes fallidos cuando expire un mensaje para las colas y las suscripciones de Azure Service Bus

Las colas y suscripciones para temas de Azure Service Bus proporcionan una subcola secundaria, llamada cola de mensajes fallidos (DLQ). No es necesario crear explícitamente la cola de mensajes fallidos y no se puede eliminar ni administrar independientemente de la entidad principal. La finalidad de la cola de mensajes fallidos es mantener los mensajes que no se pueden entregar a ningún destinatario o los mensajes que no se pudieron procesar. Para más información, consulte Introducción a las colas de mensajes fallidos de Service Bus. En este artículo se muestran las distintas formas de habilitar la cola de mensajes fallidos para las colas y las suscripciones de Service Bus.

Uso de Azure Portal

Al crear una cola o una suscripción para un tema en Azure Portal, seleccione Habilitar la cola de mensajes fallidos cuando expire un mensaje, como se muestra en los ejemplos siguientes.

Creación de una cola con la cola de mensajes fallidos habilitada

Habilitación de la cola de mensajes fallidos en el momento de creación de la cola

Creación de una suscripción con la cola de mensajes fallidos habilitada

Habilitación de la cola de mensajes fallidos en el momento de creación de la suscripción

Actualización de la opción de cola de mensajes fallidos cuando expire un mensaje para una cola existente

En la página Información general de la cola de Service Bus, seleccione el valor actual de la opción de la cola de mensajes fallidos al expirar un mensaje. En el ejemplo siguiente, el valor actual es Disabled. Puede habilitar o deshabilitar la cola de mensajes fallidos al expirar un mensaje en la ventana emergente.

Habilitación de la cola de mensajes fallidos al expirar un mensaje para una cola existente

Actualización de la opción de cola de mensajes fallidos cuando expire un mensaje para una suscripción existente

En la página Información general de la suscripción de Service Bus, seleccione el valor actual de la opción de la cola de mensajes fallidos al expirar un mensaje. En el ejemplo siguiente, el valor actual es Disabled. Puede habilitar o deshabilitar la cola de mensajes fallidos al expirar un mensaje en la ventana emergente.

Habilitación de la cola de mensajes fallidos al expirar un mensaje para una suscripción existente

Uso de la CLI de Azure

Para crear una cola con la opción de cola de mensajes fallidos al expirar un mensaje habilitada, use el comando az servicebus queue create con --enable-dead-lettering-on-message-expiration configurado en true.

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

Para habilitar la opción de cola de mensajes fallidos al expirar un mensaje en una cola existente, use el comando az servicebus queue update con --enable-dead-lettering-on-message-expiration establecido en true.

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

Para crear una suscripción a un tema con la opción de cola de mensajes fallidos al expirar un mensaje habilitada, use el comando az servicebus topic subscription create con --enable-dead-lettering-on-message-expiration configurado en true.

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

Para habilitar la opción de cola de mensajes fallidos al expirar un mensaje en una suscripción a un tema, use el comando az servicebus topic subscription update con --enable-dead-lettering-on-message-expiration establecido en true.

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

Nota:

Si especifica una cola o un tema mediante el parámetro --forward-dead-lettered-messages-to, Service Bus reenvía automáticamente los mensajes fallidos a esa cola o tema. Por ejemplo: 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.

Uso de Azure PowerShell

Para crear una cola con la opción de cola de mensajes fallidos al expirar un mensaje habilitada, use el comando New-AzServiceBusQueue con -DeadLetteringOnMessageExpiration configurado en $True.

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

Para habilitar la opción de cola de mensajes fallidos al expirar un mensaje en una cola existente, use el comando Set-AzServiceBusQueue como se muestra en el ejemplo siguiente.

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

$queue.DeadLetteringOnMessageExpiration=$True

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

Para crear una suscripción a un tema con la opción de cola de mensajes fallidos al expirar un mensaje habilitada, use el comando New-AzServiceBusSubscription con -DeadLetteringOnMessageExpiration configurado en $True.

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

Para habilitar la opción de cola de mensajes fallidos al expirar un mensaje en una suscripción existente, vea el ejemplo siguiente.

$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 

Nota

Si especifica una cola o un tema mediante el parámetro -ForwardDeadLetteredMessagesTo, Event Grid reenvía automáticamente los mensajes fallidos a esa cola o tema.

Uso de la plantilla de Azure Resource Manager

Para crear una cola con la opción de cola de mensajes fallidos al expirar un mensaje, establezca deadLetteringOnMessageExpiration en la sección de las propiedades de la cola en true. Para obtener más información, consulte el documento de referencia de la plantilla de Microsoft.ServiceBus namespaces/queues.

{
  "$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
          }
        }
      ]
    }
  ]
}

Para crear una suscripción a un tema con la opción de cola de mensajes fallidos al expirar un mensaje, establezca deadLetteringOnMessageExpiration en la sección de las propiedades de la cola en true. Para obtener más información, consulte el documento de referencia de la plantilla de Microsoft.ServiceBus/namespaces/topics/subscriptions.

{
  "$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
              }
            }
          ]
        }
      ]
    }
  ]
}

Nota

Si especifica una cola o un tema para la propiedad forwardDeadLetteredMessagesTo, Event Grid reenvía automáticamente los mensajes fallidos a esa cola o tema.

Pasos siguientes

Pruebe los ejemplos en el lenguaje que prefiera para explorar las características de Azure Service Bus.

Encuentre ejemplos de las bibliotecas cliente de .NET y Java anteriores:

El 30 de septiembre de 2026, retiraremos las bibliotecas del SDK de Azure Service Bus WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus y com.microsoft.azure.servicebus, que no se ajustan a las directrices del SDK de Azure. También retiraremos el soporte del protocolo SBMP, por lo que ya no podrás usar este protocolo después del 30 de septiembre de 2026. Migre a las bibliotecas más recientes del SDK de Azure, que ofrecen actualizaciones de seguridad críticas y funcionalidades mejoradas, antes de esa fecha.

Aunque las bibliotecas anteriores todavía se pueden usar después del 30 de septiembre de 2026, ya no recibirán soporte técnico oficial ni actualizaciones de Microsoft. Para obtener más información, consulte el anuncio de retirada de soporte técnico.