<div class="post-text"><p>The issue was solved for me when i modified 
the Receiver with no_Ack = false and a call to  BasicAck. Thanks  to 
@robthewolf and @Card(by twitter) for helping .</p>

<p>PFB the modified receiver now.</p>

<pre><code>        ConnectionFactory factory = new ConnectionFactory();
    factory.setHost("localhost");
    Connection connection = factory.newConnection();
    Channel channel = connection.createChannel();

    channel.queueDeclare(QUEUE_NAME, true, false, false, null);

    QueueingConsumer consumer = new QueueingConsumer(channel);
    channel.basicConsume(QUEUE_NAME, false, consumer);
    QueueingConsumer.Delivery delivery = consumer.nextDelivery(10);
    /*channel.basicCancel(consumer.getConsumerTag());   */

    String message = null;

     if (delivery != null) {
        message = new String(delivery.getBody());
        System.out.println("Reciever .."+message);
        channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false);
    }

    channel.close();
    connection.close();
    return message;
</code></pre>
</div><br><br>On Sunday, July 22, 2012 10:46:10 AM UTC-7, Praveena Kumara wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">hi <br><br><table><tbody><tr><td><div>
       
 
</div>

    <br></td>
<td>
<div>          
    <div>
        <p>I am trying to understand the RabitMq server with a sender 
and a receiver program.  Now the entire setup works well when the sender
 sends a single message and the same would be received by the receiver.</p>

<p>however when i send two messages( by running sender twice) and run 
the receiver program twice i get only the first  message.      </p>

<p>Sender</p>

<pre><code>  ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();


        channel.queueDeclare(QUEUE_<wbr>NAME, true, false, false, null);
        String message = "He12!";
        channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
        System.out.println("Sent "+message);
        channel.close();
        connection.close();
</code></pre>

<p>Receiver</p>

<pre><code>    ConnectionFactory factory = new ConnectionFactory();
    factory.setHost("localhost");
    Connection connection = factory.newConnection();
    Channel channel = connection.createChannel();

    channel.queueDeclare(QUEUE_<wbr>NAME, true, false, false, null);

    QueueingConsumer consumer = new QueueingConsumer(channel);
    channel.basicConsume(QUEUE_<wbr>NAME, true, consumer);
    QueueingConsumer.Delivery delivery = consumer.nextDelivery();
   

    String message;
     if (delivery != null) {
        message = new String(delivery.getBody());
        System.out.println("Reciever .."+message);

    }

    channel.close();
    connection.close();
</code></pre>

    </div></div></td></tr></tbody></table><br>I dont have a&nbsp; infinite while loop in the receiver code (as shown in the getting started page in the rabbitMq site ) because i want to expose&nbsp; this receiver as a web service sending one message at a time.<br><br>I also noticed by executing the commond rabbitMqctl list_queues that the entire queue contents become zero as and when the control reaches <br><pre><code>    channel.basicConsume(QUEUE_<wbr>NAME, true, consumer);<br><br><br>Kindly let me know if i am missing something.<br></code></pre><br></blockquote>