camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: WS => JMS with 2 queues
Date Tue, 09 Dec 2008 00:38:17 GMT
+1 for Christian's solution.
For the WS the communication model is a request/response, so the message
exchange pattern is InOut. Current camel jms component does not only
support InOnly pattern, but also support InOut pattern.

Willem

Christian Schneider wrote:
> Your config looks extremely complex.
> 
> Shouldn´t a simple
> 
> <from uri="direct:myEndpoint"/>
> <to
> uri="jms:queue:${request.queue.jndi-name}?replyToDestination=queue:${reply.queue.jndi-name}"/>
> 
> 
> suffice?
> 
> As far as I know it will do a nice request / reply with correlation id
> processing.
> 
> Greetings
> 
> Christian
> 
> GLD schrieb:
>> Hi, I try to implement the following use case
>>
>> A Direct-endpoint consumes data     ==> request data is sent the
>> request via JMS in queue "requestQueue" AND the reply is expected on
>> the queue "responseQueue"        ==> The reply is then sent back tot
>> the direct-endpoint
>>
>>
>> I tried to   add a correlationID to the request=)
>>   use a multicast tag (to send the JMS message) and to prepare a join
>> point
>> for the reply. In the second exchange, I set the header 'isReply' to
>> false.
>> In the route consuming the JMS reply from queue "responseQueue", I set
>> the
>> header 'isReply' to 'true'  (so 1 has isReply to true and the other to
>> false).
>> I tried to use an aggregator to join both exhanges above sending them
>> to the
>> same direct endpoint.
>>   The matching is done via the JMScorrelationID
>>   The choice is done by a custom strategy (The Selected exchange is
>> the one
>> where 'isReply = true'
>>
>> (see route file attached
>> http://www.nabble.com/file/p20900905/applicationContext-business-camel-route.xml
>>
>> applicationContext-business-camel-route.xml
>>
>> ... But it doesn't work.
>>   My expected "join point" doesn't wait for the reply.... and the
>> request is
>> sent back to the "Direct-endpoint":-(
>>  
>>
>> What is the good solution to make the thread that process the original
>> message wait for a message processed by another thread?
>>
>> NB : One of my requirements is to use 2 queues. I did it with 1 queue
>> (InOut) and it works fine.=)
>>
>> Regards
>>
>>   
> 
> 


Mime
View raw message