JPA - java.lang.OutOfMemoryError: PermGen space

4 respostas
B

Olá comunidade,

Eu tenho uma aplicação usando JPA.Depois de compilar a aplicação algumas vezes seguidas, ela me lança a seguinte exceção:

26/09/2010 23:57:38 org.apache.catalina.session.StandardManager stop
GRAVE: Exception unloading sessions to persistent storage
java.lang.OutOfMemoryError: PermGen space
26/09/2010 23:57:39 org.apache.catalina.session.StandardManager doLoad
GRAVE: IOException while loading persisted sessions: java.io.EOFException
java.io.EOFException
       at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281)
       at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2750)
       at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
       at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
       at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:58)
       at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:362)
       at org.apache.catalina.session.StandardManager.load(StandardManager.java:321)
       at org.apache.catalina.session.StandardManager.start(StandardManager.java:637)
       at org.apache.catalina.core.StandardContext.start(StandardContext.java:4476)
       at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1276)
       at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:378)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:196)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
       at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
       at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
       at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
       at java.lang.Thread.run(Thread.java:619)
26/09/2010 23:57:39 org.apache.catalina.session.StandardManager start
GRAVE: Exception loading sessions from persistent storage
java.io.EOFException
       at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281)
       at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2750)
       at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
       at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
       at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:58)
       at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:362)
       at org.apache.catalina.session.StandardManager.load(StandardManager.java:321)
       at org.apache.catalina.session.StandardManager.start(StandardManager.java:637)
       at org.apache.catalina.core.StandardContext.start(StandardContext.java:4476)
       at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1276)
       at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:378)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:196)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
       at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
       at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
       at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
       at java.lang.Thread.run(Thread.java:619)
javax.persistence.PersistenceException: No Persistence provider for
EntityManager named conexaoPU: Provider named
oracle.toplink.essentials.PersistenceProvider threw unexpected
exception at create EntityManagerFactory:
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError: PermGen space

Provider named oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
threw unexpected exception at create EntityManagerFactory:
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError: PermGen space


       at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:154)
       at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
       at br.gov.rj.planejamento.conexao.Conexao.<init>(Conexao.java:21)
       at br.gov.rj.planejamento.control.topicoRelacionado.Listar.service(Listar.java:29)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
       at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
       at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
       at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
       at java.lang.Thread.run(Thread.java:619)

Alguém sabe o q pode lançar essa exceção?Com faço para resolver este problema?

Este erro ocorre ao criar o EntityManagerFactory.

Obrigado pela ajuda pessoal.

4 Respostas

S

java.lang.OutOfMemoryError
Cara o teu problema é complicado, mas numa analise rapida parece que tens alguns objectos que estão comendo e engolindo memoria a mais, acho que estas a meter muitos objectos em memoria, e deviam estar numa base de dados e ser acedidos por paginacao, ou é um outro problema qualquer, mas esta associado com o consumo de memoria.

ViniGodoy

Leia esse tópico:
http://www.guj.com.br/posts/list/92491.java

S

Se estas a usar o jsf, pelo que eu vejo devias meter os Managed Beans com escopo de sessão como serializaveis, para economizar memoria no lado do servidor,
e o teu framework de persistencia acho que devias rever tambem pode ser que esteja a consumir a mais de memoria

B

Hmmmm.

Vou tentar resovler o problema e posto aqui o resultado.

Obrigado pelas dicas.

Criado 27 de setembro de 2010
Ultima resposta 27 de set. de 2010
Respostas 4
Participantes 3