I am running Tomcat 8.0.20 in Ubuntu with Java 1.8u45
This server runs in Amazon EC2 behind an ELB (load balancer), although the
cluster size is just one server.

My application allows to download some data in CSV format.
The CSV data is generated on the fly, and there is no way to known in
advance the size of the response. So, the data is an attachment.

 response.setContentType("text/csv;charset=utf-8");

 filename = "data.csv"

 response.setHeader("Content-Disposition", "attachment; filename=\"" +
filename + ".csv\"");


The download starts immediately but after 100 MB the browser stopped
received data -my internet connection was not the best-, so I canceled the
download as it was not progressing anymore.

Nevertheless, my web app keeps generating the CSV data, unaware that the
connection has been dropped. I was expecting that my code would get an
IOException when writing to the servlet OutputStream (which was wrapped by
a BufferedOutputStream and wrapped by an OutputStreamWriter).

Is this a problem I can solve through the configuration of the NIO
connector ?
Or is this a problem of Amazon ELB that still consumes the stream even
though it can't be forwarded to the browser anymore?

I don't remember having this problem when working with Apache HTTP as the
load balancer. If I remember correctly, I would get an error indicating
that the client closed the connection.

Any pointers are appreciated.

-Jorge

Reply via email to