MessageQueue - C#

           //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 Q1
            string 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 

            Message mes = null;
            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--;
            }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值