DocumentBuilder parser ... estouro de memória

4 respostas
Zenas

Olá Amigos,

Venho por meio desta informar quando eu realizo o parse do meu arquivo xml, dá um estouro de memória:

Exception in thread Thread-38 java.lang.OutOfMemoryError: Java heap space

at java.util.Arrays.copyOfRange(Unknown Source)

at java.lang.String.(Unknown Source)

at org.apache.xerces.xni.XMLString.toString(Unknown Source)

at org.apache.xerces.parsers.AbstractDOMParser.characters(Unknown Source)

at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanContent(Unknown Source)

at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)

at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)

at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)

at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)

at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)

at br.gov.inca.rhcnet.importacao.Persistidor.persiste(Persistidor.java:73)

at br.gov.inca.rhcnet.importacao.Persistidor.access$4(Persistidor.java:62)

at br.gov.inca.rhcnet.importacao.Persistidor$PersistidorRunnable.run(Persistidor.java:176)

at java.lang.Thread.run(Unknown Source)

Agradeço aos que tentarem e aos que ajudarem tb,
Abraços

4 Respostas

E

Qual é o tamanho de seu arquivo XML? Normalmente é necessário você ter de memória disponível no Java (opção -Xmx ajuda a aumentar a memória disponível) cerca de 2,5 vezes o tamanho do arquivo original XML só para conter o documento.

Zenas

E como eu faço isso?

Obrigado pela Ajuda.

Zenas

Olá amigos,

Consegui realizar esta operação pelo eclipse, cliquei na opção de menu window->Preferences->Java->Installed JREs e depois selecionei a JRE e cliquei no botão Edit, depois adicionei a seguinte linha de código na caixa “Default VM Arguments” e adicionei -Xms192m -Xmx512m.

Espero ajudar a outras pessoas e agradeço aos que me ajudaram.

J

Zenas:
Olá amigos,

Consegui realizar esta operação pelo eclipse, cliquei na opção de menu window->Preferences->Java->Installed JREs e depois selecionei a JRE e cliquei no botão Edit, depois adicionei a seguinte linha de código na caixa “Default VM Arguments” e adicionei -Xms192m -Xmx512m.

Espero ajudar a outras pessoas e agradeço aos que me ajudaram.

Precisa ser criterioso ao escolher o tamanho do heap. Um heap de 512mb é para aplicações como netbeans.

Criado 9 de outubro de 2009
Ultima resposta 14 de out. de 2009
Respostas 4
Participantes 3