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
Creación de una suscripción con la cola de mensajes fallidos habilitada
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.
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.
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.
- Ejemplos de la biblioteca cliente de Azure Service Bus para .NET (versión más reciente)
- Ejemplos de la biblioteca cliente de Azure Service Bus para Java (versión más reciente)
- Ejemplos de la biblioteca cliente de Azure Service Bus para Python
- Ejemplos de la biblioteca cliente de Azure Service Bus para JavaScript
- Ejemplos de la biblioteca cliente de Azure Service Bus para TypeScript
Encuentre ejemplos de las bibliotecas cliente de .NET y Java anteriores:
- Ejemplos de la biblioteca cliente de Azure Service Bus para .NET (versión heredada)
- Ejemplos de la biblioteca cliente de Azure Service Bus para Java (versión heredada)
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.