Example #1
0
        public static void ReceiveMsg()
        {
            Apache.NMS.IConnection con = null;
            try
            {
                var factory = new ConnectionFactory(brokerUrl);
                factory.UserName       = "******";
                factory.Password       = "******";
                factory.ClientId       = "MsgApp-Receiver1";
                factory.PrefetchPolicy = new PrefetchPolicy()
                {
                    DurableTopicPrefetch = 1, TopicPrefetch = 1
                };

                var rpolicy = new RedeliveryPolicy();
                rpolicy.InitialRedeliveryDelay = 15000;
                rpolicy.MaximumRedeliveries    = 5;
                rpolicy.UseExponentialBackOff  = false;

                using (con = factory.CreateConnection("admin", "admin"))
                {
                    con.RedeliveryPolicy = rpolicy;


                    //con.AcknowledgementMode = AcknowledgementMode.ClientAcknowledge;
                    using (var session = con.CreateSession(AcknowledgementMode.ClientAcknowledge))
                    {
                        var dest = session.GetTopic(topicName);

                        var durableConsumer = session.CreateDurableConsumer(dest, "durable-eol-orderMsgSubscriber1", null, false);

                        con.Start();


                        durableConsumer.Listener += (msg) =>
                        {
                            Console.WriteLine("durable-eol-orderMsgSubscriber-1: " + ((ActiveMQTextMessage)msg).Text);
                            if ((msg as ActiveMQTextMessage).Text.StartsWith("0"))
                            {
                                msg.Acknowledge();
                            }
                            else
                            {
                                session.Recover();
                            }
                        };
                        Console.ReadKey();
                        durableConsumer.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                string emsg = ex.Message;
            }
            finally
            {
                con.Dispose();
            }
        }
Example #2
0
        public void PublishMsgToTopic(string brokerUrl, string topicName)
        {
            Apache.NMS.IConnection con = null;
            ITextMessage           msg = null;

            try
            {
                var factory = new ConnectionFactory(brokerUrl);
//                factory.PrefetchPolicy = new PrefetchPolicy() { DurableTopicPrefetch = 1, TopicPrefetch = 1 };

                con = factory.CreateConnection("admin", "admin");



                con.ClientId       = "OrderMsgProducer-1";
                con.RequestTimeout = TimeSpan.FromMinutes(5);

                con.Start();

                using (var session = con.CreateSession(Apache.NMS.AcknowledgementMode.ClientAcknowledge))
                {
                    var dest = (IDestination)session.GetTopic(topicName);

                    var prod = session.CreateProducer(dest);
                    prod.DeliveryMode = MsgDeliveryMode.NonPersistent;
                    prod.TimeToLive   = TimeSpan.FromMinutes(20);
                    do
                    {
                        Console.WriteLine("Please enter msg");
                        var textMsg = Console.ReadLine();
                        msg = prod.CreateTextMessage(textMsg);
                        msg.Properties.SetLong("x-opt-delivery-delay", 10000);
                        prod.Send(msg);
                        msg.ClearBody();
                        Console.WriteLine("Please press esc key to exit.");
                    } while (Console.ReadKey().Key != ConsoleKey.Escape);
                    prod.Close();
                }
            }
            catch (Exception ex)
            {
                string emsg = ex.Message;
            }
            finally
            {
                con.Close();
                con.Dispose();
            }
        }
Example #3
0
        public static void ReceiveMsg2()
        {
            Apache.NMS.IConnection con = null;
            try
            {
                var factory = new ConnectionFactory(brokerUrl);
                factory.UserName = "******";
                factory.Password = "******";
                factory.ClientId = "MsgApp-Receiver2";
                //  factory.SendTimeout = 300000; //5 mins
                using (con = factory.CreateConnection())
                {
                    using (var session = con.CreateSession(Apache.NMS.AcknowledgementMode.ClientAcknowledge))
                    {
                        var dest = session.GetTopic(topicName);

                        var durableConsumer = session.CreateDurableConsumer(dest, "durable-eol-orderMsgSubscriber2", null, false);

                        con.Start();


                        durableConsumer.Listener += (msg) =>
                        {
                            Console.WriteLine("durable-eol-orderMsgSubscriber-2: " + ((ITextMessage)msg).Text);
                            msg.Acknowledge();
                        };
                        Console.ReadKey();
                        durableConsumer.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                string emsg = ex.Message;
            }
            finally
            {
                con.Dispose();
            }
        }