Sending messages in a message queuing scenario is much like sending a letter through the mail. With message queuing there is a sending and receiving application. With message queuing you drop your message in a message queue and expect the message to be delivered. In a message queuing scenario, if your network is overloaded your message takes a bit longer to get delivered. If the receiving application does not become available within a preset timeout period, the message is rerouted to a dead-letter queue. MSMQ guarantees 100 percent delivery.
There are two basic kinds of queues: public and private. A public queue is registered in Active Directory and as such can be discovered by browsing the network. A private queue is created on a machine and can only be accessed from another machine if you know the exact name of the machine and queue. Private queues are usually used if operating in Windows workgroup mode or if the queue is meant to connect two applications running on the same machine. In workgroup mode, private queues are the only option, but even in domain mode, consider the following advantages of using private queues:
· Private queues have all the features of public queues except that private queues are not listed in Active Directory and are not discoverable. If you know the queue is available, you can still connect remotely.
· Private queues are faster to create than public queues because they require no extra time for Active Directory activity.
· Private queues do not cause Active Directory replication problems.
Queue Type Description Syntax
|
Queue Type |
Description | Syntax |
| Public queue | Registered in directory services, can be located by any message queuing applications | MachineName \QueueName |
| Private queue | Registered on local machine, typically cannot be located by other applications | MachineName\Private$ \QueueName |
| Journal queue | Contains removed messages, queue specific (if enabled) | MachineName \QueueName\Journal$ |
| Machine journal queue | Contains removed messages, machine wide (if enabled) | MachineName\Journal$ |
| Machine dead-letter queue | Contains undeliverable messages (if enables) | MachineName\Deadletter$ |
| Machine transactional | Contains undeliverable | MachineName |
| dead-letter queue | transactional messages (if enabled) | \XactDeadletter$ |