I have some code that worked fairly well with the release version of
ActiveMQ 4.1 using OpenWire. One of my colleagues upgraded the server to the
latest snapshot of ActiveMQ 5, and suddenly while I could still write to the
queues on that server I could no longer read from them. (by the way, the new
web interface in ActiveMQ 5 is very nice. That's what let's me see that my
written messages are indeed arriving.

For example, this simple program to write a couple of messages and then read
them back fails:

import javax.jms.*;
import org.apache.activemq.*;
import org.apache.activemq.command.*;

public class CompletedRead {


    private static String url = "tcp://queue.example.com:61616";
    private static String queue = "foo";

        public static void main(String[] args) throws JMSException {

            ConnectionFactory out = new ActiveMQConnectionFactory(url);
            Connection connection = out.createConnection();
            Destination destination = new ActiveMQQueue( queue );
            connection.start();
            Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
            MessageProducer producer = session.createProducer(destination);
            TextMessage message = session.createTextMessage();
            message.setText("118652");
            producer.send(message);
            message.setText("118653");
            producer.send(message);

            producer.close();
            session.close();
            connection.close();

            receive();
        }

        private static void receive() throws JMSException {
            ConnectionFactory in = new ActiveMQConnectionFactory(url);
            Connection connection = in.createConnection();
            Destination destination = new ActiveMQQueue( queue );
            connection.start();
            Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);

            MessageConsumer consumer = session.createConsumer(destination);
            TextMessage message = (TextMessage) consumer.receive(10000);
            System.out.println(message.getText());
            message = (TextMessage) consumer.receive(10000);
            System.out.println(message.getText());

            consumer.close();
            session.close();
            connection.close();

        }


Should an ActiveMQ 4 client be able to read from an ActiveMQ 5 server? Or
should it not be able to? Is this a known issue?

I'm going to try to upgrade my clients libraries to 5.0 and see what happens
next.


-- 
Elliotte Rusty Harold
[EMAIL PROTECTED]

Reply via email to