activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Davies <rajdav...@gmail.com>
Subject Re: Embedding activeMQ stops automatically
Date Thu, 10 Sep 2009 08:47:36 GMT
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/





Mime
View raw message