0

I using EI version 6.6.0 and OS - CentOS Linux 7 (Core). I have a proxy service and one part of its task is to copy a file with content to a backup. To do this I use the transport.vfs.replyfilename property with the OUT_ONLY property and the endpoint with the url where I want to save the backup file. This is example my proxy :

  <target>
        <inSequence>
            <log level="custom" separator="&#xa;">
                <property name="STEP" value="Start operation"/>
                <property expression="$trp:FILE_LENGTH" name="LENGTH"/>
                <property expression="$trp:LAST_MODIFIED" name="MODIFIED"/>
                <property expression="$trp:FILE_URI" name="URI"/>
                <property expression="$trp:FILE_PATH" name="PATH"/>
                <property expression="$trp:FILE_NAME" name="NAME"/>
            </log>
            <property expression="//*[local-name()='text']" name="INPUT_FILE" scope="default" type="STRING"/>
            <property expression="$trp:FILE_NAME" name="uri.var.load_file" scope="default" type="STRING"/>
            <log level="custom">
               <property name="STEP" value="Copy input file to another location"/>
               <property name="LOAD_FILE" expression="get-property('uri.var.load_file')"/>      
            </log>
            <property expression="get-property('uri.var.load_file')"
                name="transport.vfs.ReplyFileName" scope="transport" type="STRING"/>
            <property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
            <send>
              <endpoint name="fileEndpoint">
                <address trace="disable" uri="vfs:file:///relaitive_path_of_backup_folder"/>
              </endpoint>
            </send>
        </inSequence>
        <outSequence/>
        <faultSequence/>
    </target>
    <parameter name="transport.PollInterval">60</parameter>
    <parameter name="transport.vfs.FailedRecordsFileDestination">file:///opt/wso2ei-6.6.0/repository/conf</parameter>
    <parameter name="transport.vfs.MaxRetryCount">5</parameter>
    <parameter name="transport.vfs.ContentType">text/plain;charset=UTF-8</parameter>
    <parameter name="transport.vfs.FileURI">vfs:ftp://login:password@host/outgoing_test?transport.vfs.ReconnectTimeout=10&amp;transport.vfs.MaxRetryCount=5&amp;transport.vfs.ConnectTimeout=5000</parameter>
    <parameter name="transport.vfs.ActionAfterProcess">DELETE</parameter>
    <parameter name="transport.vfs.FailedRecordsFileName">transferFails.log</parameter>
    <parameter name="transport.vfs.MoveAfterFailure">vfs:ftp://login:password@host/outgoing_test/error?transport.vfs.ReconnectTimeout=10&amp;transport.vfs.MaxRetryCount=5&amp;transport.vfs.ConnectTimeout=5000</parameter>
    <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
    <parameter name="transport.vfs.FileNamePattern">.*\.csv</parameter>
    <parameter name="transport.vfs.Locking">disable</parameter>
    <parameter name="transport.vfs.MoveFailedRecordTimestampFormat">yyyy-MM-dd'T'HH:mm:ss.SSSZ_</parameter>

But I have encountered that this method is not stable and does not always copy the file. There is nothing in the logs about this, no errors. Just sometimes the file is not copied to the specified path. How to make this process guaranteed ? What I do wrong ?

0 Answers0