You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by rmadden <ma...@gmail.com> on 2011/07/12 19:08:29 UTC

Consumer pool shutdown with acknowledgments

Hello, I am having a problem successfully shutting down a consumer pool where
there is one outstanding job in the pool.  The shutdown sequence will wait
for the job to finish, but the acknowledgement never makes it back to the
queue and thus the queue count is out of whack, here is my code (I am suing
CLIENT_ACKNOWLEDGE btw):

Code to stop the pool:

	public void stop() {
		logger.info("Shutting down TwitterConsumerPool.");
		try {
			for (MessageConsumer consumer : consumers) {
				logger.info("Closing consumer: " + consumer.toString());
				consumer.close();
				logger.info("Closed consumer: " + consumer.toString());
			}
			for (Session session : sessions) {
				if (session.getTransacted()) { session.commit(); }
				session.close();
				logger.info("Closed session: " + session.toString());
			}

			conn.stop();
			logger.info("Stopped connection: " + conn.toString());
			conn.close();
			logger.info("Closed connection: " + conn.toString());
		} catch (JMSException e) {
			logger.error("Failed to stop Twitter Consumer Pool {}", e);
		}
	}

Listener code to sent acknowledgement:

        logger.info("Received message from activemq server: " + text);
	pojo = gson.fromJson(text, TwitterPojo.class);
        logger.info("Sleeping for 20 seconds.");
	Thread.sleep(10000);
	service.submit(pojo); 
	logger.info("Executed " + service.getName() + " successfully with input: "
+ pojo.asJson()); 
		
	try {
		synchronized (msg) {
		    // Must call acknowledge on Message object specifically.
	            msg.acknowledge();
		    logger.info("Sent acknowledgement to ActiveMQ: " + msg.toString());
	        } 
        }catch (Exception e) {
		logger.error(e.toString());
	}

--
View this message in context: http://activemq.2283324.n4.nabble.com/Consumer-pool-shutdown-with-acknowledgments-tp3662896p3662896.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.