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/