Care to elaborate on what works or doesn't work means in your case? Have you enabled message priority support on the broker?

http://activemq.apache.org/how-can-i-support-priority-queues.html

Client side

Java
https://github.com/apache/activemq/blob/master/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java#L173

.NET
https://svn.apache.org/repos/asf/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/ConnectionFactory.cs

On 03/07/2017 04:44 AM, Green wrote:
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

public class Program {

        public static final String BROKERURI = "tcp://127.0.0.1:61616";
        public static final String TOPIC = "TEST";
        
        public static final int HIGH = 7;
        public static final int ABOVELOW = 3;

        public static void main(String[] args) throws Exception {
                Program program = new Program();
                program.startListening();
                program.sendMessage();
        }

        public void sendMessage() throws JMSException {
                
                ConnectionFactory factory = new 
ActiveMQConnectionFactory(BROKERURI);
                Connection connection = factory.createConnection();
                connection.start();

                Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
                Destination destination = session.createQueue(TOPIC);
                MessageProducer producer = session.createProducer(destination);

                for (int l = 0; l < 10; l++) {
                        if (l % 2 == 0) {
                                producer.setPriority(HIGH);
                        } else {
                                producer.setPriority(ABOVELOW);
                        }
                        String text = String.format("message%s priority: %s",
l,producer.getPriority());
                        producer.send(session.createTextMessage(text));
                }
                session.close();
                connection.close();
        }

        public void startListening() throws JMSException {

                ConnectionFactory factory = new 
ActiveMQConnectionFactory(BROKERURI);
                Connection connection = factory.createConnection();
                connection.start();

                Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
                Destination destination = session.createQueue(TOPIC);
                MessageConsumer consumer = session.createConsumer(destination);
                consumer.setMessageListener(new MessageListener() {
                        public void onMessage(Message msg) {
                                TextMessage message = (TextMessage) msg;
                                try {
                                        System.out.println(message.getText());
                                } catch (JMSException ex) {
                                        ex.printStackTrace();
                                }
                                try {
                                        Thread.sleep(100);
                                } catch (InterruptedException ex) {
                                        ex.printStackTrace();
                                }
                        }
                });

        }

}
----------------------
java it is work
but C# it is not work
----------------------
  using Apache.NMS;
     using Apache.NMS.ActiveMQ;
     using System;
     using System.Threading;
     class Program {
         private const string BLORKURI = "tcp://127.0.0.1:61616";
         private const string TOPIC = "TEST";

         static void Main(string[] args) {
             Program program = new Program();
             program.startListening();
             program.sendMessage();
             Console.Read();
         }
         public void sendMessage() {
             IConnectionFactory factory = new ConnectionFactory(BLORKURI);
             IConnection connection = factory.CreateConnection();
             connection.Start();

             ISession session =
connection.CreateSession(AcknowledgementMode.AutoAcknowledge);
             IDestination destination = session.GetQueue(TOPIC);
             IMessageProducer producer = session.CreateProducer(destination);

             for (int l = 1; l <= 10; l++) {
                 if (l % 2 == 0) {
                     producer.Priority = Apache.NMS.MsgPriority.High;
                 } else {
                     producer.Priority = Apache.NMS.MsgPriority.AboveLow;
                 }
                 string text = string.Format("message{0} priority: {1}", l,
producer.Priority);
                 producer.Send(session.CreateTextMessage(text));
             }
             session.Close();
             connection.Close();
         }
         public void startListening() {
             IConnectionFactory factory = new ConnectionFactory(BLORKURI);
             IConnection connection = factory.CreateConnection();
             connection.Start();

             ISession session =
connection.CreateSession(AcknowledgementMode.AutoAcknowledge);
             IDestination destination = session.GetQueue(TOPIC);
             IMessageConsumer consumer = session.CreateConsumer(destination);

             consumer.Listener += new MessageListener(handleMessage);

         }
         protected virtual void handleMessage(Apache.NMS.IMessage message) {
             ITextMessage msg = message as ITextMessage;
             Console.WriteLine(msg.Text);
             Thread.Sleep(1000);
         }
     }


--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Message-Priority-test-tp4723158.html
Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.



--
Tim Bish
twitter: @tabish121
blog: http://timbish.blogspot.com/

Reply via email to