MessageQueue::Exists Method (String^)
Determines whether a Message Queuing queue exists at the specified path.
Assembly: System.Messaging (in System.Messaging.dll)
Parameters
- path
-
Type:
System::String^
The location of the queue to find.
| Exception | Condition |
|---|---|
| ArgumentException | The path syntax is not valid. |
| MessageQueueException | An error occurred when accessing a Message Queuing method. -or- The Exists(String^) method is being called on a remote private queue |
| InvalidOperationException | The application used format name syntax when verifying queue existence. |
The Exists(String^) method determines whether a Message Queuing queue exists at a specified path. No method exists to determine whether a queue with a specified format name exists. For more information about the format name syntax and other path syntax forms, see the Path property.)
Exists(String^) is an expensive operation. Use it only when it is necessary within the application.
Note |
|---|
The Exists(String^) method does not support the FormatName prefix. |
The syntax for the path parameter depends on the type of queue, as shown in the following table.
Queue type | Syntax |
|---|---|
Public queue | MachineName\QueueName |
Exists(String^) cannot be called to verify the existence of a remote private queue.
For more syntax, see the Path property.
Alternatively, you can use the Label to describe the queue path.
Reference | Syntax |
|---|---|
Label | Label:[ label ] |
The following table shows whether this method is available in various Workgroup modes.
Workgroup mode | Available |
|---|---|
Local computer | Yes |
Local computer and direct format name | No |
Remote computer | No |
Remote computer and direct format name | No |
The following code example verifies whether a Message Queuing queue exists, and then deletes it.
#using <system.dll> #using <system.messaging.dll> using namespace System; using namespace System::Messaging; int main() { // Determine whether the queue exists. if ( MessageQueue::Exists( ".\\myQueue" ) ) { try { // Delete the queue. MessageQueue::Delete( ".\\myQueue" ); } catch ( MessageQueueException^ e ) { if ( e->MessageQueueErrorCode == MessageQueueErrorCode::AccessDenied ) { Console::WriteLine( "Access is denied. Queue might be a system queue." ); } // Handle other sources of MessageQueueException. } } return 0; }
Available since 1.1
