On Tue, May 4, 2010 at 9:57 AM, Rajika Kumarasiri <[email protected]> wrote:

>
>
> On Mon, May 3, 2010 at 9:45 PM, Hiranya Jayathilaka 
> <[email protected]>wrote:
>
>> Rajika,
>>
>> On Mon, May 3, 2010 at 5:30 PM, Rajika Kumarasiri <[email protected]>wrote:
>>
>>>
>>>
>>> On Mon, May 3, 2010 at 4:42 PM, Hiranya Jayathilaka <
>>> [email protected]> wrote:
>>>
>>>>
>>>>
>>>> On Mon, May 3, 2010 at 4:24 PM, Rajika Kumarasiri <[email protected]>wrote:
>>>>
>>>>>
>>>>>
>>>>> On Mon, May 3, 2010 at 4:15 PM, Hiranya Jayathilaka <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Rajika,
>>>>>>
>>>>>> On Mon, May 3, 2010 at 3:44 PM, Rajika Kumarasiri <[email protected]>wrote:
>>>>>>
>>>>>>> I'd like to hear your feedback before I provide you with a patch for
>>>>>>> the issue[1]. First it's an important improvement to vfs-transport.
>>>>>>> I think we can fix the problem by introducing an optional parameter
>>>>>>> for the vfs transport , "transport.vfs.TempFileName".
>>>>>>
>>>>>>
>>>>>> Why does the user has to specify this?
>>>>>>
>>>>> No, it should be an indicator ( a boolean) which suggest to use a temp
>>>>> file or not.
>>>>>
>>>>
>>>> Why? Writing to a temp file and then moving the file to the appropriate
>>>> place is the safest approach for handling file uploads.
>>>>
>>>
>>> Currently when uploading a file using the vfs transport sender it'll use
>>> the provided file name (as a part of the url) as the file name at the ftp
>>> server. As you can see this has a problem if one on the ftp server side
>>> starts to process the file at the same time since the file is not fully
>>> transferred.
>>> To avoid this we'll use a temporary file(if the user need a one) at the
>>> ftp server for uploading the file, once uploading is completed we can move
>>> that temp file to the original one.
>>>
>>
>> IMO this has to be the default behavior. Almost all the time user does not
>> have any control over how and when the receiving application reads files
>> from the file system. So there is always a chance that the receiving
>> application may try to read from a file while Synapse is writing to it. So
>> Synapse should always anticipate this scenario and it should always do the
>> right thing, which is to write the content to a temp file and then move it
>> to the correct location.
>>
>> For instance we might run into this problem with Synapse itself. Imagine
>> we have two Synapse instances. One is writing files to a given directory and
>> the other instance is polling on that directory. Without the above described
>> approach the second Synapse instance may pick up a half done file.
>>
>> If you really need to make this configurable, I would still say make this
>> the default behavior and provide a way to turn it off if required.
>>
>
> I am not sure if we need to make this the default behaviour since this has
> some performance implications.
>

We'll wait for other's opinion on this. BTW with a single user specified
temp file name how are you going to support concurrent file uploads to the
same location?

Thanks,
Hiranya


> Some other similar implementations also use a temporary file only if one is
> provided but that's not the default behaviour. See:
>
> http://help.sap.com/saphelp_nw04/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/content.htm
>
> Rajika
>
>
>>
>> Thanks,
>> Hiranya
>>
>>
>>> Rajika
>>>
>>>
>>>>
>>>> Thanks,
>>>> Hiranya
>>>>
>>>>
>>>>>
>>>>> Rajika
>>>>>
>>>>>
>>>>>> I think this behavior should be there by default in the transport. The
>>>>>> transport should figure out suitable names for temp files. Also I don't
>>>>>> think we can use a single name for all temp files. There could be 
>>>>>> situations
>>>>>> where multiple worker threads are trying to upload several files to the 
>>>>>> same
>>>>>> server.
>>>>>>
>>>>>> Thanks,
>>>>>> Hiranya
>>>>>>
>>>>>>
>>>>>>> If  a user has provided this parameter we'll use this file on the
>>>>>>> remote server to upload the file. Once the upload is completed we will 
>>>>>>> move
>>>>>>> the temporary file to the original file(which will delete the temp 
>>>>>>> file).
>>>>>>> Comments? Suggestions?
>>>>>>>
>>>>>>> Rajika
>>>>>>>
>>>>>>> [1] - https://issues.apache.org/jira/browse/SYNAPSE-502
>>>>>>>
>>>>>>> --
>>>>>>> http://rajikak.blogspot.com/
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Hiranya Jayathilaka
>>>>>> Software Engineer;
>>>>>> WSO2 Inc.;  http://wso2.org
>>>>>> E-mail: [email protected];  Mobile: +94 77 633 3491
>>>>>> Blog: http://techfeast-hiranya.blogspot.com
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> http://rajikak.blogspot.com/
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Hiranya Jayathilaka
>>>> Software Engineer;
>>>> WSO2 Inc.;  http://wso2.org
>>>> E-mail: [email protected];  Mobile: +94 77 633 3491
>>>> Blog: http://techfeast-hiranya.blogspot.com
>>>>
>>>
>>>
>>>
>>> --
>>> http://rajikak.blogspot.com/
>>>
>>
>>
>>
>> --
>> Hiranya Jayathilaka
>> Software Engineer;
>> WSO2 Inc.;  http://wso2.org
>> E-mail: [email protected];  Mobile: +94 77 633 3491
>> Blog: http://techfeast-hiranya.blogspot.com
>>
>
>
>
> --
> http://rajikak.blogspot.com/
>



-- 
Hiranya Jayathilaka
Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: [email protected];  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Reply via email to