using System;
using System.Diagnostics;
using System.Messaging;
public class MyNewQueue
{
public static void Main()
{
MessageQueue myQueue = new MessageQueue(".\\myTransactionalQueue");
if (myQueue.Transactional == true)
{
MessageQueueTransaction myTransaction = new MessageQueueTransaction();
myTransaction.Begin();
myQueue.Send("My Message Data.", myTransaction);
myTransaction.Commit();
}
myQueue = new MessageQueue(".\\myTransactionalQueue");
myQueue.Formatter = new XmlMessageFormatter(new Type[] { typeof(String) });
MessageQueueTransaction myTransaction1 = new MessageQueueTransaction();
try
{
myTransaction1.Begin();
Message myMessage = myQueue.Receive(new TimeSpan(0, 0, 5), myTransaction1);
String myOrder = (String)myMessage.Body;
Console.WriteLine(myOrder);
myTransaction1.Commit();
}
catch (MessageQueueException e)
{
if (e.MessageQueueErrorCode == MessageQueueErrorCode.TransactionUsage)
{
Console.WriteLine("Queue is not transactional.");
}
else if (e.MessageQueueErrorCode == MessageQueueErrorCode.IOTimeout)
{
Console.WriteLine("No message in queue.");
}
myTransaction1.Abort();
}
}
}
|