1.3 Overview

The Message Queuing (MSMQ): Queue Manager Management Protocol allows an MSMQ client application to perform management operations on an MSMQ server.

This protocol can be used to get the following information:

  • Queue properties, such as:

    • The path name of a queue.

    • The format name of a queue.

    • Whether a queue is (or is not) located on a computer, or whether it is a transactional queue or a foreign queue.

    • The retransmit interval for messages in an outgoing queue for which no order acknowledgment has been received.

    • The number of subqueues in a specified queue.<1>

    • The names of the subqueues in a specified queue.<2>

    • The version and build information for the computer operating system and the MSMQ installation.

  • Current queue state, such as:

    • The number of messages in a queue or in a queue journal.

    • The number of message bytes in a queue or in a queue journal.

    • The connection state of an outgoing queue.

    • The list of the active queues on a computer.

    • The name of the current MSMQ Directory Service server for a computer.

    • Whether a queue manager on a computer is disconnected from the network.

    • The list of the path names of all the private queues registered on a computer.

  • Auditing information, such as:

    • The connection state history of a queue.<3>

    • The number of messages sent from a computer to a queue for which no order acknowledgment has been received.

    • The number of messages sent from a computer to a queue for which an order acknowledgment has been received, but a receive acknowledgment message has not been received.

    • The date and time when the last order acknowledgment for a message sent from a computer to a queue was received.

    • The time when MSMQ will attempt to retransmit a message from a computer to a queue.

    • The number of times that the last message in the corresponding outgoing queue on a computer was sent.

    • The number of times that the last order acknowledgment for a message sent from a computer to a queue has been received.

    • The number of message bytes stored in all the queues on a computer.<4>

  • Sequence information, such as:

    • The address or a list of possible addresses for routing messages to the destination queue in the next hop.

    • The next message to be sent from a computer to a queue.

    • The last message that was sent from a computer to a queue for which no order acknowledgment has been received.

    • The first message sent from a computer to a queue for which no order acknowledgment has been received.

  • An array of arrays of information on the transactional messages sent from all source computers to a queue on a target computer. Each element of the overall array is an array (vector) containing one of the following pieces of information for all of the source computers.

    • The format names used to open a queue when the last messages were sent.

    • The globally unique identifiers (GUIDs) of the sending queue managers.

    • The last sequence identifiers.

    • The sequence numbers of the last messages sent to a queue by one or more sending queue managers.

    • The times when each sending queue manager last accessed a queue.

    • The number of times that the last messages were rejected.

The protocol can also be used to perform actions on a computer, such as:

  • Connecting the queue manager on a computer to a network and an MSMQ Directory Service server.

  • Disconnecting the queue manager on a computer from a network and an MSMQ Directory Service server.

  • Deleting empty message files.

The protocol can also be used to perform actions on a queue, such as:

  • Pausing the sending of messages from a computer. The queue manager will not send messages to the applicable destination queue until a resume action is initiated.

  • Restarting the sending of messages after a pause action is initiated.

  • Resending the pending transaction sequence (as specified in [MS-MQQB]).

This is an RPC-based protocol. The server does not maintain client state information. The protocol operation is stateless.

This is a simple request-response protocol. For each received method request, the server executes the requested method and returns a completion status to the client. This is a stateless protocol; each method call is independent of any previous method calls.