I have a server which loads the application context with the parameter -ac
camel-server.xml:
<broker:broker useJmx="false" persistent="false" brokerName="localhost">
<broker:transportConnectors>
<broker:transportConnector name="tcp"
uri="tcp://localhost:61616"/>
</broker:transportConnectors>
</broker:broker>
<!-- Connection factory for ActiveMQ endpoints -->
<bean id="connectionFactoryActiveMQ"
class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="vm://localhost"/>
</bean>
<!---------->
<bean id="inOutQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="inOutQueue"/>
</bean>
<bean id="checkinServices"
class="org.springframework.jms.remoting.JmsInvokerServiceExporter">
<property name="serviceInterface"
value="MyManager"/>
<property name="service">
<bean class="MyManagerImpl"/>
</property>
</bean>
<bean
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory"
ref="connectionFactoryActiveMQ"/>
<property name="destination" ref="inOutQueue"/>
<property name="maxConcurrentConsumers" value="5"/>
<property name="concurrentConsumers" value="5"/>
<property name="messageListener" ref="checkinServices"/>
</bean>
Then I have a camel-client.xml file which I start up from my Java code.
AbstractApplicationContext context = new
ClassPathXmlApplicationContext("camel-client.xml");
myManager = (MyManager) context.getBean("checkinServices");
myManager.shutdown();
---------------------
So when the client sends a message to a queue defined in camel-client.xml on
an activemq broker which was fired up by camel-server.xml, the server side
processes the message with the services defined to listen on the respective
queue.
In the shutdown method I do the following:
public void shutdown() throws Exception
Main main = Main.getInstance();
if(main != null) {
if(main.getApplicationContext() != null){
main.getApplicationContext().close();
// main.getApplicationContext().registerShutdownHook();
}
}
}
I expect that in the shutdown method I am going to get the instance of Main
that started the camel-server.xml applicatoin context and when I close it
the active mq broker will be closed as well.
Hope you can follow this through.
Semir
Claus Ibsen-2 wrote:
>
> Hi
>
> I would assume the AMQ is also shutting down the the
> applicationContext is closed, so Spring is shutting down and thus
> shuts down all the bean that is handling the lifecycle for.
>
> If you run the camel-jms example in Camel then the AMQ broker is also
> stopping when you stop the example.
>
> We have lately patched the Main with a JVM shutdown hook so when you
> press CLTR + C to stop it then it will also call doStop() so its
> gracefully shutting down it all.
>
> Can you show the applicationContext and what you do to stop the Main?
> And which version of Camel and AMQ are you using?
>
>
> On Fri, Jan 16, 2009 at 10:00 AM, selezovikj <[email protected]>
> wrote:
>>
>> I am using org.apache.camel.spring.Main -ac file.xml to start up Camel.
>> In the xml file I have configuration for starting an ActiveMq broker on
>> host
>> 61616, defined queues, and also beans responsible for handling messages
>> which are sent on the request/response queues.
>>
>> Now I want a way to gracefully shutdown the camel service.
>> I see that in the doStop() method of the Main class the
>> AbstractApplicationContext is closed.
>> When this is closed, the activeMq broker which we fired up is still
>> running.
>>
>> Can someone please explain me what precisely is going on when the
>> applicationContext is closed ?
>> Also how to gracefully stop the instance of Main that fired up the
>> activeMq
>> broker and that loads the xml configuration file ?
>>
>> Any help will be greatly appreciated
>>
>>
>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/ApplicationContext-close-tp21495001s22882p21495001.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
>
>
>
> --
> -------
> Claus Ibsen
> Apache Camel Committer
>
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
>
>
--
View this message in context:
http://www.nabble.com/ApplicationContext-close-tp21495001s22882p21495886.html
Sent from the Camel - Users mailing list archive at Nabble.com.