Message Queuing

Message Queuing (also known as MSMQ) enables applications that are running at different times to communicate across heterogeneous networks and systems that might be temporarily offline. Applications send messages to queues and read messages from queues.

Message Queuing provides the following benefits:

  • Guaranteed delivery of messages

  • Efficient routing

  • Enhanced security

  • Priority-based messaging

You can use Message Queuing to implement solutions for both asynchronous and synchronous messaging scenarios.

  • Overview of Message Queuing

  • Installing and Managing Message Queuing

  • Administering Queues

  • Administering Messages

  • Administering Triggers

  • Troubleshooting Message Queuing

  • User Interface: Message Queuing


Overview of Message Queuing

Message Queuing (also known as MSMQ) is a messaging infrastructure and a development tool for creating distributed messaging applications for Microsoft Windows. Applications developed for Message Queuing send messages to queues, which are temporary storage locations, from which messages can proceed to their final destination as conditions permit. Such applications can communicate across heterogeneous networks and can send messages between computers that might be temporarily unable to connect to one another. Message Queuing provides the following benefits:

  • Guaranteed message delivery

  • Efficient routing

  • Improved security

  • Support for sending messages within transactions

  • Priority-based messaging

Software products with these features are often referred to in the industry as:

  • Message-queuing software

  • Store-and-forward software

  • Message-oriented middleware

With Message Queuing, end users can communicate across networks and computers that might be offline, regardless of the current state of the network and computers. System administrators can use Message Queuing to efficiently manage large, complex networks of computers and message queues.

What's New in Message Queuing 4.0?

The following new features are introduced in Message Queuing 4.0, released with this version of Windows:

  • Subqueues. Subqueues are implicitly created local queues that are logical partitions of a physical queue. Applications can use subqueues to group messages. The subqueues feature enables you to logically group messages in a queue without creating another physical queue.

  • Move messages. You can move messages in one of three ways:

    • Using the Move Message dialog box

    • Performing a cut-and-paste operation

    • Performing a drag-and-drop operation

    You can move messages between subqueues of the same main queue, or from a main queue to its subqueue. You cannot move messages from a main queue to a subqueue of a different main queue or between two main queues or between two subqueues of different main queues.

    The message is moved as is, from the source queue to the target queue. The properties of the message remain unchanged, except for the current move count.

  • Per-application dead-letter queues. In Message Queuing 3.0, there is a system transactional dead-letter queue. If one or more applications are sending messages and requesting dead-letter handling, they each use the same system transactional queue. This can result in a bottleneck. It is also hard to determine which dead messages belong to which application because all applications share the same dead-letter queues.

    Message Queuing 4.0, however, introduces per-application dead-letter queues, so that each application can use its own dead-letter queue. An application can request its own dead-letter queue by using the PROPID_M_DEADLETTER_QUEUE property as part of the message. Instead of being sent to the system transactional dead-letter queue, the message is sent to the queue that is specified in the PROPID_M_DEADLETTER_QUEUE property.

    The PROPID_M_DEADLETTER_QUEUE can be set to any legal path of a transactional queue. The transactional queue must be local to the queue manager that will move the negative acknowledgment (NACK) message to the queue. A legal path is defined in Queue Path Names (http://go.microsoft.com/fwlink/?LinkId=69583).

  • Transactional remote receive. Transactional remote receive is a transactional receive of a message from a remote queue. There are scenarios where a transactional remote receive is necessary. For example, when work orders from a remote central queue need to be processed across a farm of application servers, a transactional remote receive will enable the message processing to be load-balanced across the server farm.

Message Queuing 4.0 includes additional new features, such as move count and abort count, which enable poison message–handling scenarios. These are described in the Message Queuing Software Development Kit (SDK) documentation. For more information, see What's New in Message Queuing 4.0 (http://go.microsoft.com/fwlink/?LinkId=68744).

More Secure Encryption and Authentication Algorithms

Message Queuing 4.0 supports more secure encryption and authentication algorithms. The following sections explain these improvements in more detail.

Encryption

The default encryption algorithm in Message Queuing 4.0 is RC4. This differs from the default encryption algorithm in Message Queuing 3.0, which has RC2 as a default encryption algorithm.

Message Queuing 4.0 also adds support for Advanced Encryption Standard (AES), which is a more secure encryption algorithm than RC4.

To summarize, the available encryption algorithms in Message Queuing 4.0 are:

  • CALG_RC2

  • CALG_RC4 (default)

  • AES

MSMQ can also perform negotiation between the Queue Managers to select the best possible encryption algorithm. When MSMQ is operating in domain mode, encryption is supported. In this mode, before a Queue Manager sends a message to a remote queue, it obtains information about the remote Queue Manager from Active Directory Domain Services (AD DS), such as its public key. At the same time, the Queue Manager can obtain other information about the capabilities of the remote computer and can determine an appropriate encryption algorithm to use.

Authentication

Message Queuing 4.0 supports Secure Hash Algorithm version 1.0 (SHA1) and all advanced hash algorithms that are supported in this version of Windows. The default is SHA1. Support for algorithms such as Message Digest version 2 (MD2), MD4, MD5, and Message Authentication Code (MAC) have been disabled by default in Message Queuing 4.0 because these algorithms are considered less secure.

However, weaker algorithms can be enabled to support any Message Queuing applications that require them by adding the WeakHashAlgorithms registry key. If this registry key is not present, as is the case by default, then all weaker algorithms are disabled. If the registry key is present, then all weaker algorithms are enabled. To enable only certain weak algorithms, you must add the registry key and specify the values of those weaker algorithms that you want to continue to disable.

Caution

Incorrectly editing the registry may severely damage your system. Before making changes to the registry, you should back up any valued data on the computer.

To continue to disable certain weaker authentication algorithms

  1. Click Start, and in Start Search, type regedit, and then press ENTER.

  2. Navigate to the following registry subkey:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\

    Security

  3. On the Edit menu, point to New, and then click Key.

  4. Type WeakHashAlgorithms as the name of the new registry key, and then press ENTER.

  5. Right-click WeakHashAlgorithms, point to New, click DWORD (32-bit) Value, and then type any name for the new value.

  6. Double-click the new DWORD (32-bit) Value, click Decimal, and then in Value data:, type the appropriate value for the algorithm you want to disable:

    • 32769 for MD2

    • 32770 for MD4

    • 32771 for MD5

    • 32773 for MAC

  7. Click OK to close the Edit DWORD (32-bit) Value dialog box.

  8. Create new DWORD (32-bit) values for additional algorithms that you want to also disable.

  9. On the File menu, click Exit to close Registry Editor.

You can re-edit the registry to remove the respective value for an algorithm to support it.

If the Message Queuing application is run on this version of Windows and chooses a weaker authentication algorithm, Message Queuing will override the choice and use SHA1 instead, by default.


Installing and Managing Message Queuing

You can install Message Queuing on computers that are running Windows Vista® or Windows Server® 2008. In Windows Vista, you install and uninstall Message Queuing by using Programs and Features in Control Panel. In Windows Server 2008 you install and uninstall Message Queuing by using the Add Features Wizard available in Server Manager. For more information, see Install Message Queuing.

In Windows Vista, Message Queuing is managed by using Computer Management. Message Queuing is located under Services and Applications.

In Windows Server 2008, Message Queuing is managed either by using Computer Management or, if the Message Queuing Directory Service Integration feature is installed, by using Active Directory Users and Computers. Message Queuing is located under the specified computer object in Active Directory Users and Computers. Additionally, if the Message Queuing Directory Service Integration feature is installed, then certain aspects of Message Queuing in Active Directory can be managed from Active Directory Sites and Services.

Message Queuing features that are available for both Windows Vista and Windows Server 2008 are listed in the following table.

Feature (Windows Vista / Windows Server 2008) Description

Microsoft Message Queue (MSMQ) Server Core / MSMQ Services

This is the core service used for sending and receiving messages.

MSMQ Active Directory Domain Services Integration / Directory Service Integration

This feature enables publishing of queue properties to Active Directory Domain Services (AD DS), default authentication and encryption of messages using certificates registered in AD DS, and routing of messages across Windows sites. MSMQ Active Directory Integration requires the computer to be joined to a domain.

Note

Enabling or disabling of this feature requires a restart of the hosting computer.

MSMQ HTTP Support / HTTP Support

This feature enables the sending of messages over Hypertext Transfer Protocol (HTTP). MSMQ HTTP support requires that Internet Information Services (IIS) be installed on the local computer.

MSMQ Triggers / Message Queuing Triggers

This feature enables the invocation of a Component Object Model (COM) component or an executable file, depending on the filters that you define for the incoming messages in a given queue.

MSMQ DCOM Proxy / Message Queuing DCOM Proxy

This feature enables Message Queuing applications to use a MSMQ COM application programming interface (API) to connect to a remote Message Queuing server.

Multicasting Support / Multicasting Support

This feature supports multicasting messages to a multicast IP address and associating a queue with a multicast IP address.

Message Queuing features that are available only on Windows Server 2008 are listed in the following table:

Feature name | Description
Routing Service | This feature routes messages between different sites and within a site.
Windows 2000 Client Support | This feature is required for MSMQ clients on computers running Windows 2000 in the domain.

Different editions of Windows support different Message Queuing features. The following table lists which features are supported on each edition of Windows Vista and Windows Server 2008.

Feature (Windows Vista / Windows Server 2008) | Windows Vista Starter Edition | Windows Vista Home Basic Edition | Windows Vista Home Premium Edition | Windows Vista Ultimate Edition | Windows Vista Business Edition | Windows Vista Enterprise Edition | Windows Server 2008 All Editions
Microsoft Message Queue (MSMQ) Server Core / MSMQ Services | Yes | Yes | Yes | Yes | Yes | Yes | Yes
Message Queuing management console | Yes | Yes | Yes | Yes | Yes | Yes | Yes
Microsoft Active Directory Domain Services Integration / Directory Service Integration | No | No | No | Yes | Yes | Yes | Yes
MSMQ HTTP Support / HTTP Support | No | No | Yes | Yes | Yes | Yes | Yes
MSMQ Triggers / Message Queuing Triggers | Yes | Yes | Yes | Yes | Yes | Yes | Yes
MSMQ DCOM Proxy / Message Queuing DCOM Proxy | Yes | Yes | Yes | Yes | Yes | Yes | Yes
Multicasting Support / Multicasting Support | Yes | Yes | Yes | Yes | Yes | Yes | Yes
Routing Service | No | No | No | No | No | No | Yes
Windows 2000 Client Support | No | No | No | No | No | No | Yes

This section provides step-by-step instructions for the following tasks:

  • Install Message Queuing

  • Uninstall Message Queuing

  • Remotely Manage Message Queuing


Install Message Queuing

Use this procedure to install a Message Queuing server on a computer running Windows Vista® or Windows Server® 2008. A Message Queuing server can perform the following actions:

  • Run the Message Queuing service

  • Host queues

  • Send and receive messages

  • Operate while disconnected from the network

Membership in the local Administrators group, or equivalent, is the minimum required to complete this procedure.

Installing Message Queuing on Windows Vista

To install Message Queuing on Windows Vista

  1. Open Control Panel.

  2. Click Programs, and then, under Programs and Features, click Turn Windows features on or off.

    -or-

    Click Classic View, double-click Programs and Features, and then in the tasks pane, click Turn Windows features on or off.

  3. Expand Microsoft Message Queue (MSMQ) Server, expand Microsoft Message Queue (MSMQ) Server Core, and then select the check boxes for the Message Queuing features that you want to install.

  4. Click OK.

  5. If you are prompted to restart the computer, click OK to complete the installation.

Installing Message Queuing on Windows Server 2008

To install Message Queuing on Windows Server 2008

  1. Click Start, point to Programs, point to Administrative Tools, and then click Server Manager to display the Server Manager.

  2. Click Add Features to start the Add Features Wizard.

  3. Expand MSMQ, expand MSMQ Services, and then select the check boxes for the Message Queuing features that you want to install.

  4. Click Next, and then click Install.

  5. If you are prompted to restart the computer, click OK to complete the installation.

Setting Permissions in Active Directory Domain Services Before Installing the Routing Service or the Directory Service Integration Features of Message Queuing

The successful installation of the Routing Service feature on a Windows Server 2008 computer that is not a domain controller, or the Directory Service Integration feature of Message Queuing on a Windows Server 2008 computer that is a domain controller requires that specific permissions are set in Active Directory Domain Services. Follow these steps to grant the appropriate permissions in Active Directory Domain Services before installing these features.

To grant permissions for a computer object to the Servers object in Active Directory Domain Services before installing the Routing Service feature on a computer that is not a domain controller

  1. Click Start, point to Programs, point to Administrative Tools, and then click Active Directory Sites and Services to open Active Directory Sites and Services.

  2. Click to expand Active Directory Sites and Services, click to expand Sites, and then click to expand the site which this computer will be a member of.

  3. Right-click Servers and select Properties to display the Servers Properties dialog box.

  4. Click the Security tab of the Servers Properties dialog box.

  5. Click the Add button to display the Select Users, Computer, or Groups dialog box.

  6. Click the Object Types button to display the Object Types dialog box, click to enable Computers, and then click OK.

  7. Enter the name of the computer for which the Routing Service or Directory Service Integration feature will be installed, click Check Names, and then click OK.

  8. Enable the following permissions for this computer object:

    • Allow Read

    • Allow Write

    • Allow Create all child objects

  9. After enabling these permissions, click Advanced to display the Advanced Security Settings for Servers dialog box.

  10. Select the computer object from the list of permission entries and click the Edit button.

  11. Select This object and all descendant objects from the Apply to: dropdown list and click OK.

  12. Click OK to close the Advanced Security Settings for Servers dialog box.

  13. Click OK to close the Server Properties dialog box.
To grant the Network Service account the Create MSMQ Configuration Objects permission to the computer object in Active Directory Domain Services before installing the Directory Services Integration feature on a computer that is a domain controller

  1. Click Start, point to Programs, point to Administrative Tools, and then click Active Directory Users and Computers to open Active Directory Users and Computers.

  2. Click the View menu and click to enable the options for Users, Groups, and Computers as containers and Advanced Features.

  3. Click to expand the Domain container for the domain, click to expand the Computers container, right click the computer object on which the Directory Services Integration feature is being installed, and click Properties to display the computer properties dialog box.

  4. Click to select the Security tab of the computer properties dialog box.

  5. Click the Advanced button to display the Advanced Security Settings for <computer> dialog box.

  6. Click the Add button to display the Select User, Computer, or Group dialog box.

  7. Type <domain>\Network Service into the Enter the object name to select edit box. click Check Names, and then click OK. Substitute the actual Active Directory Domain Services domain name for <domain>.

  8. Click to enable Allow for the Create MSMQ Configuration objects permission and click OK to close the Permissions Entry for <computer> dialog box.

  9. Click OK to close the Advanced Security Settings for <computer> dialog box.

  10. Click OK to close the computer properties dialog box.

Considerations When Installing Message Queuing on Windows Server 2008

Do not install a Message Queuing server with routing on a domain controller

If your Message Queuing infrastructure requires both message routing and Active Directory Domain Services access, install this functionality on different computers to prevent overload on the domain controller. For example, install a Message Queuing server with the Routing Service feature on a non-domain controller computer, and install another Message Queuing server with the Windows 2000 client support feature on a Windows Server 2008 domain controller to provide Active Directory Domain Services access for Windows 2000 clients. This configuration helps prevent overload on the domain controller.

Additional references

  • Installing and Managing Message Queuing


Uninstall Message Queuing

Use this procedure to uninstall Message Queuing from a single computer. You can re-install Message Queuing at any time from Programs in Control Panel on a computer running Windows Vista® or from Server Manager on a computer running Windows Server® 2008. For more information, see Install Message Queuing.

Uninstalling Message Queuing on Windows Vista

To uninstall Message Queuing on Windows Vista

  1. Open Control Panel.

  2. Click Programs, and then, under Programs and Features, click Turn Windows features on or off.

    -or-

    Click Classic View, double-click Programs and Features, and then in the tasks pane click Turn Windows Features on or off.

  3. Clear the Microsoft Message Queue (MSMQ) Server check box.

  4. Click OK.

  5. When prompted, click OK to restart the computer.

Uninstalling Message Queuing on Windows Server 2008

To uninstall Message Queuing on Windows Server 2008

  1. Click Start, point to Programs, point to Administrative Tools, and then click Server Manager to display the Server Manager.

  2. Click Remove Features to start the Remove Features Wizard.

  3. Clear the MSMQ check box.

  4. Click Next, and then click Remove.

  5. When prompted, click OK to restart the computer.

Additional considerations

  • When uninstalling Message Queuing in a multidomain environment, wait for Active Directory Domain Services (AD DS) replication to occur. Also, check that the msmq object for the applicable computer was removed before you attempt to reinstall Message Queuing on the same computer.

  • Uninstalling Message Queuing does not remove Message Queuing files from the \Windows\System32 and \Windows\System32\Drivers folders.

Additional references

  • Installing and Managing Message Queuing


Remotely Manage Message Queuing

To remotely manage Message Queuing on a remote computer, the Remote Registry Service must be started on the remote computer. If it is not started, the Message Queuing node for the remote computer will not appear in Computer Management on the local computer.

Membership in Administrators, or equivalent, on the local and remote computer is the minimum required to complete this procedure.

Membership in <Domain>\Domain Administrators, or equivalent, is the minimum required to complete this procedure using Active Directory Users and Computers.

Remotely managing Message Queuing

To start the Remote Registry Service on the remote computer

  1. Open Computer Management.

  2. In the console tree, click Services.

    Where?

    • Computer Management/Services and Applications/Services

  3. In the details pane find the Remote Registry service, and ensure that its status shows as Started. If it is not, right-click Remote Registry and then click Start. You might also want to change the startup type to Automatic. To do so, right-click Remote Registry, click Properties, and in the Startup type box, click Automatic.

To remotely manage Message Queuing from the local computer

  1. Open Computer Management.

  2. Right-click Computer Management (local), and then click Connect to another computer....

    – or –

    On the Action menu, click Connect to another computer....

  3. In the Select Computer dialog box, click Another computer, type or browse to the name of the remote computer, and then click OK.

  4. If the connection succeeds (that is, if Computer Management now refers to the remote computer name), double-click Services and Applications and then verify that Message Queuing appears in the details pane.
To manage Message Queuing queues using Active Directory Users and Computers

  1. Click Start, point to Programs, point to Administrative Tools, and then click Active Directory Users and Computers.

  2. On the View menu, click Users, Groups, and Computers as containers, and then click Advanced Features.

  3. In the console tree, right-click the applicable queue.

    Where?

    • Active Directory Users and Computers/YourDomain/YourOrganizationalUnit (such as Computers or Domain Controllers)/YourComputer/msmq/YourQueueFolder (such as Private Queues for a private queue)/YourQueue/YourMessage

  4. Complete the desired task as you would when using Computer Management.

    This method can be used only if the local computer belongs to a Windows Server 2008 family domain, a Windows Server 2003 family domain, or a Windows 2000 domain and can contact a domain controller.

    You can create, delete, and change the properties of public queues on remote computers using the Active Directory Users and Computers snap-in only if you have domain administrative credentials and are logged on using a domain user account.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

Additional references

  • Installing and Managing Message Queuing


Administering Queues

In the context of Message Queuing, queues are temporary storage locations for different types of messages. Queues can be created by:

  • Applications

  • Administrators

  • Message Queuing

Queues that applications or administrators create are referred to as application queues. Queues that Message Queuing creates are known as system queues.

Application queues

Message Queuing includes the following types of application queues:

  • Destination queues, including:

    • Public and private queues

    • Transactional and nontransactional queues

  • Subqueues

  • Administration queues

  • Response queues

  • Report queues

Public and private queues

Public queues

In a domain environment, public queues are queues that are published in Active Directory Domain Services (AD DS) and hence are replicated throughout a forest. Only the properties for these queues are replicated, not the actual queues themselves or their contents. Any computer within your forest can potentially access information regarding public queues, provided the user has sufficient permissions to access the applicable queue objects. Generally speaking, any user in the forest with access to AD DS and the Send Message permission for a given public queue can send messages to it. This permission is granted by default when the queue is created. To read messages from a public queue, you must have the Peek Message or Receive Message permissions for the queue.

In an AD DS environment, defining public queues ensures that queues are registered in the directory service, and that their registration is backed up. They are persistent and available to other applications.

Private queues

Private queues are queues that are not published in AD DS. They are displayed only on the local computer that contains them. Private queues have the advantage of no directory service overhead, which results in queues that:

  • Are quicker to create.

  • Have no latency when they are accessed.

  • Have no replication overhead.

In a workgroup environment, only private queues are available.

For a Message Queuing application on the local computer to access a private queue, the application only needs to know the path of the queue. For a Message Queuing application on a remote computer, the application requires a direct or private format name to access such a queue. To read messages from the queue, the remote Message Queuing application requires the Receive Message permission for that queue. By default, everyone has permissions to send messages to public and private queues.

Transactional and nontransactional queues

A transactional queue is one that only contains transactional messages, which are messages sent within a transaction. The requirements for sending and receiving messages are based on the type of queue used (transactional or nontransactional) and the queue's location (local or remote).

Sending messages

When using transactions to send messages, the messages can be sent to any transactional queue regardless of where the queue is located, but transactional queues can only accept messages sent in the context of a transaction. In a similar way, nontransactional queues can only accept messages sent outside the context of a transaction.

Receiving messages

You can receive messages from a local or remote queue.

Subqueues

Subqueues are a new feature in Message Queuing 4.0. They allow applications to group messages. Subqueues are useful in the following scenarios:

  • Work order processing. If an application processes messages that contain items from different work orders, it can use the subqueues to group the line items by work order for more efficient processing.

  • Poison message handling. If an application receives a message that it cannot process at that time, it can move the message to a fault subqueue to be processed later.

Subqueues are implicitly created when they are opened. In other words, when a message is moved to a subqueue, this action essentially creates a subqueue if one does not already exist. Subqueues are deleted when empty, and they have no open handles. Applications cannot send messages directly to subqueues. They can only move messages to a subqueue. They can receive messages from subqueues, move them between a main queue and its subqueue, or move them between subqueues of the same main queue. They cannot move them from the subqueue of a main queue to the subqueue of a different main queue.

For example, in the following figure, messages can be moved back and forth between subqueue1 (or subqueue2) and the Queue messages folder of queuea. Messages can also be moved between subqueue1 and subqueue2. Similarly, messages can be moved back and forth between queuez and its subqueues, subqueue3 and subqueue4.

However, messages cannot be moved in either direction between queuea and subqueue3 or subqueue4, or between queuez and subqueue1 or subqueue2. Similarly, messages cannot be moved back and forth between the subqueues of queuea (subqueue1 or subqueue2) and the subqueues of queuez (subqueue3 or subqueue4).

Subqueues do not have their own properties or state. They share the properties of the main queue. For example, a subqueue does not have its own:

  • Quota

  • Access control list (ACL)

  • Transactional type

Subqueues share the quota of the main queue, and messages in the subqueue are factored into that quota.

Subqueues cannot be created under journal or other system queues, or other subqueues.

Administration queues

Administration queues are application-generated queues. They are used to store system-generated negative and positive acknowledgment messages that Message Queuing or connector applications create. They are specified programmatically in the original messages by the sending application. Any available nontransactional queue can be specified as an administration queue. Administration queues do not contain administrative messages, which are stored in internal private queues.

The system-generated acknowledgment messages returned to these queues can indicate whether a message arrived at its destination queue, whether it was retrieved from the destination queue, or both. Each acknowledgment message contains information that describes what triggered the acknowledgment and to which message the acknowledgment refers. When requesting acknowledgment messages, the sending application must specify the queue to be used as the administration queue and the acknowledgment level of the message. Typically, an administration queue is a local queue, so that the sending application can read the acknowledgment messages locally.

Response queues

Like administration queues, response queues are application-generated. They are used to store application-generated response messages that are typically returned by an application that is reading messages from a queue. Response queues are specified programmatically by the sending application when a message is sent. Any available queue can be specified as a response queue. Response messages are not the same as administrative response messages, which are stored in an internal private queue.

The response messages returned to these queues must be understood by the application returning the response messages and the application reading the response messages. Message Queuing has no control over what information is sent in response messages. When requesting response messages, the sending application must specify the queues that it wants to use as response queues. Typically, response queues are local queues, so that the sending application can read the response messages locally.

When a response queue and an administration queue are both needed, their functionality can be combined into a single queue. However, because all administration queues must be nontransactional, this queue will accept only nontransactional messages.

Report queues

Report queues are application-generated queues used to store report messages that Message Queuing or connector applications generate when the sending application requests tracing. The report messages indicate the route that a message took to its destination on a remote computer or the route that a test message took to a test queue on a remote computer. There can be only one report queue for each computer.

All report queues must have the following label and queue type identifier:

  • Label: MQReport Queue

  • Queue type identifier:

    {55EE8F32-CCE9-11CF-B108-0020AFD61CE9}

The Message Queuing administrator typically creates report queues by using Active Directory Users and Computers. However, an application can also generate them, if the correct label and queue type identifier are specified when the queue is created. Message Queuing uses the label and queue type identifier to locate and open the appropriate queue when sending report messages.

System queues

Message Queuing creates system queues. Applications can read the messages in system queues, but cannot address messages to them. Message Queuing provides different types of system queues, including:

  • Journal queues, which contain copies of all messages removed from a queue. Computer journals contain copies of all messages sent from a computer.

  • Internal private queues, which are used as interim queues for storing and forwarding messages in transit to a destination queue. These queues are not published in AD DS. Outgoing queues are local internal private queues, generated automatically to store messages sent to remote queues.

  • Dead-letter queues, which contain messages that cannot be delivered. Message Queuing provides a transactional dead-letter queue and a nontransactional dead-letter queue.

  • Connector queues, which are used for cross-platform messaging.

  • Outgoing queues, which are local internal queues that are used to store messages sent to remote queues. Messages can be stored in outgoing queues under offline conditions and then sent to target queues on remote computers when connectivity is re-established. These queues are generated automatically and cannot be created or deleted manually.

Perform the following procedures as needed to administer queues:

  • Create Queues

  • Delete Queues

  • Pause or Resume an Outgoing Queue

  • Change Queue Labels

  • Take Outgoing Queues Offline

  • Allow Only Authenticated Messages on Queues


Create Queues

When you create a queue, you are prompted to specify the minimal information needed. Each queue has many more properties (attributes) that you can set. After you create a queue, you can view and modify the values of many additional attributes.

Creating queues

To create queues

  1. Open Computer Management.

  2. In the console tree, right-click the queue folder.

    Where?

    • Computer Management/Services and Applications/Message Queuing/YourQueueFolder (either Public Queues or Private Queues)

  3. Point to New, and then click Public Queue (or Private Queue) to open the New Object – Public Queue dialog box (or the New Private Queue dialog box).

  4. Under Queue name, type a name for the new queue, and then click OK. Or, if you want to create a queue to accept transactional messages, type a name, select the Transactional check box, and then click OK.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

  • You cannot create queues in the Outgoing Queues or System Queues folder. Queues in these folders are created automatically.

  • The queue objects for the queues residing on a particular computer are child objects of the msmq object on the applicable computer. Thus, to create a queue, you must have the Create All Child Objects permission for the msmq object under which the queue will be created.

  • You can create public queues on remote computers using Active Directory Users and Computers. To do so, you must have domain administrative permissions and be logged on with a domain user account.

  • When you create a queue, the default permission is that everyone can send to this queue. For tighter security, you can change the default security permissions for the queue. You can also specify properties for the queue when you create it. For example, you can specify to accept authenticated messages only. For instructions, see Allow Only Authenticated Messages on Queues.

Additional references

  • Administering Queues


Delete Queues

When you delete a queue, all messages within the queue are also deleted. However, the triggers associated with that queue are not deleted. If you later re-create a queue of the same name, this queue will use any existing triggers. The Message Queuing Triggers service will not monitor this re-created queue until the computer is restarted, or until the associated triggers are disabled, and then enabled again.

Deleting queues

To delete queues

  1. Open Computer Management.

  2. In the console tree, right-click the queue.

    Where?

    • Computer Management/Services and Applications/Message Queuing/YourQueueFolder (such as Public Queues or Private Queues)/YourQueue

  3. Click Delete.

  4. When prompted, click Yes to delete the queue.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

  • You cannot delete queues in the Outgoing Queues or System Queues folder.

  • For instructions on creating a trigger, see Create Triggers.

  • For instructions on setting the enabled or disabled property for a trigger, see View or Change Properties of Triggers and Rules for Triggers.

Additional references

  • Administering Queues


Pause or Resume an Outgoing Queue

When you pause the operation of an outgoing queue, you postpone the sending of messages from that queue to the corresponding destination queue. This way, you can send all pending messages to a destination queue at a later time. You can also pause the operation of all outgoing queues by taking Message Queuing—and thus the outgoing queues—offline from the network. For more information, see Take Outgoing Queues Offline.

Pausing or resuming an outgoing queue

To pause or resume an outgoing queue

  1. Open Computer Management.

  2. In the console tree, right-click the queue.

    Where?

    • Computer Management/Services and Applications/Message Queuing/Outgoing Queues/YourOutgoingQueue

  3. Point to All Tasks.

  4. Click Pause. Or, to resume the operation of the queue, click Resume.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

  • The icons of outgoing queues that are offline are marked by an X on a circular red background in the Computer Management console tree.

Additional references

  • Administering Queues


Change Queue Labels

A queue label is a string with a maximum length of 124 Unicode characters that you can use to identify the queue. For example, queues that accept messages that a specific application sends might all have the label "Messages from my application."

Changing queue labels

To change queue labels

  1. Open Computer Management.

  2. In the console tree, right-click the queue.

    Where?

    • Computer Management/Services and Applications/Message Queuing/YourQueueFolder (Public Queues or Private Queues)/YourQueue

  3. Click Properties.

  4. On the General page, in Label, type the new label for the queue.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

Additional references

  • Administering Queues


Take Outgoing Queues Offline

When you take Message Queuing offline from the network, you pause the operation of all outgoing queues on the local computer. This is useful when you communicate over a slow, expensive connection and want to defer sending messages in all outgoing queues on the computer to a later time. You can also pause the operation of a single outgoing queue.

You can only perform this task by using Computer Management.

Taking outgoing queues offline

To take outgoing queues offline

  1. Open Computer Management.

  2. In the console tree, right-click Message Queuing.

    Where?

    • Computer Management/Services and Applications/Message Queuing

  3. Point to All Tasks, and do one of the following:

    • To take Message Queuing offline from the network, click Take Message Queuing Offline.

    • To bring Message Queuing back online, click Bring Message Queuing Online.

  4. When prompted, click Yes.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

Additional references

  • Administering Queues


Allow Only Authenticated Messages on Queues

When you create a queue, the default permission is that everyone can send messages to this queue. For tighter security, you can change the default security permissions for the queue. You can also specify properties for the queue when you create it. For example, you can specify to accept authenticated messages only.

Allowing only authenticated messages on queues

To allow only authenticated messages on queues

  1. Open Computer Management.

  2. In the console tree, right-click the queue.

    Where?

    • Computer Management/Services and Applications/Message Queuing/YourQueueFolder (such as Public Queues or Private Queues)/YourQueue

  3. Click Properties.

  4. On the General tab, select the Authenticated check box.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

  • To accept any messages on the queue, clear the Authenticated check box.

Additional references

  • Administering Queues


Administering Messages

In the context of Message Queuing, messages consist of a body and a set of properties. Message bodies can contain text or any form of binary information, and can be encrypted. Most message properties are specified programmatically by Message Queuing applications. Some properties, such as the sender's security ID (SID) and the message ID, are specified by Message Queuing. Message properties cannot be encrypted. A message, including the body and all specified properties, can be no larger than 4 megabytes (MB) in size.

This section shows you how to:

  • Move a Message

  • Perform a Cut-and-Paste Operation on a Message

  • Purge Messages


Move a Message

The ability to move messages between queues is a new feature in Message Queuing 4.0. You can move messages between different subqueues of the same main queue, or from a main queue to its subqueue. You cannot move messages from a main queue to a subqueue of a different main queue. For more information, see Administering Queues.

If the main queue is transactional, moving messages between subqueues or between the main queue and a subqueue can be performed as part of a transaction. If the main queue is nontransactional, moving messages between subqueues or between the main queue and a subqueue should not be performed as part of a transaction. In this scenario, messages might be lost if the transactions fail.

The format for the path of the target queue must be specified as follows.

Queue type | Path format
Public queue | Host Name\Queue Name;Subqueue Name For example: ITComputer\Orders;RejectedOrders
Private queue | Host Name\private$\Queue Name;Subqueue Name For example: ITComputer\private$\Orders;RejectedOrders

Moving a message does not change any of its properties, except for the current move count.

Moving a message

To move a message

  1. Open Computer Management.

  2. In the console tree, click Queue messages or the subqueue that contains the message that you want to move.

    Where?

    • Computer Management/Services and Applications/Message Queuing/YourQueueFolder (such as Public Queues or Private Queues)/MainQueueName/Queue messages or SubqueueName

  3. In the details pane, right-click a message, point to All Tasks, and then click Move.

  4. For Target:, select a target queue on the local computer from the list, or type the path of a queue.

    - or -

    Perform a drag-and-drop operation on the message, moving it from the source queue to the target queue.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

Additional references

  • Administering Messages


Perform a Cut-and-Paste Operation on a Message

As an alternative to using the Move Message dialog box or performing a drag-and-drop operation, you can cut a message from a subqueue and then paste it to another subqueue of the same main queue or to the main queue itself.

Perform the cut-and-paste operation by right-clicking the message, and then clicking Cut or Paste. Alternatively, you can use keyboard shortcuts (CTRL+X and CTRL+V). You can only perform this operation on one message at a time; selecting multiple messages is not supported.

Performing a cut-and-paste operation on a message

To perform a cut-and-paste operation on a message

  1. Open Computer Management.

  2. In the console tree, click Queue messages or the subqueue that contains the message on which you want to perform a cut-and-paste operation.

    Where?

    • Computer Management/Services and Applications/Message Queuing/YourQueueFolder (such as Public Queues or Private Queues)/MainQueueName/Queue messages or SubqueueName

  3. In the details pane, right-click a message, and then click Cut.

  4. Click the name of a valid target queue on the local computer, and then right-click the details pane and click Paste.

    Note

    The Paste command will be available only if you select a valid target queue.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

Additional references

  • Administering Messages


Purge Messages

You cannot delete an individual message from a queue. Instead, you can purge all messages to completely clear the contents of the queue.

Purging messages

To purge messages

  1. Open Computer Management.

  2. In the console tree, right-click Queue messages or the subqueue from which you want to purge messages.

    Where?

    • Computer Management/Services and Applications/Message Queuing/YourQueueFolder (such as Public Queues or Private Queues)/MainQueueName/Queue messages or SubqueueName

  3. Point to All Tasks, and then click Purge.

  4. Click Yes to confirm that you want to delete all messages in the queue.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

Additional references

  • Administering Messages


Administering Triggers

A trigger is an automatic mechanism for implementing a specific action in response to a message event. Message Queuing Triggers is a service that allows you to associate the arrival of each incoming message at a queue with an appropriate response. The type of response depends on the contents of the message.

You can use Message Queuing Triggers to define business rules that can be invoked in response to such messages without any additional programming. Ordinarily, to provide such message-handling functionality, application developers would have to create a receiving application that invokes specific behavior on a per-message basis. By using Message Queuing Triggers, specific behavior can be invoked at the queue level. Application developers no longer need to write any infrastructure code to provide such message-handling functionality.

Each trigger is associated with a specific monitored queue on the local computer and is invoked by the Message Queuing Triggers service for every Message Queuing message arriving at that queue. A trigger is configured to obey one or more rules. A rule is defined by one or more conditions and an action.

The actions performed when a condition is true are expressed either in the form of:

  • An executable file and parameters (arguments).

  • A Component Object Model (COM) component, a method, and parameters.

You can also invoke other types of files by making them parameters of an executable file. For example, you can invoke an .msc file by specifying mmc.exe as the executable file and including the full path of the .msc file as an invocation parameter of the string literal type. You can specify one or more parameters to be passed for each action.

If your trigger invokes an executable file with command-line arguments, these arguments can be included as parameters of the string literal type. However, you must add a separate parameter for each command-line argument.

Triggers can be associated with queues located on the local computer and a remote computer.

This section shows you how to:

  • Create Triggers

  • Create and Attach Rules to Triggers

  • Change Default Configuration Values for Triggers

  • View or Change Properties of Triggers and Rules for Triggers

  • Delete Triggers and Rules for Triggers


Create Triggers

All the triggers created on the local computer are listed in the details pane of Computer Management. To view the list, click Triggers in the console tree under the Triggers folder. For each trigger, the following are displayed by default in the details pane:

  • Trigger name

  • Name of the monitored queue

  • Number of rules attached to the trigger

  • Whether the trigger is enabled

  • Whether the trigger is serialized

  • Message processing type

Before creating a trigger, verify that the account under which the Message Queuing Triggers service is running has been granted the necessary permissions. The Peek Message permission and the Receive Message permission are required for all existing queues that will be associated with triggers having the retrieval or transactional-retrieval processing type.

After a trigger has been created, you can attach existing rules to it.

Creating triggers

To create triggers

  1. Open Computer Management.

  2. In the console tree, underneath the Triggers folder, right-click Triggers.

    Where?

    • Computer Management/Services and Applications/Message Queuing/Triggers/Triggers

  3. Point to New, and then click Trigger.

  4. In Trigger name on the first page of the New Trigger dialog box, type a name for the new trigger.

  5. If you want to specify a user-defined queue as the monitored queue, in Queue path name, type the path of the queue with which the trigger will be associated in the ComputerName\QueueName syntax, or the .\QueueName syntax for the local computer. (Do not use format names.) Otherwise, click the name of an automatically created queue on your computer.

  6. Select Peeking, Retrieval, or Transactional retrieval to specify the type of message processing.

  7. Select the Enabled check box to configure the trigger as enabled; clear the Enabled check box to configure it as disabled.

  8. Select the Serialized check box to configure the trigger as serialized; clear the Serialized check box to configure the trigger as not serialized, and then click Next.

  9. On the second page of the New Trigger dialog box, to attach an existing rule to the trigger, select a rule in the Rules list, and then click Attach.

  10. To remove a rule from a trigger, select a rule in the Attached Rules list, and then click Detach.

  11. To change the order in which rules are tested for the triggers, click the Up and Down buttons.

  12. When you have the list of attached rules that you want, click Finish.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

  • You can also perform this procedure from the Triggers folder under any monitored queue in the console tree, by opening the New Trigger dialog box as follows: right-click Triggers, point to New, and then click Trigger. In this case, the queue automatically becomes the monitored queue.

  • After you type the name of a user queue to which the trigger will be associated in Queue path name, the existence of the queue is verified. If a queue with the name typed cannot be found, an error message appears.

  • Triggers can be serialized or nonserialized. A serialized trigger tests the conditions of all the rules associated with it on each message. It performs all the applicable actions before moving on to the next message in the order in which the messages arrive. However, the throughput is lower than for nonserialized triggers because the messages are processed one at a time.

    Nonserialized triggers permit higher throughput, but might fail to perform a given operation on the messages in the order in which they arrive. This occurs, for example, when multiple messages are processed simultaneously. If you create multiple triggers for a particular queue and at least one of them is serialized, all the triggers will behave as serialized triggers, even if they are not defined as serialized. Triggers with the transactional-retrieval processing type can only be serialized. If message-processing order is significant, it is better to use only a single trigger per queue and enable the serialized option because the order of trigger firing is random. The particular globally unique identifier (GUID) of a message does not affect the order.

  • By default, the Message Queuing Triggers service runs under the Network Service account. When the Message Queuing Triggers service is running under the Network Service account, it does not interact with the desktop. If this functionality is required, you can configure the Message Queuing Triggers service to run under the Local System account and enable interaction with the desktop in Computer Management. As a security best practice, do not change the default account to a less secure account unless absolutely necessary. The Message Queuing Triggers service must run under an account with administrator permissions.

  • Executable files that triggers invoke are invoked with the same security privileges as those assigned to the Message Queuing Triggers service.

  • When you delete a queue, the triggers associated with that queue are not deleted. If you later re-create a queue of the same name, any existing triggers will be used by this queue. However, the Message Queuing Triggers service will not monitor this re-created queue until the computer is restarted, or the associated triggers are disabled, and then enabled again. For information about setting the enabled or disabled property for a trigger, see View or Change Properties of Triggers and Rules for Triggers.

Additional references

  • Administering Triggers


Create and Attach Rules to Triggers

A rule is composed of one or more conditions and an action that is taken when the conditions are true. Each condition is applied to a message when it arrives at the monitored queue, and the result is either true or false. Multiple conditions must all be true for an action to be taken.

If no condition is specified, a true value is always returned. This is useful when you want a trigger to fire unconditionally every time a message arrives at the monitored queue.

Creating and attaching rules to triggers

To create and attach rules to triggers

  1. Open Computer Management.

  2. In the console tree, right-click Rules.

    Where?

    • Computer Management/Services and Applications/Message Queuing/Triggers/Rules

  3. Point to New, and then click Rule.

  4. On the first page of the New Rule dialog box, in Rule name, type a name for the new rule, and in Rule description, type an optional description.

  5. Click Next.

  6. In the Condition list box under New condition, enter a condition by clicking the applicable initial string in the list box, typing the applicable final string in the Filter value/string text box below the list box, and then clicking Add. The complete condition then appears in Condition list. You can create additional conditions by repeating this operation.

  7. When you finish creating the conditions that you want to create, click Next.

  8. To make the trigger invoke a Component Object Model (COM) component, in COM component invocation, select Invoke COM component. In Component ProgID, type the ID of the COM component, and in Method name, type the name of the method.

  9. To make the trigger invoke a standalone executable file, in Standalone executable invocation, select Invoke standalone executable (EXE). In Executable path, type the full path of the executable file.

  10. To add parameters for either a COM component or a standalone executable file, click Parameters. Click a parameter in the Parameter list box. If the parameter is a numeric literal or a string literal, type its value in Literal value. To add the parameter to the Invocation parameters list, click Add. Repeat this operation for each parameter that you want to add, and use the Up and Down buttons to change the order in which the parameters are transferred to the program. Click OK, and then click Finish.

  11. To attach existing rules to a trigger, do the following:

    In the console tree, click Triggers.

    Where?

    • Computer Management/Services and Applications/Message Queuing/Triggers

      – or –

      Click Triggers under the applicable monitored queue.

    Where?

    • Computer Management/Services and Applications/Message Queuing/YourQueueFolder (Public Queues, Private Queues, or System Queues)/YourMonitoredQueue/Triggers

  12. In the details pane, right-click the applicable trigger, click Properties, and then click the Attached Rules tab. Click the rule you want to attach to the trigger from the Rules list, click Attach to move it to the Attached Rules list, and then click OK.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

  • All the rules created on the local computer are listed in the details pane of Computer Management when you click Rules in the console tree.

  • You can attach multiple rules to a trigger. In this case, the rules are run in the order in which they are displayed on the Attached Rules page of the Properties dialog box for that rule. You can change the priority (order of execution) of the rules in the list. To do so, use the Up and Down buttons as needed to give the rule a higher or lower priority, respectively. You can also detach rules by clicking each rule that you want to detach, and then clicking Detach.

Additional references

  • Administering Triggers


Change Default Configuration Values for Triggers

The default message body value is the size of the buffer that the Message Queuing Triggers service allocates for an incoming message. It is best to set this value equal to a size that will accommodate 90 percent of all messages that are expected to arrive in monitored queues. If you set this value too small, it forces the service to reallocate these buffers for every message. If you set it too large, an excessive amount of memory is allocated.

Changing default configuration values for triggers

To change default configuration values for triggers

  1. Open Computer Management.

  2. In the console tree, double-click Message Queuing, and then right-click Triggers.

    Where?

    • Computer Management/Services and Applications/Message Queuing/Triggers

  3. Click Properties, and then change the values in Initial number of threads, Max number of threads, and Default message body size as needed.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

  • All configuration information, trigger definitions, and rule definitions are stored in the local registry.

Additional references

  • Administering Triggers


View or Change Properties of Triggers and Rules for Triggers

All triggers and rules for triggers created on the local computer are displayed in the details pane of Computer Management, when you select the applicable folder in the console tree.

Viewing or changing properties of triggers and rules for triggers

To view or change properties of triggers and rules for triggers

  1. Open Computer Management.

  2. In the console tree, click Triggers or Rules.

    Where?

    • Computer Management/Services and Applications/Message Queuing/Triggers/Triggers (or Rules)

  3. In the details pane, right-click the applicable trigger or rule, and then click Properties.

  4. In the <TriggerName> Properties dialog box or <RuleName> Properties dialog box, view or change trigger or rule properties, respectively, as needed. You cannot change trigger or rule names.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

  • You cannot change the monitored queue of an existing trigger.

Additional references

  • Administering Triggers


Delete Triggers and Rules for Triggers

You can delete triggers or rules for triggers that are no longer needed. Triggers that are deleted are no longer applied to any queue, regardless of where the deletion of the trigger is initiated.

Deleting triggers and rules for triggers

To delete triggers and rules for triggers

  1. Open Computer Management.

  2. In the console tree, click Triggers or Rules.

    Where?

    • Computer Management/Services and Applications/Message Queuing/Triggers/Triggers (or Rules)

  3. In the details pane, right-click the applicable trigger or rule, and then click Delete.

    -or-

    Click the applicable trigger or rule, and then press the DELETE key.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

  • All triggers and rules for triggers created on the local computer are displayed in the details pane of Computer Management.

  • To detach rules from a trigger without deleting them, right-click the applicable trigger in the details pane, and then click Properties. Click the Attached Rules tab, select each rule that you want to detach, and then click Detach.

Additional references

  • Administering Triggers


Troubleshooting Message Queuing

This section provides guidelines for solving problems associated with installing and administering Message Queuing:

  • Troubleshooting Installation Problems

  • Troubleshooting Administration Problems

  • Troubleshooting Triggers

  • Troubleshooting by Using End-to-End Tracing

For a list of known issues and commonly asked questions about Message Queuing, see the Message Queuing Frequently Asked Questions paper (http://go.microsoft.com/fwlink/?LinkID=70497).


Troubleshooting Installation Problems

This topic provides guidelines for solving problems associated with installing (or uninstalling) Message Queuing.

If you encounter installation problems, always inspect the setup log files first. This is especially important when you perform an unattended setup because you will not know if something went wrong. Specify the location of the log file during unattended setup with the /log parameter of the Windows Optional Component Setup program ocsetup.exe. By default, setup writes information to the CBS.log file which is located in the %WinDir%\Logs\CBS\ folder.

Note

%WinDir% is a placeholder for the location of the Windows directory.

What problem are you having?

  • I have completed installing this version of Windows, but cannot find Message Queuing.

  • I cannot install Message Queuing, or I receive an "Access is Denied" error.

  • I receive a "Message Queuing application is running" error when uninstalling Message Queuing.

I have completed installing this version of Windows, but cannot find Message Queuing.
  • Cause: Message Queuing is not installed by default during setup of this version of Windows.

  • Solution: Using Programs in Control Panel, install Message Queuing after Windows Vista® is installed.

    -or-

    Using Server Manager, install Message Queuing after Windows Server® 2008 is installed.

  • For more information, see Install Message Queuing.

I cannot install Message Queuing, or I receive an "Access is Denied" error.
  • Cause: To install Message Queuing clients, you must be logged on with local administrative permissions for the computer on which you want to install software.

  • Solution: Verify that you are logged on with the proper permissions for the computer on which you want to install Message Queuing.

I receive a "Message Queuing application is running" error when uninstalling Message Queuing.
  • Cause: A Message Queuing application is currently running.

  • Solution: Close all Message Queuing applications.


Troubleshooting Administration Problems

This topic provides guidelines for solving problems associated with:

  • Viewing or setting Message Queuing properties.

  • Accessing objects in Active Directory Domain Services (AD DS).

  • Using the snap-ins for Message Queuing.

What problem are you having?

  • I cannot find Message Queuing under Services and Applications in Computer Management.

  • Changes I made do not show up in AD DS.

  • I cannot access the contents of a particular queue.

  • I cannot create queues.

  • Messages can no longer be delivered to a particular computer or queue.

  • A test message cannot be sent to a particular queue.

  • I cannot access messaging files stored locally on disk.

I cannot find Message Queuing under Services and Applications in Computer Management.
  • Cause: The Message Queuing service is not running.

  • Solution: In the Computer Management console tree, under Services and Applications, click Services. In the details pane, under Name, right-click Message Queuing, and then click Start. Restart Computer Management on Windows Vista® by clicking Start, right-clicking Computer, and then clicking Manage. To restart Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.

Changes I made do not show up in AD DS.
  • Cause: Replication can delay information updates displayed in the snap-ins, so that changes you make using the snap-ins do not appear until replication occurs.

  • Solution: Press F5 after making the change, or wait at least 15 minutes.

I cannot access the contents of a particular queue.
  • Cause: You might not have the proper permissions for viewing the queue. By default, Message Queuing displays all queues that are viewable. However, you can view the contents of only those queues that you have proper permissions to open. Therefore, there might be public queues whose contents are not viewable in the snap-ins.

  • Solution: Ensure that the Peek Message or Receive Message permissions for the queue are granted to you. To view the contents of a queue journal, you must have the Peek Journal permission granted for the queue. To read messages from a private queue, the remote Message Queuing application requires the Receive Message permission for that queue.

I cannot create queues.
  • Cause: You might have insufficient permissions to perform this operation.

  • Solution: Ensure that the Create Queue permissions are granted to you.

Messages can no longer be delivered to a particular computer or queue.
  • Cause: The computer quota or the queue quota for the particular computer might have been exceeded.

    You can verify this in the following two ways:

    • By requesting negative acknowledgment (NACK) messages and checking their class. (This technique is applicable to the quotas of destination queues, not to computer quotas.)

    • By using performance counters to compare the queue or computer quota to the actual volume of messages.

  • Solution: Process and remove messages from the applicable queues, or increase the appropriate quota value.

A test message cannot be sent to a particular queue.
  • Cause: Test messages can be sent from the MMC snap-in only to test queues; these have a queue type ID of {55EE8F33-CCE9-11CF-B108-0020AFD61CE9}.

  • Solution: Verify that the queue to which you want to send the test message has the correct queue type ID. Do not change a transactional queue or a queue requiring authentication to a test queue because any test messages sent will not be delivered to such a queue. You can send test messages programmatically to queues with any queue type ID.

I cannot access messaging files stored locally on disk.
  • Cause: By default, only members of the Administrators group for the local computer have full access to all locally stored message files, log files, and local queue storage (LQS) files.

  • Solution: Grant yourself administrative permissions for the computer, or add yourself to the local Administrators group.


Troubleshooting Triggers

This topic discusses the most common problems encountered with the Message Queuing Triggers service.

What problem are you having?

  • The Message Queuing Triggers service fails to start.

  • A trigger is defined, but it does not appear to be firing.

  • The processing of messages by the Message Queuing Triggers service slows disproportionately as more messages arrive at a monitored queue.

  • I cannot see my triggers application on the desktop, although I see in Task Manager that the application is running.

The Message Queuing Triggers service fails to start.
  • Cause: The Message Queuing Triggers service has been configured to run under a domain user account without proper administrator permissions.

  • Solution: Configure the Message Queuing Triggers service to run under the default Network Service account, which has sufficient permissions to run the Message Queuing Triggers service. Alternatively, grant yourself the necessary permissions. The Triggers service must run under an account with administrator permissions.

  • Cause: The Message Queuing Triggers service has failed. In-process Component Object Model (COM) components that are invoked can sometimes fail and thereby cause the Message Queuing Triggers service to fail.

  • Solution: Rectify the condition that causes the COM component to fail, and then restart the Message Queuing Triggers service.

A trigger is defined, but it does not appear to be firing.
  • Cause: The trigger is currently disabled.

  • Solution: Verify that the trigger has been enabled.

  • Cause: The account under which the Message Queuing Triggers service is running has not been granted the Peek Message permission for the monitored queue. Or, if the message processing type of the trigger is retrieval or transactional retrieval, the account has not been granted the Receive Message permission for that queue.

  • Solution: Change the permissions for the queues, and then restart the Message Queuing Triggers service.

  • Cause: The Message Queuing Triggers service is not running.

  • Solution: Verify that this service has been started.

  • Cause: The Message Queuing Triggers service has been paused.

  • Solution: Verify that this service is not in a paused state. To do this, open Computer Management, click Services and Applications, and then click Services. In the details pane, if the status for the Message Queuing Triggers service is set to Paused, right-click the service, and then click Resume.

  • Cause: The trigger conditions are not all satisfied. If any trigger condition evaluates as false, the trigger will not fire.

  • Solution: Verify that all conditions of the rule are true.

  • Cause: The Message Queuing Triggers service cannot be initialized when running under a non-administrator account.

  • Solution: By default, the Message Queuing Triggers service runs under the Network Service account. If you have changed this default, ensure that the account you have specified has administrator permissions.

The processing of messages by the Message Queuing Triggers service slows disproportionately as more messages arrive at a monitored queue.
  • Cause: This is normal when the Message Queuing Triggers service runs under heavy loads. It occurs because the maximum number of threads is reached.

  • Solution: You can accelerate the processing of messages by increasing the maximum number of allowable threads. To do this, open Computer Management, click Services and Applications, click Message Queuing, right-click Triggers, and then click Properties. Increase the maximum number of threads in Max number of threads.

I cannot see my triggers application on the desktop, although I see in Task Manager that the application is running.
  • Cause: The Message Queuing Triggers service runs by default under the Network Service account; interaction with the desktop functionality is only available for the Local System account.

  • Solution: Configure the Triggers service to run under the Local System account and enable it to interact with the desktop. To do this, in Computer Management, click Services, and in the details pane, double-click Message Queuing Triggers. Click the Log On tab, click Local System, and then select the Allow service to interact with desktop check box.


Troubleshooting by Using End-to-End Tracing

End-to-end tracing provides valuable information to help troubleshoot problems with message delivery. It tracks the path of a message through its life cycle, from the time that an application sent it to the time that:

  • An application uses the message.

  • The message is deleted because of an error.

  • The message is put in a dead-letter queue.

After a message has been sent, you can look at correlated activities and determine where the message is and why it is there.

End-to-end tracing is disabled by default. Perform the following steps to enable it.

Using end-to-end tracing

To enable end-to-end tracing

  1. In Event Viewer, open Applications and Services Logs.

    Where?

    • Computer Management/Event Viewer/Applications and Services Logs

  2. In the console tree, double-click Microsoft, double-click Windows, and then double-click MSMQ.

  3. In the details pane, right-click End2End, and then click Properties.

  4. On the General tab, select the Enable logging check box.

  5. Click OK.

After you enable it, you can view end-to-end tracing events in Event Viewer. Perform the following steps to view these events.

To view end-to-end tracing events

  1. In Event Viewer, open Applications and Services Logs.

    Where?

    • Computer Management/Event Viewer/Applications and Services Logs

  2. In the console tree, double-click Microsoft, double-click Windows, double-click MSMQ, and then click End2End.

  3. In the details pane, view the end-to-end tracing event.

By default, events for all messages are listed by the date and time on which they occurred, with the most recent events listed first. You can diagnose problems more effectively by correlating the events for each message. Perform the following steps to correlate events for a given message.

To correlate events for a given message

  1. In Event Viewer, open Applications and Services Logs.

    Where?

    • Computer Management/Event Viewer/Applications and Services Logs

  2. In the console tree, double-click Microsoft, double-click Windows, double-click MSMQ, and then click End2End.

  3. Right-click End2End, point to View, and then click Add/Remove Columns.

  4. In Available columns:, click Correlation Id, click Add, and then click OK.

  5. Right-click the Correlation Id column header, and then click Group Events by this column.

Additional considerations

  • To open Computer Management on Windows Vista®, click Start, right-click Computer, and then click Manage.

  • To open Computer Management on Windows Server® 2008, click Start, point to Programs, point to Administrative Tools, and then click Computer Management.


User Interface: Message Queuing

  • Message Queuing Properties Sheet - Diagnostics Tab

  • Send Test Message Dialog Box

  • Machine Tracking Dialog Box

  • Message Queuing Properties Sheet - General Tab

  • Message Queuing Properties Sheet - Routing Tab

  • Message Queuing Properties Sheet - Server Security Tab

  • Message Queuing Properties Sheet - Service Security Tab

  • Message Queuing Properties Sheet - Sites Tab

  • Message Queuing Properties Sheet - Storage Tab

  • Message Queuing Properties Sheet - User Certificate Tab

  • Create Queue Dialog Box

  • <Queue> Properties Sheet - General Tab

  • <Queue> Properties Sheet - Multicast Tab

  • Triggers - New Trigger Dialog Box - Page 1

  • Triggers - New Trigger Dialog Box - Page 2

  • <Trigger> Properties Sheet - General Tab

  • <Trigger> Properties Sheet - Attached Rules Tab

  • New Rule Dialog Box - Page 1

  • New Rule Dialog Box - Page 2

  • New Rule Dialog Box - Page 3

  • Invocation Parameters Dialog Box

  • Triggers <Rule> Properties Sheet - General Tab

  • Triggers <Rule> Properties Sheet - Rule Condition Tab

  • Triggers <Rule> Properties Sheet - Rule Action Tab

  • Triggers <Rule> Properties Sheet - Rule Action Tab - Invocation Parameters

  • Triggers Properties Sheet - General Tab

  • <Message> Properties - General Tab

  • <Message> Properties - Queues Tab

  • <Message> Properties - Sender Tab

  • <Message> Properties - Body Tab

  • Move Message Dialog Box

The following user interface dialog boxes are available on computers that are running Windows Server® 2008:

  • MSMQ Routing Link Sheet - Site Gates Tab

  • MSMQ Routing Link Sheet - General Tab

  • New Object - Foreign Computer Dialog Box

  • New Object - Foreign Site Dialog Box

  • New Object - Routing Link Dialog Box

  • MsmqServices Properties Dialog Box - General Tab

  • New Object - Message Queuing Queue Alias Dialog Box

  • <Site> Properties Sheet - Foreign Site Tab

  • <Queue Alias> Properties Sheet - General Tab

  • <User> Properties Sheet - Message Queuing User Certificate Tab

  • <Message> Properties - SOAP Envelope Tab

  • Message Queuing Properties Sheet - Security Tab


Message Queuing Properties Sheet - Diagnostics Tab

Item | Details
MQPing | To verify network connectivity, click to send a ping message to another Message Queuing computer.
Send test messages | To verify message-routing functionality, click to send a test message to another computer.
Tracking | Click to configure message-route tracking.


Send Test Message Dialog Box

This dialog box is disabled by default and appears only on the Diagnostics tab of the Message Queuing properties of a domain-joined computer that runs this version of Windows. To enable sending test messages, see Enable route tracking and test messages (http://go.microsoft.com/fwlink/?linkid=69727).

Item | Details
Destination Queue | Provides a space for you to type the path of the queue that you are creating, in the format computer_name\queue_name.
New Queue… | Creates a new test queue that can receive test messages.
Send | Sends a test message to the specified test queue. To send multiple messages to the same test queue, click Send repeatedly.
Close | Closes this dialog box.


Machine Tracking Dialog Box

This dialog box is disabled by default and appears only on the Diagnostics tab of the Message Queuing properties of a domain-joined computer that runs this version of Windows. To enable route tracking, see Enable route tracking and test messages (http://go.microsoft.com/fwlink/?linkid=69727).

Item Details

Path name of report queue:

Provides a space for you to type the path of the queue that can receive messages used for route tracking, in the format computer_name\queue_name.

New…

Creates a new queue that can receive messages used for route tracking.

Track all messages

Tracks all messages sent from the selected computer.

When message route tracking is enabled for a computer, all messages sent from the computer are tracked as they are routed through your network. As each message passes through an intermediate Message Queuing server, a message is sent to the report queue on the source computer, indicating which server the message passed through.

After message route tracking is enabled, you can send test messages and view the contents of the report queue.

Track only test message

Tracks only those test messages sent from the selected computer.


Message Queuing Properties Sheet - General Tab

Item Details

ID

Specifies the globally unique identifier (GUID) of the computer on which Message Queuing is installed.

A GUID is a 128-bit (16-byte) integer. The GUID format for computers is {12345678-1234-1234-1234-123456789012}.

Storage limits

You can select the following:

  • Limit message storage to (KB): Enter the total size of all messages (in kilobytes) that can be stored in the queue. The default value 1 gigabyte (GB).

    When the message storage-size limit for the queue is reached, messages cannot be sent to the queue until the cumulative size of all messages in the queue drops below the specified limit.

  • Limit journal storage to (KB): Enter the total size of all journal messages (in kilobytes) that can be stored in the queue.

    When the journal storage-size limit for the queue is reached, target journaling ceases until the cumulative size of all journal messages in the journal queue drops below the specified limit.


Message Queuing Properties Sheet - Routing Tab

This tab appears only on a domain-joined computer that runs this version of Windows.

Item Details

In-routing servers

Displays the selected in-routing servers used to route incoming messages for this computer:

  • Lists the available servers that you can use as the first in-routing server to route incoming messages for this computer.

  • Lists the available servers that you can use as the second in-routing server to route incoming messages for this computer.

  • Lists the available servers that you can use as the third in-routing server to route incoming messages for this computer.

Out-routing servers

Displays the selected out-routing servers used to route outgoing messages for this computer:

  • Lists the available servers that you can use as the first out-routing server to route outgoing messages for this computer.

  • Lists the available servers that you can use as the second out-routing server to route outgoing messages for this computer.

  • Lists the available servers that you can use as the third out-routing server to route outgoing messages for this computer.


Message Queuing Properties Sheet - Server Security Tab

Item Details

Enable hardened MSMQ mode to secure this computer on the Internet. In this mode, only messages sent with HTTP/HTTPS format names will be delivered.

Specifies whether hardened MSMQ mode is enabled.

In this mode, you can send messages to the queues on this computer only by using HTTP/HTTPS format names.

Enable secured remote receiving. In this mode, only computers running Windows Server 2003 or later can receive messages remotely from queues on this computer.

Specifies whether secured remote receiving is enabled.

If you enable this option, your computer will only listen on the new secured remote read interface. It will not listen on the old remote read interface used by Message Queuing running on earlier versions of Windows operating systems.

As a result, only Message Queuing 3.0 servers and Message Queuing 4.0 servers on computers running Windows Server 2003 or later can remotely receive messages from queues on your computer. Remote reads from MSMQ 1.0 clients, MSMQ 2.0 clients, and Message Queuing 3.0 clients running on Windows XP computers are not supported.

Disable dependent client support to prevent this computer from acting as a supporting server for dependent clients.

Specifies whether the Message Queuing server is enabled to support dependent clients.

A dependent client relies on its supporting server to perform all messaging functions on its behalf, such as hosting queues, storing messages, sending messages, and receiving messages. If the supporting server goes offline, the dependent client will be unable to send and receive messages.

Disable unauthenticated RPC calls

Specifies whether unauthenticated RPC calls are enabled. Unauthenticated RPC calls can be enabled to support workgroup clients.

Restore Defaults

Allows you to click to restore the default settings.

By default, Message Queuing servers are not enabled to act as supporting servers to dependent clients. Also, hardened MSMQ mode and secured remote receiving are not enabled by default.


Message Queuing Properties Sheet - Service Security Tab

This tab appears only on a domain-joined computer that runs this version of Windows.

Item Details

Click here to renew the cryptographic key

Renews your cryptographic keys.

It is good to renew the cryptographic keys on your computer periodically, such as once a year. Also, renew your cryptographic keys any time you suspect they have been compromised. This will reduce the chance that your private key has been tampered with.

When you renew the cryptographic keys for your computer, any messages that were encrypted with the previous public keys cannot be read. This occurs only until the new public keys are replicated in Active Directory Domain Services (AD DS) to all Message Queuing servers, and until the computer starts using the new public keys.


Message Queuing Properties Sheet - Sites Tab

This tab appears only on a domain-joined computer that runs this version of Windows.

Item | Details
All sites | Displays the names of available sites in your Active Directory forest.
< computer_name > Sites | Displays the sites to which the computer currently belongs.
Add | Adds the site selected in All Sites to the list of sites where this computer resides. To add the site selected in All Sites to the list of sites where your computer resides, click Add. This adds your computer to the selected site.
Remove | Removes the site selected in <computer_name> Sites from the list of sites where your computer resides. To remove the site selected in <computer_name> Sites from the list of sites where this computer resides, click Remove. This removes your computer from the selected site.


Message Queuing Properties Sheet - Storage Tab

Item | Details
Specify the disk drives and folders you want to use. | You can improve messaging performance by storing message files, message log files, and transaction log files on three separate disks. If you have only two disks, put the message files on one disk, and put the message log files and transaction log files on the other disk.


Message Queuing Properties Sheet - User Certificate Tab

This tab appears only on a domain-joined computer that runs this version of Windows.

Item Details

User Certificates - Register certificates in Active Directory

Creates an internal user certificate on your computer (if one does not already exist) and registers it in Active Directory Domain Services (AD DS).

User Certificates - View all registered certificates in Active Directory

Displays a list of all internal and external registered user certificates for your computer.

User Certificates - Remove certificates from Active Directory

Removes the selected registered user certificates from your computer and from AD DS.

If a registered certificate on your computer is removed using another computer, the certificate is removed from AD DS, but will still exist on your computer.

Internal certificate

Renews your internal user certificate.

Internal user certificates verify your identity using your security identifier (SID). These certificates are installed with Message Queuing.

You must renew your internal certificate if the certificate is corrupted. You must also renew your internal certificate if the private key, which is used with the public key stored in the certificate, is corrupted or compromised.


Create Queue Dialog Box

Item Details

Create in: <domain name or computer name>

The fully qualified domain name (FQDN) of an object in Active Directory Domain Services (AD DS) includes the organizational unit (OU) that contains it or the container in which it is created.

Information about Message Queuing objects that are not created in AD DS—such as private queues—is stored in folders on the local computer.

The names of private queues have the prefix private$\. You do not need to type this prefix because it is added automatically before the name of a new private queue.

Queue name

Provides a space for you to type the name of the queue that you are creating.

Transactional

Specifies whether to create a transactional queue.


<Queue> Properties Sheet - General Tab

Item Details

Label

Displays the queue label.

Type ID

Displays the queue-type ID, which specifies the type of service or function provided by the queue.

Limit message storage to (KB)

Specifies whether to activate the message quota for the selected queue.

Provides a space for you to type the total size of all messages (in kilobytes) that can be stored in the queue.

When the message storage-size limit for the queue is reached, messages cannot be sent to the queue until the cumulative size of all messages in the queue drops below the specified limit.

Authenticated

Specifies whether the queue accepts only authenticated messages.

Privacy level

Displays the privacy level for the queue according to whether it accepts messages that are encrypted, unencrypted, or both. For the queue to accept both encrypted and unencrypted messages, click Optional. For the queue to accept only encrypted messages, click Body. For the queue to accept only unencrypted messages, click None.

Enabled

Specifies whether target journaling is enabled for the queue.

Limit journal storage to (KB)

Specifies whether to activate the journal message quota for the selected queue.

Provides a space for you to type the total size of all journal messages (in kilobytes) that can be stored in the queue.

When the journal storage-size limit for the queue is reached, target journaling ceases until the cumulative size of all journal messages in the journal queue drops below the specified limit.


<Queue> Properties Sheet - Multicast Tab

Item | Details
Multicast address | Displays the multicast address associated with the queue. Provides a space for you to type a multicast IP address to be associated with the queue.


Triggers - New Trigger Dialog Box - Page 1

Item | Details
Trigger name | Provides a space for you to type a name for your new trigger.
User queue | Associates the new trigger with a user-defined queue.
Queue path name | Provides a space for you to type the path name of the user-defined queue with which the trigger will be associated in the computer_name\queue_name syntax, or the .\queue_name syntax for the local computer. (Do not use format names.)
Computer journal queue | Associates the new trigger with the automatically created journal queue on the local computer.
Computer dead-letter queue | Associates the new trigger with the automatically created dead-letter queue on the local computer.
Computer transactional dead-letter queue | Associates the new trigger with the automatically created transactional dead-letter queue on the local computer.
Peeking | Specifies that the trigger will process messages by peeking at them in the monitored queue.
Retrieval | Specifies that the trigger will process messages by retrieving them from the monitored queue.
Transactional retrieval | Specifies that the trigger will process messages by retrieving them from the monitored queue as transactional messages.
Enabled | Configures the new trigger as enabled. When this check box is cleared, the trigger is disabled.
Serialized | Configures the new trigger as serialized. A serialized trigger tests the conditions of all the rules associated with it on each message and performs all the applicable actions before moving on to the next message.


Triggers - New Trigger Dialog Box - Page 2

Item | Details
Rules | Lists the existing rules that you can attach to this trigger.
Attached rules | Lists the rules attached to this trigger.
View rule | Lists the details of a rule, and any actions and conditions associated with it. Click to view these details. Click the arrow that is pointing to the right to view a rule that is attached to this trigger. Click the arrow that is pointing to the left to view other rules.
Attach | Adds the selected rule to the list of rules attached for this trigger.
Detach | Removes the selected rule from the list of rules attached to this trigger.
Up | Raises the priority of the selected rule, so that it runs earlier.
Down | Lowers the priority of the selected rule, so that it runs later.


<Trigger> Properties Sheet - General Tab

Item Details

Monitored queue

Specifies the type of queue with which the trigger is associated. The possible queue types are:

  • User queue

  • Computer journal queue

  • Computer dead-letter queue

  • Computer transactional dead-letter queue

Peeking

Specifies that the trigger will process messages by peeking at them in the monitored queue.

Retrieval

Specifies that the trigger will process messages by retrieving them from the monitored queue.

Transactional retrieval

Specifies that the trigger will process messages by retrieving them from the monitored queue as transactional messages.

Enabled

Specifies that the trigger is enabled.

When this check box is cleared, the trigger is disabled.

Serialized

Specifies that the trigger is serialized.

A serialized trigger tests the conditions of all the rules associated with it on each message and performs all the applicable actions before moving on to the next message.


<Trigger> Properties Sheet - Attached Rules Tab

Item | Details
Rules | Lists the existing rules that you can attach to this trigger.
Attached rules | Lists the rules attached to this trigger.
View rules | Lists the details of a rule, and any actions and conditions associated with it. Click to view these details. Click the arrow that is pointing to the right to view a rule that is attached to this trigger. Click the arrow that is pointing to the left to view other rules.
Attach | Adds the selected rule to the list of rules attached for this trigger.
Detach | Removes the selected rule from the list of rules attached to this trigger.
Up | Raises the priority of the selected rule, so that it runs earlier.
Down | Lowers the priority of the selected rule, so that it runs later.


New Rule Dialog Box - Page 1

Item | Details
Create in: <folder name> | Displays the name of the folder in which the rule will be created.
Rule name | Provides a space for you to type the name of your new rule.
Rule description | Provides a space for you to type an optional description for your rule.


New Rule Dialog Box - Page 2

Item | Details
Condition | Provides a list of initial strings for your condition. Click an initial string for your condition from the list of supported strings.
Filter string/value | Provides a space for you to type the concluding string for your condition.
Add | Adds the selected condition to the list of conditions for this rule.
Condition list | Lists the conditions for this rule.
Remove | Removes the selected condition from the list of conditions for this rule.


New Rule Dialog Box - Page 3

Item | Details
Invoke COM component | Specifies that the trigger will invoke a Component Object Model (COM) component.
Component ProgID | Provides a space for you to type the ProgID of the COM component that the trigger will invoke.
Method name | Provides a space for you to type the method for the COM component referenced in Component ProgID.
Invoke standalone executable (EXE) | Specifies that the trigger will invoke a standalone executable program.
Executable path | Provides a space for you to type the full path of the standalone executable program that the trigger will invoke. Click … to find an executable program that the trigger will invoke.
Parameters | Opens Invocation Parameters, where you can specify one or more parameters that will be passed to the COM component or standalone executable program.


Invocation Parameters Dialog Box

Item | Details
Parameter | Click a parameter from the list of supported parameters.
Literal value | Provides a space for you to type a value for a string literal or numeric literal.
Invocation parameters | Displays a list of the message parameters that are sent to the standalone executable program or Component Object Model (COM) component invoked. These are listed in the order in which they are transferred to the program.
Add | Adds the parameter selected in Parameters to the list of invocation parameters.
Remove | Removes the parameter selected in Invocation parameters from the list.
Up | Moves the parameter selected in Invocation parameters toward the top of the list. Changes the order in which the parameters for a COM component or a standalone executable file are transferred to the program.
Down | Moves the parameter selected in Invocation parameters toward the bottom of the list. Changes the order in which the parameters for a COM component or a standalone executable file are transferred to the program.


Triggers <Rule> Properties Sheet - General Tab

Item | Details
Rule description | Provides a space for you to type an optional description for your rule.


Triggers <Rule> Properties Sheet - Rule Condition Tab

Item | Details
Condition | Lists the supported strings for your condition. Click an initial string for your condition from the list of supported strings.
Filter value/string | Provides a space for you to type the concluding string for your condition.
Add | Adds the selected condition to the list of conditions for this rule.
Condition list | Lists the conditions for this rule.
Remove | Removes the selected condition from the list of conditions for this rule.


Triggers <Rule> Properties Sheet - Rule Action Tab

Item | Details
Invoke COM component | Specifies that the trigger will invoke a Component Object Model (COM) component.
Component ProgID | Provides a space for you to type the ProgID of the COM component that the trigger will invoke.
Method name | Provides a space for you to type the method for the COM component referenced in Component ProgID.
Invoke standalone executable (EXE) | Specifies that the trigger will invoke a standalone executable program.
Executable path | Provides a space for you to type the full path of the standalone executable program that the trigger will invoke. Click … to find an executable program that the trigger will invoke.
Parameters | Opens Invocation Parameters, where you can specify one or more parameters that will be passed to the COM component or standalone executable program.


Triggers <Rule> Properties Sheet - Rule Action Tab - Invocation Parameters

Item | Details
Parameter | Click a parameter from the list of supported parameters.
Literal value | Provides a space for you to type a value for a string literal or numeric literal.
Invocation parameters | Displays a list of the message parameters that are sent to the standalone executable program or Component Object Model (COM) component invoked. These are listed in the order in which they are transferred to the program.
Add | Adds the parameter selected in Parameters to the list of invocation parameters.
Remove | Removes the parameter selected in Invocation parameters from the list.
Up | Moves the parameter selected in Invocation parameters toward the top of the list. Changes the order in which the parameters for a COM component or a standalone executable file are transferred to the program.
Down | Moves the parameter selected in Invocation parameters toward the bottom of the list. Changes the order in which the parameters for a COM component or a standalone executable file are transferred to the program.


Triggers Properties Sheet - General Tab

Item Details

Initial number of threads

Provides a space for you to type the initial number of threads.

The default value is 5.

Max number of threads

Provides a space for you to type the maximum number of threads.

The default value is 20.

Default message body size

Provides a space for you to type the default message body size, which is the size of the buffer allocated for an incoming message.

It is best if the value of this setting is sufficient for a buffer that can accommodate 90 percent of all messages expected to arrive at the monitored queue.

The default value is 2048.


<Message> Properties - General Tab

Item Details

Label

Displays the message label.

The sending application defines the message label.

ID

Displays the globally unique identifier (GUID) for the computer that sent the message, plus a 32-bit sequential number.

A GUID is a 128-bit (16-byte) integer. The GUID format for computers is {12345678-1234-1234-1234-123456789012}.

Priority

Displays the message priority.

Message Queuing applications can send messages with a priority of 0 through 7, with 7 as the highest priority. Messages are routed and delivered first by queue (base) priority, and then by message priority.

Class

Displays the message class as follows:

  • Normal message

  • Acknowledgment message (positive or negative)

  • Report message

All messages that Message Queuing applications create are normal messages by default.

Sent

Displays the date and time (in your current, local time zone) at which the message was sent.

Arrived

Displays the date and time (in your current, local time zone) at which the message was received.

Tracked

Specifies whether message route tracking is set for the message.

Lookup ID

Specifies the lookup ID for the message.

Current Abort Count

Specifies the number of times that the processing of this message was aborted in the current queue.

Current Move Count

Specifies the number of times that the message has been moved within a queue.

For more information about using the Current Abort Count and Current Move Count properties for poison message handling, see Handling Poison Messages (http://go.microsoft.com/fwlink/?LinkId=69016).


<Message> Properties - Queues Tab

Item | Details
Recipient | Displays the format name and path of the queue receiving the message.
Destination | Displays the multiple-element format name of the destination.
Administration | Displays the format name and path of the administration queue for the message.
Response | Displays the format name and path of the response queue for the message.
Dead-letter | Displays the path of the dead-letter queue.


<Message> Properties - Sender Tab

Item Details

GUID

Displays the globally unique identifier (GUID) of the computer that sent the message.

A GUID is a 128-bit (16-byte) integer. The GUID format for computers is {12345678-1234-1234-1234-123456789012}.

Name

Displays the path for the computer that sent the message.

User

Displays the name of the user who sent the message.

SID

Displays the security identifier (SID) of the user who sent the message.

Authenticated

Indicates whether the message is authenticated.

Hash algorithm

Displays the hash algorithm.

The sending application defines the values of the hash algorithm.

Encrypted

Indicates whether the message is encrypted.

Encryption algorithm

Displays the name of the encryption algorithm that the sending application used to encrypt the message body.

If Unknown appears, the message is encrypted, but the Computer Management snap-in cannot display the algorithm that was used to encrypt the message.

If No appears in this area, the message is not encrypted.


<Message> Properties - Body Tab

Item | Details
Body size | Displays the size of the message body (in bytes).
Body dialog box | Displays the contents of the message body. A message body can contain text or binary information. Text information is readable. If a message body contains binary information, hexadecimal data is displayed along with its text translation. You can view message bodies in the Body dialog box for the message.


Move Message Dialog Box

Item | Details
Source | Specifies the name of the subqueue from which the message is moved.
Target | Specifies the name of the queue to which the message should be moved.

The format for the path of the target queue must be specified as follows.

Queue type | Path format
Public queue | Host Name\Queue Name;Subqueue Name
Private queue | Host Name\private$\Queue Name;Subqueue Name

For more information about using this dialog box, see Move a Message.


MSMQ Routing Link Sheet - Site Gates Tab

Item | Details
Available servers | Lists the available site gates that can be added to the routing link.
Site gates | Lists the site gates used for the routing link. Messages sent between computers in different sites are routed using the Message Queuing servers listed.
Add | Adds the selected site gate to the routing link.
Remove | Removes the selected site gate from the routing link. Messages sent between computers in different sites will no longer be routed through this Message Queuing server.


MSMQ Routing Link Sheet - General Tab

Item | Details
Link cost | Provides a space for you to type a new cost for the routing link. Change routing link costs only if you have multiple routing links and you want to enforce one route over another route using link cost. In that case, you can assign costs that reflect the differences in the communications costs. Costs can range from 1 (the default value) to 999999.
Description | Provides a space for you to type a new description for your routing link.


New Object - Foreign Computer Dialog Box

Item | Details
Computer name | Provides a space for you to type the name of the foreign computer you are adding to the foreign site.
Foreign site | Provides a space for you to type the name of the foreign site to which the foreign computer will belong.


New Object - Foreign Site Dialog Box

Item | Details
Foreign site name | Provides a space for you to type the name of the foreign site you are creating.


New Object - Routing Link Dialog Box

Item | Details
Site 1 | Provides a space for you to type the name of one site to which the routing link will connect.
Site 2 | Provides a space for you to type the name of the other site to which the routing link will connect.
Routing link cost | Provides a space for you to type a cost for the new routing link. Change routing link costs only if you have multiple routing links and you want to enforce one route over another route using link cost. In that case, you can assign costs that reflect the differences in the communications costs. Costs can range from 1 (the default value) to 999999.


MsmqServices Properties Dialog Box - General Tab

Item Details

Default lifetime of a message in the network

Provides a space for you to type the maximum amount of time (in hours or days) that a message can take to reach its destination queue before being placed in a dead-letter queue.

This value is called time-to-reach-queue (TTRQ).

Provides a space for you to type the units of measure you want to use with the associated Default lifetime of a message in the network value.

You can also click the scroll arrows to select a new setting. You can specify this value in seconds, minutes, hours or days.


New Object - Message Queuing Queue Alias Dialog Box

Item Details

Queue alias name

Provides a space for you to type the alias you want to create.

Format name

Provides a space for you to type the format name of the target to which the new alias points.

Any single-element format name can be typed. The following are possible examples of valid format names:

PUBLIC=308fb580-1eb2-11ca-923b-08002b1075a7

PRIVATE=ae0c5671-f190-12ce-ae10-00dd0114290f\0000000d

DIRECT=os:comp1\private$\q1

DIRECT=http://www.<domainname>.com\msmq\pubq1

Note

In the example that describes using http, <domainname> is a placeholder for the actual domain name that is used.


<Site> Properties Sheet - Foreign Site Tab

Provides information about Message Queuing functionality available with this foreign site.


<Queue Alias> Properties Sheet - General Tab

Item | Details
Queue alias format name | Displays the format name of the target to which the alias points and provides a space for you to change it.
Description | Provides a space for you to type a description of the target to which the alias points.


<User> Properties Sheet - Message Queuing User Certificate Tab

Item Details

List of Personal Certificates

Displays a list of all registered user certificates for this computer, both internal and external.

View

Click to see the properties and details for the selected registered user certificate.

Remove

Click to remove the selected registered user certificates from this computer and from Active Directory.

If a registered user certificate on this computer is removed using another computer, the certificate is removed from Active Directory, but will still exist on this computer.


<Message> Properties - SOAP Envelope Tab

Item | Details
SOAP Envelope dialog box | Displays the contents of the SOAP envelope associated with the message. A SOAP envelope is required for messages that are received via HTTP.


Message Queuing Properties Sheet - Security Tab

Item Details

Group or user names

Lists the users and groups who have permissions assigned to them for this object. The permissions for the highlighted group or user are displayed in the list box. Click Add to add users and groups for which you want to assign permissions. Click Remove to remove the highlighted permission entry. There might be more than one permission entry associated with a user or group.

Permissions for <group or user>

Lists permissions that you can allow or deny for each user or group. To explicitly allow or deny the permission, select or clear the appropriate check box. If a check box is selected, the permission was inherited. If the Advanced button is available, click it to see additional permissions or inheritance information.

Important

When using the Apply to option to control inheritance, not only do the specified objects inherit that access control entry (ACE), but all child objects also receive a copy of that ACE. The child objects that are not specified in the Apply to field receive copies of the ACE, but do not enforce it. If there are enough objects that will get copies of the ACE, the increased amount of data can cause serious performance problems on your network.