What does "consume messages in a round robin fashion" mean to you?
What happens when only one works at a time? What are the symptoms of the failure when there are two consumers? Tim On Jul 20, 2016 3:28 PM, "etiennet123" <etie...@lambdasales.com> wrote: > Hi > > I am trying to create a app to consume messages in a round robin fashion. > However only one will work at a time. > > Preferably I would like to create two seperate apps to consume from the > same > queue. > > Here is the code I am trying to use: > > using System; > using System.Collections.Generic; > using System.ComponentModel; > using System.Data; > using System.Drawing; > using System.Linq; > using System.Text; > using System.Windows.Forms; > using System.Threading; > using Apache.NMS; > using Apache.NMS.Util; > > namespace Consume2Sessions > { > public partial class Consume2Sessions : Form > { > Int32 ConsumeCount1 = 0; > Int32 ConsumeCount2 = 0; > > Thread ConsumerThread1; > Thread ConsumerThread2; > > Boolean StopThread1 = false; > Boolean StopThread2 = false; > > Uri connecturi = null; > IConnectionFactory factory = null; > IConnection connection; > > public Consume2Sessions() > { > InitializeComponent(); > > connecturi = new Uri("activemq:tcp://localhost:61616"); > // Uri connecturi = new > Uri("activemq:tcp://localhost:61617"); > > > factory = new NMSConnectionFactory(connecturi); > > connection = factory.CreateConnection(); > > connection.Start(); > > } > > private void btnStartConsumer1_Click(object sender, EventArgs e) > { > ConsumerThread1 = new Thread(ConsumeThread1); > ConsumerThread1.Start(); > } > > private void btnStopConsumer1_Click(object sender, EventArgs e) > { > StopThread1 = true; > } > > private void btnStartConsumer2_Click(object sender, EventArgs e) > { > ConsumerThread2 = new Thread(ConsumeThread2); > ConsumerThread2.Start(); > } > > private void btnStopConsumer2_Click(object sender, EventArgs e) > { > StopThread2 = true; > } > > void ConsumeThread1() > { > > > //using (IConnection connection = factory.CreateConnection()) > //{ > > > using (ISession session = connection.CreateSession()) > { > > IDestination destination = > SessionUtil.GetDestination(session, > "queue://BIG.MONKEY?consumer.prefetchSize=1"); > > using (IMessageConsumer consumer = > session.CreateConsumer(destination)) > { > > // Start the connection so that messages will be > processed. > // connection.Start(); > > while (!StopThread1) > { > try > { > > ITextMessage message = consumer.Receive() > as > ITextMessage; > // ProcessedCount++; > ConsumeCount1++; > // Thread.Sleep(1000); > } > catch (Exception ss) > { } > } > > } > > > } > //} > StopThread1 = false; > } > > void ConsumeThread2() > { > > // using (IConnection connection = factory.CreateConnection()) > using (ISession session = connection.CreateSession()) > { > > IDestination destination = > SessionUtil.GetDestination(session, > "queue://BIG.MONKEY?consumer.prefetchSize=1"); > > using (IMessageConsumer consumer = > session.CreateConsumer(destination)) > { > // Start the connection so that messages will be > processed. > connection.Start(); > > while (!StopThread2) > { > try > { > > ITextMessage message = consumer.Receive() as > ITextMessage; > // ProcessedCount++; > ConsumeCount2++; > // Thread.Sleep(1000); > } > catch (Exception dd) > { > > > } > } > > } > } > > > > > > StopThread2 = false; > } > > private void timer1_Tick(object sender, EventArgs e) > { > lblStatus1.Text = ConsumeCount1.ToString(); > lblStatus2.Text = ConsumeCount2.ToString(); > } > > } > } > > > > > -- > View this message in context: > http://activemq.2283324.n4.nabble.com/Problem-Consuming-from-queue-with-more-than-one-consumer-tp4714196.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. >