DeleteQueue Method

Deletes a queue.

Syntax

public void DeleteQueue(string channelName, string queueName, bool ifUnused, bool ifEmpty, bool noWait);
Public Sub DeleteQueue(ByVal ChannelName As String, ByVal QueueName As String, ByVal IfUnused As Boolean, ByVal IfEmpty As Boolean, ByVal NoWait As Boolean)

Remarks

This method is used to delete the queue named QueueName.

After each successful call to this method, the component populates the QueueMessageCount property with the number of messages deleted along with the queue. (Note that this does not occur if the NoWait parameter is set to True.)

ChannelName controls what channel the component will send the request over. While any channel can technically be used, keep in mind that the server will close it if a channel error occurs. For this reason, it is good practice to make requests such as this one using a channel that is not involved in message publishing or consumption.

QueueName must be a non-empty string consisting only of letters, digits, hyphens, underscores, periods, and colons. It must be no longer than 255 characters, and must not begin with amq..

When IfUnused is True, the server will only delete the queue if no consumers are attached to it.

When IfEmpty is True, the server will only delete the queue if it has no messages in it. (When IfEmpty is False, servers will typically move any remaining messages to a dead-letter queue, if one is available.)

The NoWait parameter, if True, will cause the server to execute the request asynchronously. For asynchronous request handling, the server only sends back a response in case of an error.

An exception is thrown if no channel with the given ChannelName exists, or if the server returns an error because:

  • The value passed for QueueName fails one or more of the constraints described above.
  • No queue named QueueName exists. (This does not apply for RabbitMQ; attempting to delete a non-existent queue will always succeed.)
  • The IfUnused parameter was True, but the queue still had one or more consumers attached to it.
  • The IfEmpty parameter was True, but the queue still had one or more messages in it.

Note that in AMQP, server errors are grouped into "connection errors" and "channel errors", and both are fatal. That is, if the server returns a channel error, it will then close the channel which caused the error; and if it returns a connection error, it will then close the connection. The AMQPClassic component's Error Codes page includes AMQP's various connection and channel errors.

Copyright (c) 2022 /n software inc. - All rights reserved.
IPWorks IoT 2020 .NET Edition - Version 20.0 [Build 8265]