Java heap space

Estou com problemas na utilizacao dessas areas de armazenamento

LinkedList
e
ResultSet

Alguem sabe como aumenta-las no Java ?
Obrigado

OBS: nao posso utilizar outro tipo.
utilizo o TomCat 6.0

ERRO recebido:

Nov 11, 2009 12:54:13 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Nov 11, 2009 12:54:13 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Nov 11, 2009 12:59:22 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet TwServ threw exception
java.lang.OutOfMemoryError: Java heap space
at java.text.RuleBasedBreakIterator.readFile(Unknown Source)
at java.text.RuleBasedBreakIterator.readTables(Unknown Source)
at java.text.RuleBasedBreakIterator.<init>(Unknown Source)
at java.text.BreakIterator.createBreakInstance(Unknown Source)
at java.text.BreakIterator.getBreakInstance(Unknown Source)
at java.text.BreakIterator.getLineInstance(Unknown Source)
at java.text.BreakIterator.getLineInstance(Unknown Source)
at java.awt.font.LineBreakMeasurer.<init>(Unknown Source)
at net.sf.jasperreports.engine.fill.TextMeasurer.renderParagraph(TextMeasurer.java:260)
at net.sf.jasperreports.engine.fill.TextMeasurer.measure(TextMeasurer.java:221)
at net.sf.jasperreports.engine.fill.JRFillTextElement.chopTextElement(JRFillTextElement.java:515)
at net.sf.jasperreports.engine.fill.JRFillTextField.prepare(JRFillTextField.java:514)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:343)
at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:311)
at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:275)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1291)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillGroupHeader(JRVerticalFiller.java:542)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillGroupHeaders(JRVerticalFiller.java:486)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportContent(JRVerticalFiller.java:246)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:132)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:750)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:666)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:385)
at com…servicos.TwClsM5Op01x.Tw_PRINT_RELATORIO(TwClsM5Op01x.java:2195)
at com…servicos.TwClsM5Op01x.Tw_PRINT_GERAL(TwClsM5Op01x.java:1750)
at com…servicos.TwClsM5Op01x.Tw_PRINT_REL051(TwClsM5Op01x.java:1943)
at com…servicos.TwClsM5Op01x.Tw_PROC_ABRIR(TwClsM5Op01x.java:245)
at com.xxxx.servicos.TwClsGenerica1.Tw_PROCESSAR_EVENTO(TwClsGenerica1.java:124)
at com.xxxx.servicos.TwClsGenerica1.Tw_PROCESSAR_COM_DB(TwClsGenerica1.java:102)

Bom, você aparentemente está tentando carregar coisas demais no seu list. Ou pode ter um memory leak. Se for o caso de um leak, é melhor usar um profiler, e medir onde tanta memória está sendo gasta.

Você já pensou em carregar coisas aos poucos? As vezes isso também resolve o problema, sem a necessidade de aumentar o heap.

Se sua aplicação realmente ocupa muita memória, talvez seja necessário configurar o parâmetro -XmX de execução da sua VM:
http://hausheer.osola.com/docs/5

Professor Vinicius, como vai???
Sou seu ex-aluno na UFPR, e agora preciso de sua ajuda por aqui… rs…

Estou tendo que programar o Jasper Reports, e gerar um monte de relatórios. Funciona, mas às vezes sobrecarrega a memória.

O erro ocorre em um dos loopings que carrego o openReport para salvar o PDF,… Mas rodo um por vez, não gero tudo de uma vez.

Lembrando que eu sempre coloco no FINALLY do TRY o seguinte >

response.setContentType(“application/pdf”);
ServletOutputStream outputStream = response.getOutputStream();
.
.
.
outputStream.flush();
outputStream.close();

O meu openReport está bem simples >

public static void openReport(
        String titulo,
        InputStream inputStream,
        Map<String, Object> parametros,
        String path, Boolean exibirJanela ) throws JRException {
        JasperPrint jasperPrint;
        jasperPrint = JasperFillManager.fillReport(
          inputStream, parametros, new JREmptyDataSource());

        //JasperPrint print = JasperFillManager.fillReport(
          //      inputStream, parametros);
        JasperExportManager.exportReportToPdfFile(jasperPrint, path); 

}

Até tentei fechar o inputStream >

finally
{
inputStream.close();
}

E, inclusive, tô usando o GZIP >

//Instancia o virtualizador
JRAbstractLRUVirtualizer virtualizer = new JRGzipVirtualizer(1);
param.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);
.
.
.
virtualizer.cleanup();

Veja só o erro >

Dez 02, 2011 10:21:07 AM org.apache.catalina.core.StandardContext reload
Informações: Reloading Context with name [/positivo] has started
Dez 02, 2011 10:21:10 AM org.apache.catalina.core.StandardContext reload
Informações: Reloading Context with name [/positivo] is completed
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.
Dez 02, 2011 10:21:21 AM org.apache.catalina.core.StandardContext reload
Informações: Reloading Context with name [/positivo] has started
Dez 02, 2011 10:21:21 AM org.apache.catalina.core.StandardWrapper unload
Informações: Waiting for 1 instance(s) to be deallocated
Dez 02, 2011 10:21:22 AM org.apache.catalina.core.StandardWrapper unload
Informações: Waiting for 1 instance(s) to be deallocated
Dez 02, 2011 10:21:23 AM org.apache.catalina.core.StandardWrapper unload
Informações: Waiting for 1 instance(s) to be deallocated
Dez 02, 2011 10:21:23 AM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
Grave: The web application [/positivo] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
Dez 02, 2011 10:21:23 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
Grave: The web application [/positivo] is still processing a request that has yet to finish. This is very likely to create a memory leak. You can control the time allowed for requests to finish by using the unloadDelay attribute of the standard Context implementation.
Dez 02, 2011 10:21:23 AM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
Grave: The web application [/positivo] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@3def47bf]) and a value of type [net.sf.jasperreports.engine.export.legacy.BorderOffset$1] (value [net.sf.jasperreports.engine.export.legacy.BorderOffset$1@284f6c5d]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
Dez 02, 2011 10:21:23 AM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
Grave: The web application [/positivo] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@76536257]) and a value of type [net.sf.jasperreports.repo.SimpleRepositoryContext] (value [net.sf.jasperreports.repo.SimpleRepositoryContext@5c5d7a71]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
Dez 02, 2011 10:21:23 AM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
Grave: The web application [/positivo] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@7d11c016]) and a value of type [java.lang.Class] (value [class Relatorio32Comparativo324532Parte322_1322827418806_705702]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
Dez 02, 2011 10:21:23 AM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
Grave: The web application [/positivo] created a ThreadLocal with key of type [net.sf.jasperreports.engine.util.JRFontUtil$1] (value [net.sf.jasperreports.engine.util.JRFontUtil$1@185a2480]) and a value of type [java.util.HashSet] (value [[]]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
Dez 02, 2011 10:21:23 AM org.apache.catalina.loader.WebappClassLoader findResourceInternal
Informações: Illegal access: this web application instance has been stopped already. Could not load relatorio/Relatorio2.jasper. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.NullPointerException
Dez 02, 2011 10:21:23 AM org.apache.catalina.loader.WebappClassLoader loadClass
Informações: Illegal access: this web application instance has been stopped already. Could not load javax.servlet.ServletOutputStream. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1562)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at servlet.TGeracaoRelatorio.processRequest(TGeracaoRelatorio.java:145)
at servlet.TGeracaoRelatorio.doGet(TGeracaoRelatorio.java:326)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

Dez 02, 2011 10:21:23 AM org.apache.catalina.connector.CoyoteAdapter service
Grave: An exception or error occurred in the container during the request processing
java.lang.NullPointerException
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

Dez 02, 2011 10:21:28 AM org.apache.catalina.core.StandardContext reload
Informações: Reloading Context with name [/positivo] is completed
Dez 02, 2011 10:21:28 AM org.apache.catalina.core.StandardContext reload
Informações: Reloading Context with name [/positivo] has started
Dez 02, 2011 10:21:31 AM org.apache.catalina.core.StandardContext reload
Informações: Reloading Context with name [/positivo] is completed

GRANDE ABRAÇO, E OBRIGADO PELO SUPORTE!

Oi.

Qual aluno?

O que tem nas linhas?
at servlet.TGeracaoRelatorio.processRequest(TGeracaoRelatorio.java:145)
at servlet.TGeracaoRelatorio.doGet(TGeracaoRelatorio.java:326)

Ao postar código, por favor, use a tag code: