Ejemplo n.º 1
0
        private void InitProducer(string queneName)
        {
            this.session = this.connection.CreateSession();
            var quene = new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue(queneName);

            messageProducer = session.CreateProducer(quene);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 消息发送(单个)
        /// </summary>
        /// <param name="queueName">队列名称</param>
        /// <param name="entity">消息数据</param>
        /// <returns>结果(0失败1成功)</returns>
        public int SendActiveMQMessage(MessageQueueName queueName, MessageEntity entity)
        {
            int    msgResult = 0;  //消息结果
            string msgEntity = ""; //文本消息

            //判断是否发送消息
            if (entity != null)
            {
                try
                {
                    //创建回话
                    using (ISession sesssion = connection.CreateSession())
                    {
                        //实体消息序列化文本消息
                        msgEntity = JsonConvertTool.SerializeObject(entity);

                        //创建生产者
                        IDestination     destination = new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue(queueName.ToString());
                        IMessageProducer producer    = sesssion.CreateProducer(destination);
                        //生产消息
                        ITextMessage _message = producer.CreateTextMessage(msgEntity);

                        //发送消息(持久化)
                        producer.Send(_message, MsgDeliveryMode.Persistent, MsgPriority.Normal, TimeSpan.MinValue);
                    }
                    msgResult = 1;
                }
                catch (Exception ex)
                {
                    //  LogHelper.WriteLog(typeof(ActiveMq), "方法名:SendActiveMQMessage发送消息队列异常(单个):", Engineer.maq, entity, ex);
                }
            }
            return(msgResult);
        }
 public void JmsReplyToMappedFromHeader()
 {
     Apache.NMS.IDestination replyTo = new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue();
     IMessage message = MessageBuilder.WithPayload("test").SetHeader(NmsHeaders.REPLY_TO, replyTo).Build();
     DefaultNmsHeaderMapper mapper = new DefaultNmsHeaderMapper();
     Apache.NMS.IMessage nmsMessage = new StubTextMessage();
     mapper.FromHeaders(message.Headers, nmsMessage);
     Assert.That(nmsMessage.NMSReplyTo, Is.Not.Null);
     Assert.That(replyTo, Is.SameAs(nmsMessage.NMSReplyTo));
 }
Ejemplo n.º 4
0
        public void JmsReplyToMappedFromHeader()
        {
            Apache.NMS.IDestination replyTo = new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue();
            IMessage message = MessageBuilder.WithPayload("test").SetHeader(NmsHeaders.REPLY_TO, replyTo).Build();
            DefaultNmsHeaderMapper mapper = new DefaultNmsHeaderMapper();

            Apache.NMS.IMessage nmsMessage = new StubTextMessage();
            mapper.FromHeaders(message.Headers, nmsMessage);
            Assert.That(nmsMessage.NMSReplyTo, Is.Not.Null);
            Assert.That(replyTo, Is.SameAs(nmsMessage.NMSReplyTo));
        }
Ejemplo n.º 5
0
        public void UserDefinedPropertyWithUnsupportedType()
        {
            Apache.NMS.IDestination replyTo    = new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue();
            Apache.NMS.IMessage     nmsMessage = new StubTextMessage();
            nmsMessage.NMSReplyTo = replyTo;
            DefaultNmsHeaderMapper       mapper  = new DefaultNmsHeaderMapper();
            IDictionary <string, object> headers = mapper.ToHeaders(nmsMessage);
            object attrib = headers[NmsHeaders.REPLY_TO];

            Assert.That(attrib, Is.Not.Null);
            Assert.That(replyTo, Is.SameAs(attrib));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 接收消息
        /// </summary>
        private void ReceiveMessage()
        {
            //创建工厂
            _factory = new ConnectionFactory(MQAddress);
            //创建连接
            _conn = _factory.CreateConnection();
            //设置客户端ID
            _conn.ClientId = Guid.NewGuid().ToString().Replace("_", " ").ToLower();
            _conn.Start();
            //创建会话
            ISession     sessions    = _conn.CreateSession(AcknowledgementMode.AutoAcknowledge);
            IDestination destination = new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue(_MessageQueueName.ToString());
            //创建消费者
            IMessageConsumer consumer = sessions.CreateConsumer(destination);

            //异步接收消息
            consumer.Listener += new MessageListener(Consumer_Listener);
        }
Ejemplo n.º 7
0
        public void CachedMessageConsumer()
        {
            IConnectionFactory connectionFactory = CreateConnectionFactory();

            CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory();

            cachingConnectionFactory.TargetConnectionFactory = connectionFactory;
            IConnection con1 = cachingConnectionFactory.CreateConnection();

            ISession            sessionA    = con1.CreateSession(AcknowledgementMode.Transactional);
            IDestination        destination = new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue("test.dest");
            IMessageConsumer    consumerA   = sessionA.CreateConsumer(destination);
            TestMessageConsumer tmpA        = GetTestMessageConsumer(consumerA);

            sessionA.Close();

            ISession            sessionB  = con1.CreateSession(AcknowledgementMode.Transactional);
            IMessageConsumer    consumerB = sessionB.CreateConsumer(destination);
            TestMessageConsumer tmpB      = GetTestMessageConsumer(consumerB);

            Assert.AreSame(tmpA, tmpB);
        }
Ejemplo n.º 8
0
        static void Main(string[] args)
        {
            // 1.创建ConnectoryFactory连接工厂
            IConnectionFactory factory = new ConnectionFactory(("tcp://localhost:61616"));

            // 2.创建Connection连接
            using (IConnection connection = factory.CreateConnection())
            {
                connection.Start(); //默认关闭?
                // 3.创建session?
                using (ISession session = connection.CreateSession())
                {
                    // 4.创建Destination
                    IDestination destination = new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue("test");

                    // 5.创建MessageProducer
                    IMessageProducer producer = session.CreateProducer();

                    // 6.设置持久化方式
                    producer.DeliveryMode = MsgDeliveryMode.NonPersistent;

                    //7.定义消息对象,并发送
                    ITextMessage message = session.CreateTextMessage();// producer.CreateTextMessage();
                    message.Text = "test";
                    message.Properties.SetString("testKey", "testValue");
                    //producer.Send(destination, message);
                    producer.Send(destination, message, MsgDeliveryMode.NonPersistent, MsgPriority.Normal, TimeSpan.FromDays(30));

                    Console.WriteLine("send success");
                    Console.Read();
                }
                if (connection != null)
                {
                    connection.Close();
                }
            }
        }
 public void UserDefinedPropertyWithUnsupportedType()
 {
     Apache.NMS.IDestination replyTo = new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue();
     Apache.NMS.IMessage nmsMessage = new StubTextMessage();
     nmsMessage.NMSReplyTo = replyTo;
     DefaultNmsHeaderMapper mapper = new DefaultNmsHeaderMapper();
     IDictionary<string, object> headers = mapper.ToHeaders(nmsMessage);
     object attrib = headers[NmsHeaders.REPLY_TO];
     Assert.That(attrib, Is.Not.Null);
     Assert.That(replyTo, Is.SameAs(attrib));
 }