I'm pretty green to ActiveMQ, but we're diving in and trying to get it to work within our environment (ActiveMQ 5.2, Java 1.6, RHEL5). One issue we had, and probably due to my incomplete comprehension of ActiveMQ, came about when we tried running two webapps that both used local VM brokers. We'd get errors where one broker would hang waiting for a lock that we assume the other webapp had, or we'd get errors about a VM broker already being created. We also tried running ActiveMQ as a WAR in Tomcat with our other webapps, but since we couldn't configure the startup order of the webapps, we had our webapps failing because the ActiveMQ webapp wasn't up yet.
So, I suppose my question is multipart. First, must the data directory for two VM brokers be different (our config file for ActiveMQ was being shared between webapps, so each VM broker shared the same URI, brokerName, data directory, etc)? Second, is there a way to make the connectivity to a broker delayed (say, until first request, like Spring's RMI config), or retry gracefully? Currently, if it fails connecting to a broker at startup, the entire webapp fails. If we configure reconnect retry attempts, the webapp will block during startup, which will block loading other webapps, which may include the ActiveMQ webapp, so it eventually fails. Third, what is industry standard (or recommended) approach for setting up ActiveMQ services? In a separate, dedicated Tomcat instance? As the executable (through Jetty)? As an embedded VM broker per webapp (or shared VM broker for multiple webapps)? Some other approach? Thanks! Ryan Shelley
