0 Replies Latest reply on Nov 5, 2008 9:03 AM by dacapoalfine

    camel direct message exchanging.

    dacapoalfine

      hi,

       

      I want to do a thing which would seem to be very basic: I want to, from a piece of code in the run() method of a Java thread T, started and managed by a camel endpoint, send a direct in-out message to a camel endpoint X, and when X is done and returnes a response, I want to continue using this response in T.

       

      I can do this when the X is in the same SA, for instance by using CamelTemplate. But how do I do it when the endpoint X is in another SA?

       

      It is not an option to place X in the same SA, because this X is supposed to be shared by a bunch of other components, I just can't put anything that wants to use X in the same SA, I want to be able to deploy/undeploy subsystems independently.

       

      So I just want to do a very clean, direct message exchange with an endpoint in another SA, getting an exception or something in case of delivery failure.

       

       

      I have made an ugly solution using queues between the SA:s, but it seems to me to be needlessly complicated, konceptually wrong, not very nice and not very efficient, I don't want to use a large queueing machinery for this simple in-out message exchange.

       

       

       

      So how do I do this?

       

       

       

       

       

       

      I've tried in my route builder declaring an endpoint (in T:s SA) with the uri "direct:X" and "vm:X", which I can send messages to, but I haven't gotten it to work.

       

       

      Am I at all on the right track trying to use camel-direct or vm, or should I do it some other way?

       

      Thanks for any help!

      //David