sandip
sandip

Reputation: 429

Message is not receiving in JMS Simple Receiver Program

I have created Simple JMS Client and Receiver Program. I have used JDk1.7 and activeMQ 5.10.0.My Sender code is executing with particlur message

MessageProducer mp= session.createProducer(destinatin);
Message message = session.createTextMessage("Hi Welcome to ActiveMQ Example");
      mp.send(message);
      System.out.println("Message Has Sent");
and
Receiver code My Reciver Code is this one where it is not printing anything.
and after some time it gives me error of connection timeout.Could you find out where I am creating mistake...


  ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://Name-PC:61616");

//connectin creation
Connection con = connectionFactory.createConnection();
         Session session  = con.createSession(false,Session.AUTO_ACKNOWLEDGE);
        Destination dest= new ActiveMQQueue("Test1.Queue");
        MessageConsumer Consumer = session.createConsumer(dest);
         Message message = Consumer .receive();
            System.out.println("End of Message1");
          TextMessage text = (TextMessage) message;
                System.out.println("Message" +text.getText());  

        System.out.println("End of Message");

In http://localhost:8161/admin/queues.jsp it is showing  content on
Name Test1.Queue,   Number Of Pending Messages =1,  Number Of Consumers=1   Messages Enqueued =1,but Messages Dequeued not showing anything

Upvotes: 0

Views: 694

Answers (1)

Nicholas
Nicholas

Reputation: 16056

You need to start the connection.

This groovy code works for me:

factory = new ActiveMQConnectionFactory("tcp://tpmint:61616");
dest = new ActiveMQQueue("foo.bar");

conn = null;
session = null;
consumer = null;

try {
    conn = factory.createConnection();
    println "Connected: $conn";
    session  = conn.createSession(false,Session.AUTO_ACKNOWLEDGE);
    println "Session: $session";
    consumer = session.createConsumer(dest);
    println "Consumer: $consumer";
    conn.start();
    msg = consumer.receive(1000);
    if(msg==null) println "Timeout";
    else println "Msg:$msg";
} finally {
    if(consumer!=null) try { consumer.close(); println "Consumer Closed";} catch (e) {}
    if(session!=null) try { session.close(); println "Session Closed";} catch (e) {}
    if(conn!=null) try { conn.close(); println "Connection Closed"; } catch (e) {e.printStackTrace(System.err);}
}

Output:

Connected: ActiveMQConnection {id=ID:tpmint-51137-1445798087365-0:8,clientId=null,started=false}
Session: ActiveMQSession {id=ID:tpmint-51137-1445798087365-0:8:1,started=false}
Consumer: ActiveMQMessageConsumer { value=ID:tpmint-51137-1445798087365-0:8:1:1, started=false }
Msg:ActiveMQTextMessage {commandId = 7, responseRequired = false, messageId = ID:tpmint-58446-1445793097761-4:2:1:1:3, originalDestination = null, originalTransactionId = null, producerId = ID:tpmint-58446-1445793097761-4:2:1:1, destination = queue://foo.bar, transactionId = null, expiration = 0, timestamp = 1445798905534, arrival = 0, brokerInTime = 1445798905534, brokerOutTime = 1445802982704, correlationId = , replyTo = null, persistent = false, type = , priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = null, marshalledProperties = org.apache.activemq.util.ByteSequence@5346e84e, dataStructure = null, redeliveryCounter = 2, size = 0, properties = {JMSXMessageCounter=1}, readOnlyProperties = true, readOnlyBody = true, droppable = false, text = hey hey}
Consumer Closed
Session Closed
Connection Closed

Upvotes: 1

Related Questions