private void InitProducer(string queneName) { this.session = this.connection.CreateSession(); var quene = new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue(queneName); messageProducer = session.CreateProducer(quene); }
/// <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)); }
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)); }
/// <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); }
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); }
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)); }