[ 
https://issues.apache.org/activemq/browse/AMQCPP-315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=61569#action_61569
 ] 

Timothy Bish commented on AMQCPP-315:
-------------------------------------

Sadly no, this fix can't be used.  Class level static objects a re big no-no 
especially in libraries where like AMQ-CPP and APR which have required startup 
and shutdown methods because you can't assume that the class level static 
object won't be constructed before you main method is called, therefore you can 
run into cases where the library code in that object tries to access library 
resources which haven't yet been allocated by a call to 'initializeLibrary'. 

I'd have to look at the CMSTemplate code to see if there was a thread safe 
guarantee intended for the receive call.  In general the producers and 
consumers in CMS and JMS are intended to be accessed from only one thread.  If 
there is a workable solution that doesn't impact performance we can include 
that in the code.

> Advisory messages do not work with multiple listeners
> -----------------------------------------------------
>
>                 Key: AMQCPP-315
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-315
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>    Affects Versions: 3.2.2
>         Environment: Windows, ActiveMQ 5.3.1
>            Reporter: Helen Huang
>            Assignee: Timothy Bish
>         Attachments: activemq.log, AdvisoryMessageListener2.zip, 
> IdGenerator.cpp, IdGenerator.h, vs2005-build.zip
>
>
> We found that the advisory messages do not work as expected when there are 
> multiple consumers listening to the same advisory topics.
> We have three applications, AdvisoryMessageListener, MessageListener, and 
> MessageSender.
> AdvisoryMessageListener listens to the following two topics:
> ActiveMQ.Advisory.Consumer.Topic.cpp.itemLookup
> ActiveMQ.Advisory.Producer.Topic.cpp.itemLookup
> MessageListener listens to topic: cpp.itemLookup
> MessageSender sends messages to topic: cpp.itemLookup
> If there is only one instance of AdvisoryMessageListener , then everything 
> work fine. We can get the advisory messages when we start/shut down 
> MessageListener or MessageSender . However, when we start a second instance 
> of AdvisoryMessageListener , it seems to knock out the existing connection of 
> the first  AdvisoryMessageListener. The first instance can no longer receive 
> any advisory messages after that. 
> This problem could be related to the problem reported in jira item 
> "AMQCPP-314 Starting app with Com using cms destroys connection of other app. 
> New problem with recent lib version". However in our problem,  we do not have 
> any COM layers.

-- 
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