Filip Hanik - Dev Lists wrote:
> John Caron wrote:
>> My application is a scientific data server that transfers large
>> amounts of binary data. I am looking to make it as fast as possible
>> and have been experimenting with the NIO FileChannel.transferTo()
>> method. This appears to be much faster (3-10X) than using an
>> OutputStream, under some circumstances. So I am trying to see if I can
>> use this from within Tomcat.
>>
>> So the question is whether there is a way to obtain a SocketChannel
>> for the connection? The standard interface only allows to get an
>> OutputStream. While Channels.newChannel(OutputStream out) gives a
>> WriteableByteChannel, the transferTo() method does not work on it,
>> apparently one needs to get the SocketChannel at a deeper level.
>>
>> Has anyone else tried this? Any ideas would be much appreciated.

> we haven't exposed the API at this level, since the data you write to
> the network, must go through several filters.
> you can still take advantage of the direct transfers by using Tomcat's
> built in send file technique.
> 
> A user previously wrote:
> 
> Any servlet can instruct Tomcat to perform a sendfile call by setting
> the appropriate response attributes. When using sendfile...
>    * org.apache.tomcat.sendfile.filename: Canonical filename of the file
> which will be sent as a String
>    * org.apache.tomcat.sendfile.start: Start offset as a Long
>    * org.apache.tomcat.sendfile.end: End offset as a Long
> 
> So add these attributes into the request, (see DefaultServlet.java for
> an example), and if you are using the APR or the NIO connector in
> Tomcat, tomcat will transfer them directly

Hi Filip:

I may need to make many such transfers to satisfy the request, so sendfile 
doesnt seem like it will
work. I realize this would bypass the Filters. Perhaps its not worth it, but I 
would like to test
the possible performance gain.

Thanks for the help....

John

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to