If I understand it right, the multicast allows the same payload to be
processed by multiple end points? If I remove the multicast then won't the
second enpoint (in the now non-multicast pipeline) try to process the output
from the first one?


Claus Ibsen-2 wrote:
> 
> On Fri, Jan 22, 2010 at 1:20 PM, Andy Bourke <andy.bou...@pcmsgroup.com>
> wrote:
>>
>> Hi all,
>>
>> I am new to camel and have hit a problem that I hope someone can help me
>> with.
>>
>> I have a route that looks for a file in a directory => unmarshals the
>> file
>> using <CSV> => transforms the output from the unmarshal (which is
>> List<List<String>>) to a List of data objetcs => passes the List of data
>> objects to a processor which does the intelligent mapping of the input
>> data
>> to the output which is a List of Objects => passes the List of Objects to
>> a
>> <multicast> pipeline who's endpoints traverse the List of Objects and
>> extract the data, that they are interested in, formatting the output in
>> to a
>> List of Map objects so that the <CSV> marshaller can marshal to a named
>> file.
>>
>> This is the route:
>>
>>        <route id="iq">
>>            <from uri="file:/data/iq/inbound/"/>
>>            <unmarshal>
>>                <csv id="pipeCsvDataFormat"/>
>>            </unmarshal>
>>            <bean ref="iqTransform" method="doTransform"/>
>>            <to uri="bean:iqProcessor?method=process"/>
>>            <multicast parallelProcessing="true">
>>                <pipeline>
>>                    <to uri="bean:formatOutput?method=formatHeader"/>
>>                    <marshal>
>>                        <csv />
>>                    </marshal>
>>                    <to
>> uri="file:/data/iq/outbound/?fileName=Txn_Header.txt"/>
>>                </pipeline>
>>                <pipeline>
>>                    <to uri="bean:formatOutput?method=formatLineHeader"/>
>>                    <marshal>
>>                        <csv />
>>                    </marshal>
>>                    <to
>> uri="file:/data/iq/outbound/?fileName=Line_Header.txt"/>
>>                </pipeline>
>>            </multicast>
>>        </route>
>>
>>
>> As expected, I get a correctly formatted file named Txn_Header.txt and a
>> file named Line_Header.txt in the /outbound directory. So the routing
>> seems
>> to have worked fine.
>>
>> The problem is that the original file does not get renamed in to the
>> .camel
>> subdirectory and so the file gets processed again and again.
>>
>> If I remove the second endpoint in the multicast so that only the
>> Txn_Header.txt file is produced then the original file does get renamed
>> and
>> the route ends successfully.
>>
> 
> And with no mulitcast have you tried that?
> 
> 
>> Can someone help me understand what I have done wrong please?
>>
>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/Renamer-failing-to-rename-%27From%27-File-when-using-multiple-endpoints-via-Multicast-tp27272407p27272407.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
> 
> 
> 
> -- 
> Claus Ibsen
> Apache Camel Committer
> 
> Author of Camel in Action: http://www.manning.com/ibsen/
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Renamer-failing-to-rename-%27From%27-File-when-using-multiple-endpoints-via-Multicast-tp27272407p27273273.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to