> BTW, this whole discussion is about in path, that is reading an > incomming message. How about the out path? We have the same problems > when sending attachments. Right now, we read the whole file into memory > and then only we send over the wire. hmm... Why not write it in chunks.. Read a chunk from the file, then write it to the outstream.. Use size of the file for content-type calculation in case of non-chunking.. But mostly people will use chunking when using MTOM..
thanks, Thilina > > Samisa... > > > > > Regards, > > Senaka > > > > > >> Hi, > >> > >>> > In Axis2/Java case we do write the attachment content directly from > >>> > the InputStream to the File when the attachment size is larger than > >>> > the threshold. This avoids loading the whole attachment to the > >>> memory > >>> > at all. > >>> > >>> In this case to find out the attachment size don't you need to do any > >>> mime parsing? How do you find the attachment size with out searching > >>> for > >>> the mime boundaries ? > >>> > >> Yes.. MIME is a boundary based packaging mechanism and you does not > >> need to specify the length for each of the parts...Even the HTTP > >> content length is not there if the message is chunked. > >> > >> What we did in Axis2/Java to overcome this is to read the data to a > >> byte[] buffer of up to a certain size (the size threshold). If there > >> are more data available in the mime part (if we have not encountered > >> the boundary yet) then we know this attachment is bigger than the > >> threshold. So we create the temp file, pump the content in the buffer > >> to the file, then pump the rest of the stream to the file.. In this > >> way we do not need to know the size of the attachment upfront.. BTW we > >> do all of the above while we are parsing the MIME message at the MIME > >> parser level.. > >> > >> > >>> > This has the plus point that the attachment size will be > >>> > limited only by the available free space in the Temp Directory.. > >>> > Will that be possible in Axis2/C.. Or is that wat you have in mind > >>> :).. > >>> > >>> Yes this is possible. > >>> > >> But in Axis2/JAVA we will get a OutOfMemory if we parse a large MIME > >> part upfront, since it reads the attachment to memory. May be you can > >> have a larger limit with C than in Java, but ultimately you'll come to > >> a situation where you will not have enough memory to store that MIME > >> part in memory in the parsing time, unless you write in to a File > >> while parsing,.. > >> > >> thanks, > >> Thilina > >> > >> > >>> > >>> > > >>> > thanks, > >>> > Thilina > >>> > > >>> > >and keeping the file name inside > >>> > > data_handler instead of the whole buffer. So the service or the > >>> client > >>> > > will get the file name instead of the buffered stream, when it > >>> receives > >>> > > an attachment. This will not prevent buffering the attachment at > >>> the > >>> > > transport but will prevent keeping it inside the om_tree till it > >>> reaches > >>> > > the receiver. > >>> > > > >>> > > Before implementing this I would like to know your suggestions > >>> regarding > >>> > > this. > >>> > > > >>> > > [1] https://issues.apache.org/jira/browse/AXIS2C-672 > >>> > > > >>> > > Thanks, > >>> > > -Manjula > >>> > > > >>> > > -- > >>> > > Manjula Peiris: http://manjula-peiris.blogspot.com/ > >>> > > > >>> > > > >>> > > > --------------------------------------------------------------------- > >>> > > To unsubscribe, e-mail: [EMAIL PROTECTED] > >>> > > For additional commands, e-mail: [EMAIL PROTECTED] > >>> > > > >>> > > > >>> > > >>> > > >>> > > >>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: [EMAIL PROTECTED] > >>> For additional commands, e-mail: [EMAIL PROTECTED] > >>> > >>> > >>> > >> > >> -- > >> Thilina Gunarathne - http://thilinag.blogspot.com > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [EMAIL PROTECTED] > >> For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > >> > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > -- > Samisa Abeysinghe > Software Architect; WSO2 Inc. > > http://www.wso2.com/ - "Oxygenating the Web Service Platform." > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Thilina Gunarathne - http://thilinag.blogspot.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]