camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: request reply
Date Thu, 04 Feb 2016 15:04:28 GMT
You should not have a route that consumes from the replyTo queue as
you will consume the message that was intended for the reply.



On Thu, Feb 4, 2016 at 9:57 AM, Laci Gaspar <lacigas@gmail.com> wrote:
> Hi
> I was playing around with request / reply a  bit and found something I can't
> understand.
> When I run the followin snippet:
>
>     @Produce(uri = "direct:start")
>     protected ProducerTemplate start;
>     @EndpointInject(uri = "mock:end")
>     protected MockEndpoint mockEnd;
>
>     @Test
>     public void test002() throws InterruptedException {
>
>         mockEnd.expectedMessageCount(1);
>         String message = "my message";
>         logger.info("Sending Message:" + message);
>         start.requestBody(message);
>         assertMockEndpointsSatisfied();
>     }
>
> My routes are the following:
>
> from("direct:start").log("starting....").to("JMSConnectionFactory:queue:replier?replyTo=replyToQueue")
>                         .log("back from
> replier").log("Body:${body}").to("mock:end");
> from("JMSConnectionFactory:queue:replier").log("in replier...");
> from("JMSConnectionFactory:queue:replyToQueue").log("we are in
> replyToQueue");
>
>
> Then I get the following result:
> [                          main] route1 INFO  starting....
> [                          main] QueueReplyManager              WARN
> Endpoint[JMSConnectionFactory://queue:replier?replyTo=replyToQueue] is using
> a shared reply queue, which is not as fast as alternatives. See more detail
> at the section 'Request-reply over JMS' at http://camel.apache.org/jms
> [read #0 - JmsConsumer[replier]] TransportConnector             INFO
> Connector vm://localhost started
> [read #0 - JmsConsumer[replier]] route2                         INFO  in
> replier...
> [#1 - JmsConsumer[replyToQueue]] route3                         INFO  we are
> in replyToQueue
> [#1 - JmsConsumer[replyToQueue]] route3                         INFO  we are
> in replyToQueue
> [#1 - JmsConsumer[replyToQueue]] route3                         INFO  we are
> in replyToQueue
> [#1 - JmsConsumer[replyToQueue]] route3                         INFO  we are
> in replyToQueue
> [#1 - JmsConsumer[replyToQueue]] route3                         INFO  we are
> in replyToQueue
> [#1 - JmsConsumer[replyToQueue]] route3                         INFO  we are
> in replyToQueue
> [ueueReplyManager[replyToQueue]] route1                         INFO  back
> from replier
> [ueueReplyManager[replyToQueue]] route1                         INFO
> Body:my message
> [                          main] MockEndpoint                   INFO
> Asserting: Endpoint[mock://end] is satisfied
>
> What I don't understand are the lines: "we are in replyToQueue". Why is the
> route run several times (the number differs from test to test)?
>
> Thanks,
> Laci
>
>



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Mime
View raw message