2.1.3 Interaction with External Components

This section describes the externally visible view of the MSMQ protocols and the components in the system.

The following figure expands on the figure with the caption "Participating components in a Message Queuing System" in section 1.1 and shows the various internal and external components of a Message Queuing System.

Interactions with external components

Figure 7: Interactions with external components

The queue manager interacts with its internal storage subsystem for persistence of its configuration data, application data, which includes queues and nonvolatile messages, and state. The exact storage mechanism that is used varies per implementation of the MSMQ protocol set; however, it retains persistent data and state across system restarts. The queue manager interacts with other queue managers in the implementation.

The queue manager optionally interacts with an external Transaction Coordinator to provide transactional capabilities while sending or receiving messages to or from individual queues. Applications can create external transactions from the Transaction Coordinator and can pass them on to MSMQ protocols to atomically perform certain messaging operations. The external Transaction Coordinator functionality is described in [MS-DTCO].

The MSMQ protocol set optionally uses a directory through a Directory Service component. The directory stores and provides information such as network topology, security key distribution, queue and system metadata, and queue discovery. For more information about the Directory Service, see section 2.1.3.3.

The following subsections describe the relationship of the queue manager with the preceding subcomponents.