All the threads in the broker are daemon threads - you'll need your application to have at least one thread alive - which looks like what you've now done in keeping the main thread going ;)

On 9 Sep 2009, at 22:59, rranjan wrote:


I have a basic requirement that I am struggling with for the last 3 days.

I want to create a zip file which contains the required Jar files from my application and the activeMQ jars. I want activeMQ to be embedded into my
JVM.

In order to do this I followed the instructions and created a spring
configuration that looks as below.
<bean id="broker" class="org.apache.activemq.xbean.BrokerFactoryBean">
   <property name="config" value="classpath:activemq.xml" />
   <property name="start" value="true" />
 </bean>

I have a basic Java class with a main method that loads the spring config.
The main method has a single line.
ApplicationContext context = new
ClassPathXmlApplicationContext("config.xml");

In my activeMQ.xml I provided the basic needs of my app and it looks as
follows.
<beans
 xmlns="http://www.springframework.org/schema/beans";
 xmlns:amq="http://activemq.apache.org/schema/core";
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
 xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
 http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core.xsd
 http://activemq.apache.org/camel/schema/spring
http://activemq.apache.org/camel/schema/spring/camel-spring.xsd";>

   <!-- Allows us to use system properties as variables in this
configuration file -->
   <bean
class = "org .springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
           <value>classpath:credentials.properties</value>
        </property>
   </bean>
   <broker xmlns="http://activemq.apache.org/schema/core";
brokerName="localhost"  dataDirectory="${home}/data" >
       <!-- Destination specific policies using destination names or
wildcards -->
       <destinationPolicy>
           <policyMap>
               <policyEntries>
                   <policyEntry queue=">" memoryLimit="5mb"/>
                   <policyEntry topic=">" memoryLimit="5mb">
                     <!-- you can add other policies too such as these
                       <dispatchPolicy>
                           <strictOrderDispatchPolicy/>
                       </dispatchPolicy>
                       <subscriptionRecoveryPolicy>
                           <lastImageSubscriptionRecoveryPolicy/>
                       </subscriptionRecoveryPolicy>
                     -->
                   </policyEntry>
               </policyEntries>
           </policyMap>
       </destinationPolicy>

<!-- Use the following to configure how ActiveMQ is exposed in JMX
-->
       <managementContext>
           <managementContext createConnector="false"/>
       </managementContext>

       <persistenceAdapter>
           <amqPersistenceAdapter syncOnWrite="false"
directory="${home}/data" maxFileLength="20 mb"/>
       </persistenceAdapter>

<!-- The maximum about of space the broker will use before slowing
down producers -->
       <systemUsage>
           <systemUsage>
               <memoryUsage>
                   <memoryUsage limit="20 mb"/>
               </memoryUsage>
               <storeUsage>
                   <storeUsage limit="1 gb" name="foo"/>
               </storeUsage>
               <tempUsage>
                   <tempUsage limit="100 mb"/>
               </tempUsage>
           </systemUsage>
       </systemUsage>
       <!-- The transport connectors ActiveMQ will listen to -->
       <transportConnectors>
<transportConnector name="openwire" uri="tcp://localhost: 61616"
discoveryUri="multicast://default"/>
       </transportConnectors>
   </broker>
</beans>
<!-- END SNIPPET: example -->

When I start my app I see that the activeMQ server is started but it shuts
down immediately.
2009-09-09 14:56:44,830 [MQ ShutdownHook] INFO  BrokerService
- ActiveMQ Message Broker (localhost,
ID:rranjan.2wire.com-60937-1252533403938-0:0) is shutting down
2009-09-09 14:56:44,834 [MQ ShutdownHook] DEBUG BrokerService
- Caught exception, must be shutting down: java.lang.IllegalStateException:
Shutdown in progress

I'm assuming someone send a kill message or a stop request.

I modified my Java startup class to the following to keep the thread alive.
ApplicationContext context = new
ClassPathXmlApplicationContext("config.xml");
                boolean shouldRun = true;
                while (shouldRun){
                        try {
                                Thread.sleep(10000);
                        } catch (InterruptedException e) {
                                shouldRun = false;
                        }
                }

I see that now activeMQ happily starts up.

Any clues why?
--
View this message in context: 
http://www.nabble.com/Embedding-activeMQ-stops-automatically-tp25373857p25373857.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Rob Davies
I work here: http://fusesource.com
My Blog: http://rajdavies.blogspot.com/
I'm writing this: http://www.manning.com/snyder/




Reply via email to