activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Timothy Bish <tabish...@gmail.com>
Subject Re: CMS and Multithreading
Date Fri, 01 May 2009 15:28:34 GMT
On Fri, 2009-05-01 at 06:44 -0700, nmittal wrote:
> below is an excerpt from the book "ActiveMQ in action"...
> The JMS spec specifically defines concurrency for various objects in the JMS
> API and requires that only a few objects support concurrent access. The
> ConnectionFactory, Connection and Destination objects are required to
> support concurrent access while the Session, the MessageProducer and the
> MessageConsumer objects do not support concurrent access. The point is that
> the Session, the MessageProducer and the MessageConsumer objects should not
> be shared across threads in a Java application.
> 
> However, the the examples that come with ActiveMQ CPP... the onMessage
> function uses the session, consumer objects. I think the onMessage would be
> called in seperate threads for each message in the queue. So given that
> session and consumer classes are not threadsafe...is it correct to do so?
> 
> thanks
> Nishant
> 

While the spec defines that certain types be thread safe we've shrived
to ensure that all operations on the CMS objects are thread safe.  That
being said I would advise showing constraint on overusing CMS objects in
a method like onMessage as the time spent in that method delays delivery
of messages, so you wouldn't want to start producing messages from
onMessage for instance.  

Regards
Tim.

-- 
Tim Bish
http://fusesource.com
http://timbish.blogspot.com/




Mime
View raw message