I've no idea. Have you tried looking at the queues and consumers in JMX?

http://incubator.apache.org/activemq/jmx.html

On 7/12/06, avin98 <[EMAIL PROTECTED]> wrote:

Hi

This is a basic question on the Message Delivery: Does a notification that a
message has been successfully get sent to the JMS server only after the
onMessage completes ?

Can someone please help me out ....

I have the following piece of code

servlet Code
----------------

doPost() {

            // Post message on QUEUE 1
            sendMessage(request.getParameter("message"));

            //Receive message from QUEUE 2
            receiveMessage();

}

EJB Code
------------

// OnMessage of QUEUE 1
public void onMessage(Message msg) {

       // POST message on QUEUE 2
       sendMessage(msg.getText());


       // Receive message on QUEUE3
      receiveMessage();

}


My servlet posts a message onto QUEUE1 (which inturn invokes the MDB) and
listens on QUEUE2.

So, my OnMessage actually POSTS message onto Queue 2 and listens on Queue 3.

But my servlet whichs listens on QUEUE2, never gets a notification that a
message has been delivered into QUEUE2 .....Why is this ???




Here is my code for sending message:

=======================

public void sendMessage(String query){

InitialContext naming = new InitialContext();

            // lookup queue connection factory
            QueueConnectionFactory connectionFactory =
                    (QueueConnectionFactory)
naming.lookup(connectionFactoryName);


            // create jms connection
            connection = connectionFactory.createQueueConnection();

            // lookup jms queue
            Queue queue = (Queue) naming.lookup(queueName);

            System.out.println("The Queue is:"+queue);

            // create jms session
            boolean transacted = false;
            publishSession = connection.createQueueSession(transacted,
Session.CLIENT_ACKNOWLEDGE);


            sender = publishSession.createSender(queue);

            sender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);



            TextMessage message = publishSession.createTextMessage();
            // Get new user information from request and populate the
message with that info.
            System.out.println("StreamService: Setting the
message===>"+query);
            message.setText(query);


            sender.send(message);
}
=========================

public String receiveMessage() {

// lookup queue connection factory
        QueueConnectionFactory connectionFactory = (QueueConnectionFactory)
naming
            .lookup(connectionFactoryName);

        // create jms connection
        QueueConnection connection = connectionFactory
            .createQueueConnection();

        // System.out.println("Connection is:"+ connection);

        // lookup jms queue
        Queue queue = (Queue) naming.lookup(queueName);

        // create a session.
        QueueSession session = connection.createQueueSession(false,
            Session.CLIENT_ACKNOWLEDGE);


        // create a QueueReceiver
        QueueReceiver receiver = session.createReceiver(queue);


        //Start the connection
        connection.start();


        // receive a message from the queue, wait 10 seconds
        try {

            message = (TextMessage) receiver.receive();

            if(message !=null) {
                msg = ((TextMessage) message).getText();
                message.acknowledge();
            }

            return msg;

}

Here is the code for receive message
--
View this message in context: 
http://www.nabble.com/Urgent%3A-Message-Delivery-tf1928223.html#a5280907
Sent from the ActiveMQ - User forum at Nabble.com.




--

James
-------
http://radio.weblogs.com/0112098/

Reply via email to