Message Queuing Offline Support
Applies To: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server Technical Preview, Windows Vista
Message Queuing provides support for computers that are temporarily not connected to all or part of the network and have no access to the directory service. In the context of Message Queuing, such computers operate in offline mode.
This support allows an application to send messages to remote queues using any type of format name while it is operating offline and then later connect to the network. Once the application computer is connected to the network, the messages that could not be delivered to remote queues are sent on to their destination. Similarly, with this support, an application can read messages from local public and private queues in calls using any type of format name and from remote public and private queues in calls using a direct format name during offline operation.
Dependent client computers cannot be used for offline operations.
The following illustrations show the possible connections between the application computer when operating online and offline.
When the application is operating offline, it uses a local temporary internal queue called an outgoing queue to store messages that cannot be delivered to remote queues. Message Queuing delivers those messages once the computer is back online.
To read or peek at the messages in an outgoing queue, open the queue with the format name of the destination queue and the access parameter set to MQ_RECEIVE_ACCESS | MQ_ADMIN_ACCESS or MQ_PEEK_ACCESS | MQ_ADMIN_ACCESS .
From an application architecture perspective, your offline application must take into account the following limitations:
To open remote queues with send access while offline, your application must either obtain and cache the public or private format names of the remote queues while online or have the information needed to construct a direct format name for these queues.
When operating offline, your application can send messages to remote queues using public or private format names, but they are stored locally in outgoing queues until the application computer is back online.
Send messages in recoverable mode if the offline computer is going to be stopping the Message Queuing queue manager while offline. Messages sent in express mode are held in RAM and will be lost when the computer is turned off.
An application can open a local or remote public queue with receive access in offline mode only if the computer hosting the queue was booted with access to the directory service, so that it could query the directory service and cache the properties of the public queues hosted on it. To open public queues for reading messages in offline mode, your application can use a cached public format name of a local public queue, or construct a direct format name of a local or remote public queue from stored information.
An application can open a local or remote private queue with receive access in offline mode. However, the application must obtain and cache the private format name for a local private queue, or have the information needed to construct a direct format name for a local or remote private queue.
When operating offline, do not make any function or method calls that require access to the directory service. The directory service is not available while offline.
When you send a message, its message timers (time-to-reach-queue and time-to-be-received) start ticking as soon as the send operation succeeds, even if the application computer is offline. The message waits in an outgoing queue until it can be delivered.
|For information on||See|
|All functions and methods that are restricted when operating offline||Offline Quick Reference|
|Opening remote queues when operating offline||Opening Queues Offline|
|Sending messages while operating offline||Sending Messages Offline|
|The time during which a client computer will attempt to access a directory service server||Directory Service Access Error Time-Out|
|Public, private, and direct format names||Format Names|