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]