activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Davies <rajdav...@gmail.com>
Subject Re: Start/Stop Consumer and duplicate message is received.
Date Tue, 12 Feb 2008 10:26:17 GMT

On Feb 11, 2008, at 10:30 PM, wha wrote:

>
> Hi,
>
> I'm using the following version apache- 
> activemq-5.1-20080208.142256-20.zip
>
> I have like 500 messages pending in the broker and I have the  
> following
> consumer:
>
> 	public void run()
> 	{
> 		//Create a connection
> 		Connection conn = null;
> 		
> 		String user = null;
> 		String passw = null;
> 		String brokerurl = "tcp://localhost:61616";
> 		
> 		try
> 		{
> 			ActiveMQConnectionFactory connFactory = new
> ActiveMQConnectionFactory(user,passw,brokerurl);
> 			conn = connFactory.createConnection();
> 			conn.start();
> 			
> 			Session session = conn.createSession(false,  
> Session.AUTO_ACKNOWLEDGE);
> 			
> 			Queue dest = session.createQueue("Q1");
> 			
> 			MessageConsumer msgConsumer = session.createConsumer(dest);
> 			
> 			msgConsumer.setMessageListener(this);
> 			
> 			System.out.println("Listening Q1...");
> 			
> 		}
> 		catch (JMSException jmse)
> 		{
> 			System.out.println(jmse);
> 		}
> 	}
> 	
> 	public void onMessage(Message mess)
> 	{	
> 		try
> 		{
> 			DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd  
> HH:mm:ss");
> 			java.util.Date date = new java.util.Date();
> 			
> 			System.out.println(dateFormat.format(date) + " - Received msg: " +
> ((TextMessage)mess).getText());
> 			mess.acknowledge();
> 			
> 			Thread.sleep(5 * 1000);
> 			
> 		}
> 		catch(InterruptedException ie)
> 		{
> 			System.out.println(ie);
> 		}
> 		catch (JMSException jmse)
> 		{
> 			System.out.println(jmse);
> 		}
> 			
> 	}
>
> When I stop the consumer and then restart it. The last message that  
> was
> received is being resent again by the broker. Is that normal  
> behavior or is
> there something wrong with my code??
>
> Could it be my Thread.sleep that is executed too fast before an
> aknowledgement can be sent ?
>
> Any help appreciated!
>
> Thanks!
>
> -- 
> View this message in context: http://www.nabble.com/Start-Stop-Consumer-and-duplicate-message-is-received.-tp15422289s2354p15422289.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>

You have auto acknowledgement set on your session - so the message  
won't actually be acknowledged until you return from onMessage()
Try client acknowledgement  instead




cheers,

Rob

http://open.iona.com/ -Enterprise Open Integration
http://rajdavies.blogspot.com/




Mime
View raw message