I did take a look at the sources and I think I found the root of my problem, though I'm not sure how to get around it:
RecipientList class contains a producer cache, in this cache the RecipientListProcessor class does store the endpoints depending on the uri as key. Now since only my header changes I don't know how to get around this. Any ideas? Thanks in advance, Achim 2011/9/29 Achim Nierbeck <bcanh...@googlemail.com>: > Ok, > > some more worrying details. > > Right now I have two Remote Hosts > After a successful run on Host A a second run is done (not parallel > but sequential) on Host B. > And I'm able to see that the header.address is set to host B still I > see that the request is made on Host A. > > Is this intentional, are there any ways of not "remembering" which > call did go to which Host? > > Thanks again, Achim > > 2011/9/29 Achim Nierbeck <bcanh...@googlemail.com>: >> Hi >> >> using Camel 2.8.0 I'm having the following scenario. >> I'm using the CXF for connecting to a couple .NET Webservices. >> >> <!-- CXF config --> >> <cxf:cxfEndpoint id="productionServer" >> >> serviceClass="net.testservices.productionservice._2011_07.IService" >> endpointName="s:basicHttpProductionService" >> serviceName="s:ProductionService" >> wsdlURL="classpath:/wsdl/_1.wsdl" >> xmlns:s="http://tempuri.org/" >> >> xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays" >> xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> >> <cxf:properties> >> <entry key="dataFormat" value="POJO" /> >> </cxf:properties> >> <cxf:outInterceptors> >> <ref bean="loggingOutInterceptor" /> >> </cxf:outInterceptors> >> </cxf:cxfEndpoint> >> >> >> Now I have a route for looking up some data in the DB for example also >> looking for a free >> WebService to call: >> >> <camel:route id="pollQueue"> >> <camel:from >> uri="timer://pollQueueTimer?fixedRate=true&period=30000" /> >> >> ... do preparation .... >> ... also set the address of the remote host into the header of the exchange >> ... >> ... call the "production" route ... >> >> <camel:to uri="seda:production" /> >> </camel:route> >> >> the production route does call the Webservice on the available remote >> host as follows >> >> ... again a couple of preparations beforehand .... >> >> <!-- Altering Body to contain no data --> >> <camel:setBody> >> <camel:mvel>[ ]</camel:mvel> >> </camel:setBody> >> >> <!-- service call --> >> <camel:setHeader headerName="operationName"> >> <camel:constant>ProduceData</camel:constant> >> </camel:setHeader> >> >> ... the address of the remote webservice was previously added to the >> header in the starting route ... >> >> >> ... I needed to set the parallelProcessing to true, if not everything >> fails because the Timer Route tries to start another recipientList ... >> >> <camel:recipientList parallelProcessing="true"> >> >> <camel:simple>cxf:bean:productionServer?address=${header.address}</camel:simple> >> </camel:recipientList> >> >> ... some more calls checking data, errorhandling and so forth .... >> >> >> Now the following happened to me when I had more than one Remote Host >> available: >> >> Calls to Host A did run on Host B >> Results expecting to be retrieved from Host A where polled from Host B. >> Now I wonder if the calls to certain Methods are cached or if the >> "re-running" timmer route does >> interfere somehow with the already running route. >> >> A Complete run of a route can take up to about 30 Minutes after that >> the "Production"-Route is done. >> Since there are multiple hosts available we want to do parallel processing. >> >> Any hints are welcome, >> >> Achim >> >> >> -- >> -- >> *Achim Nierbeck* >> >> >> Apache Karaf <http://karaf.apache.org/> Committer & PMC >> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> >> Committer & Project Lead >> blog <http://notizblog.nierbeck.de/> >> > > > > -- > -- > *Achim Nierbeck* > > > Apache Karaf <http://karaf.apache.org/> Committer & PMC > OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> > Committer & Project Lead > blog <http://notizblog.nierbeck.de/> > -- -- *Achim Nierbeck* Apache Karaf <http://karaf.apache.org/> Committer & PMC OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & Project Lead blog <http://notizblog.nierbeck.de/>