deleteQueue (method)

Deletes a queue.

Syntax

- (void)deleteQueue:(NSString*)channelName :(NSString*)queueName :(BOOL)ifUnused :(BOOL)ifEmpty :(BOOL)noWait;
public func deleteQueue(_ channelName: String, _ queueName: String, _ ifUnused: Bool, _ ifEmpty: Bool, _ noWait: Bool) throws -> Void

Remarks

This method is used to delete the queue named QueueName.

After each successful call to this method, the class 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 class 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 class's Error Codes page includes AMQP's various connection and channel errors.

Copyright (c) 2022 /n software inc. - All rights reserved.
IPWorks MQ 2020 iOS Edition - Version 20.0 [Build 8155]