Is basicGet only way to guarantee sequential processing of the messages on a queue? while(true) { GetResponse res = channel.basicGet(QUEUE_NAME, false); if(res != null) { // process message } } regards, Yogesh