It's the way that fop processes the doc.
Basically it keeps grabbing memory...
a) until you reach the limit of the JVM (i.e. outofmemoryerror fix by
starting java with -Xms64M -Xmx320M)
or
b) until you reach the limit of physical ram available (then the OS starts
paging to virtual memory i.e. it hangs)
or 
c) until the end of a page sequence where most of the objects in memory for
that page sequence are released, then it starts again

As a general rule of thumb, every fo:tag in your document results in an
object in memory. The trick is to not have all of them in memory at the same
time.
I have generated 2000 page documents with multiple page sequences of 1 or 2
pages, and the memory usage didn't go above 18megs

-----Original Message-----
From: Kuehnberger [mailto:[EMAIL PROTECTED]
Sent: 18 October 2001 09:31
To: [EMAIL PROTECTED]
Subject: Re: Servlet stops


How can multiple pagesequences help?
I mean at the end I still got one fo to render, or am I totally wrong?


Colin Savage schrieb:

> you can have multiple pagesequences in one document
>
> -----Original Message-----
> From: Kuehnberger [mailto:[EMAIL PROTECTED]
> Sent: 18 October 2001 08:55
> To: [EMAIL PROTECTED]
> Subject: Re: Servlet stops
>
> Maybe I could, but then how can I send multiple documents if I just got
one
> outputstream for my servlet,
> or is something like
>
>     Driver driver = new Driver();
>     driver.setRenderer( Driver.RENDER_PDF );
>     try {
>       driver.setOutputStream( outputstream );
>       driver.render( document );
>     }
>
>     byte[] content + = outputstream.toByteArray();
>
> in a while loop possible?
>
> Colin Savage schrieb:
>
> > The other common problem is long page sequences, if you can break your
> > document into multiple page sequences of about 10 to 20 pages, there is
> > quite a significant performance improvement
> >
> > -----Original Message-----
> > From: Michail Bikoulis [mailto:[EMAIL PROTECTED]
> > Sent: 18 October 2001 08:40
> > To: '[EMAIL PROTECTED]'
> > Subject: RE: Servlet stops
> >
> > Hello,
> >
> > I'm not sure if this helps but when I convert documents running FOP with
> the
> > Java command from an MS-DOS window I use the parameters
> >
> > -Xms64M -Xmx320M
> >
> > which allocate enough memory for large documents. Is there something
> similar
> > you can do in a servlet?
> >
> > Regards,
> >
> > Mike
> >
> > -----Original Message-----
> > From: Kuehnberger [mailto:[EMAIL PROTECTED]
> > Sent: 17. oktober 2001 17:26
> > To: [EMAIL PROTECTED]
> > Subject: Servlet stops
> >
> > Hi,
> >
> > I'm using fop to generate pdf in a servlet.
> > It works fine until the size of the pdf become bigger then 20 pages (I
> > have to process files of 200-300 pages).
> > Then the servlet will stop when I render the document doc:
> >
> > driver.render( doc );
> >
> > and after some time I get 'page can not be displayed' or
> > java.lang.OutOfMemoryError (I got 512MB RAM).
> >
> > Can somebody tell me how to render big documents on the server.
> >
> > Jens

Reply via email to