activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <james.strac...@gmail.com>
Subject Re: How to properly close a queue?
Date Thu, 02 Oct 2008 14:48:41 GMT
BTW if you want the queue to disappear when your JMS consumer closes,
use a temporary queue

2008/10/2 James Strachan <james.strachan@gmail.com>:
> Each queue uses up resources in the broker unless you use the JMX APIs
> to delete queues from the broker.
>
> 2008/10/2 kneumei <kyle@pramari.com>:
>>
>> Hi,
>> I am building an application in which I am using ActiveMQ to send messages
>> to clients.  So far I have something like this.  The BrokerService and
>> connectionFactory are created when my application starts up and are put into
>> a singleton, and the connectionFactory is made available to other parts of
>> the program:
>>
>>  BrokerService broker = new BrokerService();
>>  broker.addConnector("tcp://localhost:61616");
>>  broker.setPersistent(false);
>>  broker.setUseJmx(false);
>>  broker.start();
>>  ActiveMQConnectionFactory connectionFactory = new
>> ActiveMQConnectionFactory();
>>  connectionFactory.setBrokerURL("tcp://localhost:61616");
>>
>>
>> When some part of my program wants to create a new queue, it creates a new
>> MyMessageQueue object which has these two methods.  The start method is used
>> to create a new queue, and the stop method is used to destroy it:
>>
>>
>>        private Connection connection;
>>        private Session session;
>>        private Destination destination;
>>        private MessageProducer messageProducer;
>>        private String queueName;
>>
>>        public MessageQueueImpl(String queueName) {
>>                this.queueName = queueName;
>>        }
>>
>>        public void startMessageQueue(ConnectionFactory connectionFactory)
>>                        throws JMSException {
>>                connection = connectionFactory.createConnection();
>>                connection.start();
>>                session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
>>                destination = session.createQueue(queueName);
>>                messageProducer = session.createProducer(destination);
>>        }
>>
>>
>>        public void stopMessageQueue() throws JMSException {
>>                messageProducer.close();
>>                session.close();
>>                connection.stop();
>>                connection.close();
>>        }
>>
>>
>> I have recently been profiling my application and noticed that after the
>> stopMessageQueue() method is called, a thread called
>> "QueueThread:queue://QUEUENAME"  has not died.  Am I doing something wrong
>> when shutting down the queue?
>>
>> Thanks,
>> Kyle
>> --
>> View this message in context: http://www.nabble.com/How-to-properly-close-a-queue--tp19780281p19780281.html
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
>>
>
>
>
> --
> James
> -------
> http://macstrac.blogspot.com/
>
> Open Source Integration
> http://open.iona.com
>



-- 
James
-------
http://macstrac.blogspot.com/

Open Source Integration
http://open.iona.com

Mime
View raw message