You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Nathan Mittler (JIRA)" <ji...@apache.org> on 2007/02/01 00:52:03 UTC

[jira] Resolved: (AMQCPP-64) Inconsistency in topic names when creating topics

     [ https://issues.apache.org/activemq/browse/AMQCPP-64?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nathan Mittler resolved AMQCPP-64.
----------------------------------

    Resolution: Won't Fix

Looking closer at you sample code, it looks like the problem is how you're setting the CMSReplyTo.  The following line is incorrect:

message->setCMSReplyTo(replyTopic->toProviderString());

it should be:

message->setCMSReplyTo(replyTopic->toString());

I'm going to resolve this issue for now - if you still find problems with replyTo, we can always open this back up.

> Inconsistency in topic names when creating topics
> -------------------------------------------------
>
>                 Key: AMQCPP-64
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-64
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: CMS Impl, Stomp
>    Affects Versions: 1.0
>         Environment: win / lin 
>            Reporter: Lalit Nagpal
>         Assigned To: Nathan Mittler
>             Fix For: 2.0
>
>         Attachments: DestinationProblem.JPG, DestProbs.cpp
>
>
> Hi 
> I am using the activemq-cpp cms api 1.0 release. The problem I am facing is like this- 
> My producer sends a message to the consumer and a message should be sent from the receiving end as a reply after this - consider a situation where a loginRequest message has been sent and now a loginReply message should be sent from the receiving end. 
> Attached is a sample main that can reproduce the problem I am facing - I have modified the sample helloproducer helloconsumer code available at 
> http://activemq.org/site/activemq-cpp-client.html  
> to reproduce my problem so that its easier for you to see. Please see attached cpp file = DestProbs.cpp.
> If you execute this piece of code you will see the output as in the attached image file (see attachments = DestinationProblem.JPG)
> This is what the code does 
> producer lets call it xxx sends a "Hello world! from thread xxxx" to the consumer 
> consumer lets call it yyy receives the message and displays it 
> this is the normal behavior as given in the example on http://activemq.org/site/activemq-cpp-client.html 
> Following extra needs to be done now 
> from yyy a reply should go back to xxx ... for this i registered a producer at yyy by creating a topic using the message->getCMSReplyTo() and then replying back to that destination. 
> The mismatch can be easily see by doing a bstat .... when I created the consumer yyy initially it created a topic by name say ABCDEFGH (which is a random id) and later on when I used the message->getCMSReplyTo() to create a topic the topic was registered with the name /topic/ABCDEFGH ..... the additional /topic/ that has got added is doing a mess up here and the replies from yyy to xxx are not reaching xxx (getting enqueued and not dequeued) ... 
> the /topic/ gets added due to the following statement in HelloWorldProducer - run method 
> message->setCMSReplyTo(replyTopic->toProviderString()); 
> here the toProviderString method adds it actually ... if you replace this method with just the toString() method ... you will get a stomp exception saying that destinations should start with either /topic/ or /queue/ 
> Can somebody make this code work please. 
> For every message sent by the producer to consumer "Hello world! from thread xxxx" there should be a reply coming back as "Thank you for Hello World !!!" 
> Please help me urgently here. 
> Thank you in advance 
> Lalit Nagpal 
> CSA, SunGard 

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