ResourceLifecycleManager needs to be thread-safe
------------------------------------------------

                 Key: AMQCPP-288
                 URL: https://issues.apache.org/activemq/browse/AMQCPP-288
             Project: ActiveMQ C++ Client
          Issue Type: Bug
          Components: CMS Impl
    Affects Versions: 3.1, 3.0.1
            Reporter: Ivan Pechorin
            Assignee: Timothy Bish


We use ActiveMQ C++ 3.x client in a multi-threaded application. In particular, 
we use activemq::cmsutil::SessionPool and activemq::cmsutil::PooledSession. 
Methods createCachedProducer and createCachedConsumer of class PooledSession do 
not synchronize access to their shared ResourceLifecycleManager, and 
ResourceLifecycleManager itself is not thread-safe. Therefore, it is not safe 
to use pooled session from multiple threads, even if we guarantee that each 
PooledSession is used from one thread at any given time.

To resolve this issue, ResourceLifecycleManager needs to be thread-safe, i.e. 
we need to add synchronization to all of its add* methods. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to