Delen via


MSMQOutgoingQueueManagement.Pause

 

Applies To: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server Technical Preview, Windows Vista

(Introduced in MSMQ 3.0.)The Pause method of the MSMQOutgoingQueueManagement object, which represents the state of an outgoing queue, stops the transmission of messages out of the outgoing queue.

Sub Pause
()  

Parameters

This method has no parameters.

Return Values

This method has no return values.

Error Codes

This method generates one of the following error codes:

MQ_OK (0)

The method call was successful.

MQ_ERROR_QUEUE_NOT_ACTIVE (0xC00E0004)

The destination queue is not open or may not exist.

For a complete list of error and information codes, see Message Queuing Error and Information Codes.

Remarks

After this method is called, the queue manager will not start transmitting messages to the corresponding destination queue until the MSMQOutgoingQueueManagement.Resume method is called. The connection state (MSMQOutgoingQueueManagement.State) of the outgoing queue is then MQ_QUEUE_STATE_ONHOLD.

You can use the Pause method when you know that the corresponding destination queue is unavailable. This can reduce the unnecessary CPU and network load associated with repeated attempts to connect to the unavailable target.

Local administrative permissions are needed to pause the transmission of messages out of an outgoing queue.

Equivalent API Function

When using API functions, call MQMgmtAction and pass L"PAUSE" (QUEUE_ACTION_PAUSE) as the string indicating the action to be performed on the queue.

Example Code

The following code fragment shows how to pause an outgoing queue on a remote source computer, retrieve the number of messages in the queue, and resume the transmission of messages from it.

Dim mgmt As New MSMQManagement  
mgmt.Init Machine:="RemoteSource",  
          PathName:="Target\Q1"    ' Indicates outgoing queue on remote computer.  
Dim outqmgmt As MSMQOutgoingQueueManagement  
Set outqmgmt = mgmt  
  
outqmgmt.Pause  
MsgBox "There are " & mgmt.MessageCount & " messages in the outgoing queue."  
outqmgmt.Resume  

Requirements

Windows NT/2000/XP: Included in Windows XP and Windows Server 2003.

Windows 95/98/Me: Unsupported.

Header: Declared in Mqoai.h.

Library: Use Mqoa.lib.

See Also

MSMQOutgoingQueueManagement
MSMQOutgoingQueueManagement.Resume
MSMQOutgoingQueueManagement.State