AMQCPP -- Cannot publish to a delete Destination: temp-queue

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

AMQCPP -- Cannot publish to a delete Destination: temp-queue

dpatel
This post was updated on .
In my application I am creating a TempararyQueue queue and I set it in
MapMessage as my ReplyTo queue. My listener is written in C++ and uses
activemq-cpp. In version 3.6 everything works fine. My response from the  listener makes it back to MapMessage. However when I upgraded to 3.8 (even 3.7) when I try to send a response back in C++ I keep getting error like
 
 2013-10-10T19:23:36.411-0000 tid=848 level=ERROR - ERROR: Cannot publish to a deleted Destination: temp-queue://ID:unixdeva09-35460-1380645155113-3:1:2
 
 Can someone please help!!!

ActiveMQ broker version 5.6
Reply | Threaded
Open this post in threaded view
|

Re: AMQCPP -- Cannot publish to a delete Destination: temp-queue

tabish121@gmail.com
On 10/10/2013 06:44 PM, dpatel wrote:

> In my application I am creating a TempararyQueue queue and I set it in
> MapMessage as my ReplyTo queue. My listener is written in C++ and uses
> activemq-cpp. In version 3.6 everything works fine. My response from the
> listener makes it back to MapMessage. However when I upgraded to 3.8 (even
> 3.7) when I try to send a response back in C++ I keep getting error like
>  
>   2013-10-10T19:23:36.411-0000 tid=848 level=ERROR - ERROR: Cannot publish to
> a deleted Destination: temp-queue://ID:unixdeva09-35460-1380645155113-3:1:2
>  
>   Can someone please help!!!
>
>
>
> --
> View this message in context: http://activemq.2283324.n4.nabble.com/AMQCPP-Cannot-publish-to-a-delete-Destination-temp-queue-tp4672611.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
Did you turn off advisories on the broker?  If so then you need to
disable watching topics on the client via the ActiveMQConnectionFactory
watchTopicAdvisories option.

--
Tim Bish
Sr Software Engineer | RedHat Inc.
[hidden email] | www.fusesource.com | www.redhat.com
skype: tabish121 | twitter: @tabish121
blog: http://timbish.blogspot.com/

Reply | Threaded
Open this post in threaded view
|

Re: AMQCPP -- Cannot publish to a delete Destination: temp-queue

dpatel
This post was updated on .
Hey Tim,

Thank you for your time.

AdvisoryMessages are disabled. I added a call to set watchTopicAdvisors to false on my client side.

 amqConnFactory = new ActiveMQConnectionFactory(CONN);
      amqConnFactory.setWatchTopicAdvisories(false);
      conn = amqConnFactory.createConnection();
      conn.start();

However that did not fix the issue. I am attaching my broker xml incase that gives you any ideas.activemq.xml

Once again the same everything works just fine with activemq-cpp 3.6
Here is my broker url that I use on the listener side.

failover://(tcp://localhost:61616)?wireFormat.tcpNoDelayEnabled=true&wireFormat.maxInactivityDuration=0&randomize=false
Reply | Threaded
Open this post in threaded view
|

Re: AMQCPP -- Cannot publish to a delete Destination: temp-queue

tabish121@gmail.com
On 10/11/2013 11:37 AM, dpatel wrote:

> Hey Tim,
>
> AdvisoryMessages are disabled. I added a call to set watchTopicAdvisors to
> false on my client side.
>
>   amqConnFactory = new ActiveMQConnectionFactory(CONN);
>        amqConnFactory.setWatchTopicAdvisories(false);
>        conn = amqConnFactory.createConnection();
>        conn.start();
>
> However that did not fix the issue. I am attaching my broker xml incase that
> gives you any ideas. activemq.xml
> <http://activemq.2283324.n4.nabble.com/file/n4672670/activemq.xml>
>
> Once again the same everything works just fine with activemq-cpp 3.6
>
>
>
> --
> View this message in context: http://activemq.2283324.n4.nabble.com/AMQCPP-Cannot-publish-to-a-delete-Destination-temp-queue-tp4672611p4672670.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
Then you'd need a test case to allow me to look further.  If the
connection that created the temp dest goes away it will be deleted, so
ensure your not inadvertantly removing it.

--
Tim Bish
Sr Software Engineer | RedHat Inc.
[hidden email] | www.fusesource.com | www.redhat.com
skype: tabish121 | twitter: @tabish121
blog: http://timbish.blogspot.com/

Reply | Threaded
Open this post in threaded view
|

Re: AMQCPP -- Cannot publish to a delete Destination: temp-queue

bobeo
This post was updated on .
hi Tim,

I'm facing the same problem of Cannot publish to a deleted Destination: temp-queue://

I've tried both Java server - C++ client and C++ server - C++ client , but both end up with the same error "Cannot publish to a deleted Destination: temp-queue://" . If both server and client are in Java then it works.

Strangely the temp queue doesnt have a name. I'm using Activemq 3.9.1 on Ubuntu. I've attach my unit test in cpp in case you need to reproduce the problem.

Thanks.

testActiveMQ_RequestResponse.cpp
Reply | Threaded
Open this post in threaded view
|

Re: AMQCPP -- Cannot publish to a delete Destination: temp-queue

bobeo
hi Tim,

Maybe I wasn't clear enough. Let me make it clear again:

First, I have a queue : sn.queue.settings.

From Java, I send a message to that queue, and I can see from the log of activemq broker, I highlight important bits:

INFO | Sending message: ActiveMQTextMessage {commandId = 24, responseRequired = false, messageId = ID:ubuntu-14-dev-49451-1495115456046-1:1:1:1:3, originalDestination = null, originalTransactionId = null, producerId = ID:ubuntu-14-dev-49451-1495115456046-1:1:1:1, destination = queue://sn.queue.settings, transactionId = null, expiration = 1495115724634, timestamp = 1495115722634, arrival = 0, brokerInTime = 0, brokerOutTime = 0, correlationId = null, replyTo = temp-queue://ID:ubuntu-14-dev-49451-1495115456046-1:1:3, persistent = false, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@1cf5297b, marshalledProperties = org.apache.activemq.util.ByteSequence@21c49053, dataStructure = null, redeliveryCounter = 0, size = 0, properties = {fromHost=central, toHost=central}, readOnlyProperties = false, readOnlyBody = false, droppable = false, jmsXGroupFirstForConsumer = false, text = <?xml version="1.0" encoding="UTF-8" standalo...></settings>

As you can see, I set replyTo to a temporary queu "temp-queue://ID:ubuntu-14-dev-49451-1495115456046-1:1:3"

My consumer( client ) is written in C++, from onMessage() callback, I receive the message :

Message ID = ID:sensen-hyd-edge-demo-01-42179-1495108420785-1:1:1:1:3:-1:-1:2
Destination type = 3

And when I try to send back the reply with the destination from message->getCMSReplyTo(), it gives me exception:

 Cannot publish to a deleted Destination: temp-queue://
        FILE: activemq/core/kernels/ActiveMQSessionKernel.cpp, LINE: 1013
        FILE: activemq/core/kernels/ActiveMQProducerKernel.cpp, LINE: 274
        FILE: activemq/core/kernels/ActiveMQProducerKernel.cpp, LINE: 184
        FILE: activemq/core/ActiveMQProducer.cpp, LINE: 100

I hope this is clearer. Do you still think the broker has advisory support disabled? ( How to check this? ).

Is this the right way to disable the watching of temp destination?

      amqConnFactory = new ActiveMQConnectionFactory(CONN);
      amqConnFactory.setWatchTopicAdvisories(false);

Thanks a lot for your help.
Reply | Threaded
Open this post in threaded view
|

Re: AMQCPP -- Cannot publish to a delete Destination: temp-queue

clebertsuconic
I would use either a newer activemq or Artemis version.



On Fri, May 19, 2017 at 8:09 PM bobeo <[hidden email]> wrote:

> hi Tim,
>
> Maybe I wasn't clear enough. Let me make it clear again:
>
> First, I have a queue : sn.queue.settings.
>
> From Java, I send a message to that queue, and I can see from the log of
> activemq broker, I highlight important bits:
>
> INFO | Sending message: ActiveMQTextMessage {commandId = 24,
> responseRequired = false, *messageId =
> ID:ubuntu-14-dev-49451-1495115456046-1:1:1:1:3*, originalDestination =
> null,
> originalTransactionId = null, producerId =
> ID:ubuntu-14-dev-49451-1495115456046-1:1:1:1, destination =
> queue://sn.queue.settings, transactionId = null, expiration =
> 1495115724634,
> timestamp = 1495115722634, arrival = 0, brokerInTime = 0, brokerOutTime =
> 0,
> correlationId = null, *replyTo =
> temp-queue://ID:ubuntu-14-dev-49451-1495115456046-1:1:3*, persistent =
> false, type = null, priority = 4, groupID = null, groupSequence = 0,
> targetConsumerId = null, compressed = false, userID = null, content =
> org.apache.activemq.util.ByteSequence@1cf5297b, marshalledProperties =
> org.apache.activemq.util.ByteSequence@21c49053, dataStructure = null,
> redeliveryCounter = 0, size = 0, properties = {fromHost=central,
> toHost=central}, readOnlyProperties = false, readOnlyBody = false,
> droppable
> = false, jmsXGroupFirstForConsumer = false, text = <?xml version="1.0"
> encoding="UTF-8" standalo...></settings>
>
> As you can see, I set replyTo to a temporary queu
> "temp-queue://ID:ubuntu-14-dev-49451-1495115456046-1:1:3"
>
> My consumer( client ) is written in C++, from onMessage() callback, I
> receive the message :
>
> Message ID =
> ID:sensen-hyd-edge-demo-01-42179-1495108420785-1:1:1:1:3:-1:-1:2
> Destination type = 3
>
> And when I try to send back the reply with the destination from
> message->getCMSReplyTo(), it gives me exception:
>
>  Cannot publish to a deleted Destination: temp-queue://
>         FILE: activemq/core/kernels/ActiveMQSessionKernel.cpp, LINE: 1013
>         FILE: activemq/core/kernels/ActiveMQProducerKernel.cpp, LINE: 274
>         FILE: activemq/core/kernels/ActiveMQProducerKernel.cpp, LINE: 184
>         FILE: activemq/core/ActiveMQProducer.cpp, LINE: 100
>
> I hope this is clearer. Do you still think the broker has advisory support
> disabled? ( How to check this? ).
>
> Is this the right way to disable the watching of temp destination?
>
>       amqConnFactory = new ActiveMQConnectionFactory(CONN);
>       amqConnFactory.setWatchTopicAdvisories(false);
>
> Thanks a lot for your help.
>
>
>
> --
> View this message in context:
> http://activemq.2283324.n4.nabble.com/AMQCPP-Cannot-publish-to-a-delete-Destination-temp-queue-tp4672611p4726407.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
--
Clebert Suconic