Introduction:
Message queuing is often used as a backup system for whenever a communication link fails between two servers. This improves overall system stability in the event of catastrophic failure. This type of fallback mechanism is vital in systems where out-of-sync data between sites could cause opportunities for malicious users to defraud the system
Main:
MSMQ is included with windows XP,for installing MSMQ jut go to
Start–>Control Panel–>Administrative Tools–>Computer Management–>Services and Applications–>Message Queuing

To Implementing MSMQ in .NET Programming just add System.Messaging.dll
See this sample Code,
private void btnSend_Click(object sender, System.EventArgs e)
{
string queueName = “.\\private$\\sample”;
MessageQueue mq;
if (MessageQueue.Exists(queueName))
{
mq=new MessageQueue(queueName);
}
else
{
mq = MessageQueue.Create(queueName);
}
mq.Send(tbMessage.Text);
}
This code first looks at MSMQ to see if a queue of the name \private$\sample has been created on the local machine.
If it has not, then a MessageQueue object points to the existing one. The contents of the textbox (tbMessage) are then sent as a message to this queue.
Common MSMQ Classes are,
Formatter
Specifies the formatter used to serialize or deserialize the message body; can be either XmlMessageFormatter, ActiveXMessageFormatter, or BinaryMessageFormatter
Label
Specifies a human-readable queue description
Path
Specifies the location of the queue
Transactional
Specifies whether the queue can accept nontransactional messages
Authenticate
Specifies whether the queue can accept unauthenticated messages
EncryptionRequired
Specifies whether the queue can accept unencrypted messages
Close
Frees all resources used by the handle to the queue
Create
Creates a new queue at the specified path
Delete
Removes a queue from MSMQ, deleting all messages contained therein
GetAllMessages
Returns an array of messages from the specified queue
GetPrivateQueuesByMachine
Returns an array of private message queues from the specified machine
GetPublicQueues
Returns an array of queues on the local network
Receive
Returns a message from the top of the specified queue
Send
Sends a message to the tail of the specified queue
Purge
Deletes all messages from a queue, but does not delete the queue itself
Conclusion:
MSMQ is the key Programming essential for disconnected architecture,
Hope this helps,