Note in this situation when the hang occurs there are no error logs on either side of the connection.

On Jun 13, 2006, at 1:31 PM, Marcus Zarra wrote:

Hopefully this is a simple question that has been answered before. I am attempting to connect to an ActiveMQ broker from tomcat and the broker is running on another machine. The tomcat version that is being used is old enough that I cannot put a context.xml in place and access the broker via a context lookup. Therefore I am simply attempting to connect to the broker inside of the init method for a servlet using the following code:

        o = getServletContext().getAttribute("queueConnection");
        Connection connection;
        if (o == null) {
String jmsURL = getServletContext().getInitParameter ("JMS_URL");
            log.info("URL is '" + jmsURL + "'");
            ActiveMQConnectionFactory connectionFactory;
            try {
                log.info("Connecting to JMS");
connectionFactory = new ActiveMQConnectionFactory (jmsURL);
                log.info("Factory initialized");
                connection = connectionFactory.createConnection();
                log.info("Connection established");
                connection.start();
                log.info("Connection started");
getServletContext().setAttribute("queueConnection", connection);
            } catch (Throwable e) {
                log.error("Error initializing JMS Connection", e);
throw new RuntimeException("Failed to initialize JMS Connection");
            }
        } else {
            connection = (QueueConnection)o;
        }


There is some additional things going on in the init method but this is the area having an issue. The issue is that the code stops dead on connection.start() every time and locks so hard that I need to kill -9 tomcat.

Has anyone seen and/or resolved this issue before? Or is there a cleaner/safer way to establish a connection to a broker from inside of a 4.x tomcat instance.

Thanks,

Marcus

Reply via email to