//From Windows Service,
//To send Message to MQ
MessageQueue messageQueue2 = null;MessageQueueTransaction queueTransaction = new MessageQueueTransaction();
Message msgCurrencyHeader = new Message("my first message!!");
msgCurrencyHeader.Label = "EODBatchCurrencyHeader";
if (MessageQueue.Exists(@".\Private$\eodoutputlistener2"))
{
Console.WriteLine("MessageQueue.Exists!!");
messageQueue2 = new MessageQueue(@".\Private$\eodoutputlistener2");
messageQueue2.Label = "Testing Queue";
}
else
{
// Create the Queue
Console.WriteLine("MessageQueue.not Exists!!");
MessageQueue.Create(@".\Private$\eodoutputlistener1");
messageQueue2 = new MessageQueue(@".\Private$\eodoutputlistener1");
messageQueue2.Label = "Newly Created Queue";
}
//messageQueue2.Send("First ever Message is sent to MSMQ", queueTransaction);
messageQueue2.Send(msgCurrencyHeader, queueTransaction);
Console.WriteLine("MessageQueue.sent!!");
//Reading from MQ - Method 1
//Sample 03: Grab the Message Queue Q1string QueueName = @".\Private$\eodoutputlistener2";
bool NoMessage = true;
MessageQueue Q1 = new MessageQueue(QueueName);
//Sample 04: Grab the Message Collection from the Queue
System.Messaging.Message[] AllMessages = Q1.GetAllMessages();
//Sample 05: Iterate through each message
foreach (System.Messaging.Message theMessage in AllMessages)
{
//Sample 5.1: Read the Message body as a Byte array
NoMessage = false;
byte[] data = new byte[1024];
theMessage.BodyStream.Read(data, 0, 1024);
//Sample 5.2: Convert the byte array to string and display it
string strMessage = ASCIIEncoding.ASCII.GetString(data);
Console.WriteLine(strMessage);
Console.WriteLine(Environment.NewLine);
Console.WriteLine("==================================================");
Console.WriteLine(Environment.NewLine);
}
//Reading from MQ - Method 2
String m = null;
int i = 3;
while (i >= 0)
{
try
{
mes = Q1.Receive(new TimeSpan(0, 0, 3));
mes.Formatter = new XmlMessageFormatter(
new String[] { "System.String,mscorlib" });
m = mes.Body.ToString();
}
catch
{
m = "No Message";
}
Console.WriteLine("--- message : " + i + " " + m.ToString());
i--;
}