I think you should write from the buffer stream and not from a direct
stream.
--Omar
On Jun 18, 2009, at 9:04 AM, Richard Yee <richard.k....@gmail.com>
wrote:
Take a look at the HttpServletResponse.setBufferSize() and
flushBuffer() methods. Perhaps you should call flushBuffer instead of
os.flush()?
-R
On Wed, Jun 17, 2009 at 12:23 PM, Wolfgang
Grabow<wolfgang_gra...@gmx.net> wrote:
Hi Mike,
thx for the hints. I updated and tracked down the memory issue.
It's actually that java's buffering the whole file before beginning
the streaming to the user.
Any ideas on how to prevent that?
tia
W
Mike Quentel (4DM) schrieb:
Try upgrading to the latest JVM. Analyse threads in JConsole.
Might there need to be some blocks of code set to synchronised?
Perhaps you have already done the above; but these are good ways
to rule out the sources of leaks, as well as to diagnose the issues.
------Original Message------
From: kaphb...@gmx.net
To: users@myfaces.apache.org
ReplyTo: MyFaces Discussion
Subject: Java Heap Space
Sent: 16 Jun 2009 04:36
Hi %,
I'm facing a wired issue with the java heap space which is close
to bringing me to the ropes.
The short version is:
I've written a ContentManagementSystem which needs to handle
huge files (>600mb) too. Tomcat heap settings:
-Xmx700m
-Xms400m
The issue is, that uploading huge files works eventhough it's
slow. Downloading files results in a java heap space exception.
Trying to download a 370mb file makes tomcat jump to 500mb heap
(which should be ok) and end in an Java heap space exception.
I don't get it, why does upload work and download not?
Here's my download code:
byte[] byt = new byte[1024*1024*2];
response.setHeader("Content-Disposition",
"attachment;filename=\"" + fileName + "\"");
FileInputStream fis = null;
OutputStream os = null;
fis = new FileInputStream(new File(filePath));
os = response.getOutputStream();
BufferedInputStream buffRead = new BufferedInputStream(fis);
while((read = buffRead.read(byt))>0)
{
os.write(byt,0,read);
os.flush();
}
buffRead.close();
os.close();
If I'm getting it right the buffered reader should take care of any
memory issue, right?
Is there a chance that JSF interferes my tomcat settings?
Any help would be highly appreciated since I ran out of ideas.
Best regards,
W