activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christian Posta <christian.po...@gmail.com>
Subject Re: AMQ 5.6 network of broker -- temp destinations don't propagate
Date Thu, 04 Apr 2013 16:40:26 GMT
How many brokers are in your network? In your config (1st post) it seems
there might be at least 3. Is that correct?

What you're seeing is prob what Gary pointed out earlier. A race between
advisory messages that set up the temp destinations and the responder
trying to send its response to a temp dest.

Can you try this... can you try using duplex network connectors? So for A
<--> B for example, use a duplex connector defined in A only instead of a
connector defined in A and B.



On Thu, Apr 4, 2013 at 7:55 AM, Oleg Dulin <oleg.dulin@gmail.com> wrote:

> Gary:
>
> Upgraded to 5.8, still having this issue.
>
> Our flow is like this:
>
> Client Foo connects to broker A and publishes a message on a queue,
> expecting a response on a temp destination
> Client Bar connects to broker B and receives the message, but when trying
> to respond finds that the temp destination is gone
>
> On 2013-04-04 09:54:54 +0000, Gary Tully said:
>
>  --14dae9340ed36a144a04d985f67f
>>
>> Content-Type: text/plain; charset=windows-1252
>>
>> Content-Transfer-Encoding: quoted-printable
>>
>>
>>
>>
>> how long does the consumer wait for a reply?
>>
>> I wonder if the issue is a race between the message with reply to and the
>>
>> destination advisory or with destination removal before the reply.
>>
>> For 5.8 there was some work on this use case and some additional tests;
>>
>> see: https://issues.apache.org/**jira/browse/AMQ-4276<https://issues.apache.org/jira/browse/AMQ-4276>and
the comments and
>>
>> source pane for the relevant commits.
>>
>>
>>
>> Is this 5.8, if not can you validate ur use case on 5.8.
>>
>>
>>
>>
>>
>> On 3 April 2013 22:33, Oleg Dulin <oleg.dulin@gmail.com> wrote:
>>
>>
>>
>> > I am operating a cluster of brokers. Each broker connects to its
>> neighbor=
>>
>>
>> s
>>
>> > as follows (configuration from one of them):
>>
>> >
>>
>> > <networkConnectors>
>>
>> >                         <networkConnector name=3D"1.connector.2"
>>
>> >                                 uri=3D"static:(tcp://192.168.**7.<http://192.168.7.>
>> **106:3200=
>>
>>
>> <http://192.168.7.106:3200>)"
>>
>> > />
>>
>> >                         <networkConnector name=3D"1.connector.r1"
>>
>> >                                 uri=3D"static:(tcp://192.168.**3.<http://192.168.3.>
>> **38:3300<=
>>
>>
>> http://192.168.3.38:3300>)"
>>
>> >  />
>>
>> > </networkConnectors>
>>
>> >
>>
>> > I use a request/response pattern like this:
>>
>> >
>>
>> > final Queue responseQueue =3D this.queueSession.****
>> createTemporaryQueue();
>>
>> > requestMessage.setJMSReplyTo(****responseQueue);
>>
>> > requestMessage.****setJMSExpiration(120000);
>>
>> > final MessageConsumer responseConsumer =3D this.getQueueSession().****
>> creat=
>>
>> eConsumer(responseQueue);
>>
>> >
>>
>> > responseConsumer.****setMessageListener(new MessageListener() {
>>
>> > /* =85 */
>>
>>
>> > });
>>
>> > this.getProducer(queueName).****send(requestMessage);
>>
>> >
>>
>> > getProducer is a factory method. I cache producers for the same
>> queueName
>>
>> > in a hashmap.
>>
>> >
>>
>> > Anyways, what happens is this. There appears to be a round robin going
>> on=
>>
>>
>> ,
>>
>> > as I would expect. The broker that the client is connected to works
>> fine,
>>
>> > but the other broker has these messages in the logs:
>>
>> >
>>
>> > 2013-04-03 17:21:15,467 WARN  [ActiveMQ Task-24]
>>
>> > org.apache.activemq.broker.****TransportConnection.****
>> serviceException(**Tra=
>>
>>
>> nsportConnection.java:271)
>>
>> > - Async      error occurred: javax.jms.JMSException: The destination
>>
>> > temp-queue://ID:LJLLSC1N3-****55367-1365024072577-1:1:134 does not
>> exist.
>>
>> > 5511 javax.jms.JMSException: The destination
>> temp-queue://ID:LJLLSC1N3-**=
>>
>>
>> 55367-1365024072577-1:1:134
>>
>> > does not exist.
>>
>> >
>>
>> > I saw some discussion of this on StackOverflow at
>>
>> > http://stackoverflow.com/****questions/6432672/activemq-**<http://stackoverflow.com/**questions/6432672/activemq-**>
>>
>> > how-to-handle-broker-****failovers-while-using-****temporary-queues<
>> http://st=
>>
>> ackoverflow.com/questions/**6432672/activemq-how-to-**
>> handle-broker-failovers-w=<http://ackoverflow.com/questions/6432672/activemq-how-to-handle-broker-failovers-w=>
>>
>>
>> hile-using-temporary-queues>**but that scenario doesn't apply to me.
>>
>> >
>>
>> > The interesting thing is that when I run the client on my laptop,
>>
>> > everything works great. When I run the client on the server box -- I
>> star=
>>
>>
>> t
>>
>> > having issues.
>>
>> >
>>
>> > --
>>
>> > Regards,
>>
>> > Oleg Dulin
>>
>> > NYC Java Big Data Engineer
>>
>> > http://www.olegdulin.com/
>>
>> >
>>
>> >
>>
>> >
>>
>>
>>
>>
>>
>> --=20
>>
>> http://redhat.com
>>
>> http://blog.garytully.com
>>
>>
>>
>> --**14dae9340ed36a144a04d985f67f--
>>
>>
>>
>>
>
> --
> Regards,
> Oleg Dulin
> NYC Java Big Data Engineer
> http://www.olegdulin.com/
>
>
>


-- 
*Christian Posta*
http://www.christianposta.com/blog
twitter: @christianposta

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message