I've got a question regarding the streaming of large files using WSO2 ESB and the VFS transport. I have set up a proxy reading a file from an FTP location. This file should be streamed through WSO2 and be written to a targert location. In order to activate streaming, I have set the transport.vfs.Streaming parameter to "true" on the sender side and I have declared a corresponding property on the receiver side.
<proxy xmlns="http://ws.apache.org/ns/synapse" name="LargeFileTestProxy" transports="vfs" startOnLoad="true" trace="disable">
<target>
<inSequence>
<property xmlns:ns2="http://org.apache.synapse/xsd" name="transport.vfs.ReplyFileName" expression="fn:concat(fn:substring-after(get-property('MessageID'), 'urn:uuid:'), '.xml')" scope="transport" type="STRING"/>
<property name="transport.vfs.Streaming" value="true" scope="transport" type="STRING"/>
<property name="transport.vfs.Append" value="true" scope="transport" type="STRING"/>
<property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
<send>
<endpoint>
<address uri="vfs:file:///poc/services/inbound"/>
</endpoint>
</send>
</inSequence>
<outSequence/>
<faultSequence/>
</target>
<parameter name="transport.vfs.Streaming">true</parameter>
<parameter name="transport.PollInterval">1</parameter>
<parameter name="transport.vfs.FileURI">vfs:ftp://admin:admin@localhost</parameter>
<parameter name="transport.vfs.FileNamePattern">.*\.xml</parameter>
<parameter name="transport.vfs.ContentType">application/xml</parameter>
The transmitted file is partly written to the destination directory and a lock file is generated by WSO2. Unfortunately the rest of the read file isn't appended to the file.
Does anybody know what's wrong with my configuration?
Kind regards,
Heiko