2015-04-17 2 views
3

Это как я начинаю соединение:ActiveMQ Транспорт Тема не прекращается, когда главный заканчивается

factory = new PooledConnectionFactory(brokerURL); 

brokerURL is "failover:(tcp://host1.com:61616,tcp://host2.com:61616)?randomize=false&jms.useAsyncSend=false&jms.dispatchAsync=false&maxReconnectAttempts=30&maxReconnectDelay=3000" 

Подключение запускается:

connection = factory.createConnection("", ""); 
connection.start(); 

Application выполняет свои обычные задачи перед соединениями закрывается:

connection.close(); 

главный способ закончен, но JVM нет, потому что еще есть несколько активных MQ:

Thread [ActiveMQ Transport: tcp://host1.com/ip_address:[email protected]] (Running)  
Daemon Thread [ActiveMQ InactivityMonitor ReadCheckTimer] (Running) 
Daemon Thread [ActiveMQ InactivityMonitor WriteCheckTimer] (Running)  
Daemon Thread [ActiveMQ InactivityMonitor Worker] (Running) 

Как я должен закрыть его, чтобы потоки выше были выключены. ActiveMQ версия 5.10.0

заранее спасибо

ответ

1

Фиксированный с (PooledConnectionFactory) завод) .stop();

0

Или добавьте «daemon = true» в качестве параметра url соединения.

В соответствии с http://activemq.apache.org/tcp-transport-reference.html

Если это правда транспортный поток будет работать в режиме демона

Основной JVM поток будет выходить, даже если демон потоков выполняются.

Смежные вопросы