OutOfMemoryError......como resolver?

Fala galera…

qdo tento gerar um relatorio via WEB aki, ocorre erro de falta de memoria da JVM…

como posso resolver isso?? jah tentei passar parametros p/ tomcat, mas nao tive mto sucesso…

alguem pode ajudar??

valew

Que parâmetros vc passou pra JVM do tomcat?

entao cv…

outra coisa…nao conseguimos passar parametros p/ tomcat…
tentamos de tudo e nada feito…

[quote=“rbarioni”]entao cv…

outra coisa…nao conseguimos passar parametros p/ tomcat…
tentamos de tudo e nada feito…[/quote]

Costumo fazer uma modificacao no arquivo catalina.sh ou catalina.bat, que se encontra no diretorio bin do tomcat.

Se for ambiente unix, no catalina.sh, coloque logo apos os cometarios iniciais a linha:
JAVA_OPTS="-Xms20m -Xmx196m"

Ja para windows, edite o catalina.bat, tambem, logo apos os comentarios
set JAVA_OPTS="-Xms20m -Xmx196m"

EH claro, os valores de memoria devem ser ajustado para a disponibilidade do seu hardware.

Pode ser assim tbm…

JAVA_OPTS="-Xms20m -Xmx196m -Xss1m"

-Xss ( seta o tamanho de stack para as threads ).

E uma outra coisa… Coloque o conteudo estatico no Apache, assim voce vai diminuir drasticamente o consumo de memoria da JRE.

[]´s

Isso é verdade?? Digo, a memória usada pelo container pra enviar um arquivo estático sai da heap, óbvio, mas que eu saiba, é um volume ridículo que é necessário…

Reduzir drasticamente o consumo de memoria da JRE aumentando na mesma taxa o consumo de memoria do apache nao me parece muito bom…

O problema não é o consumo de memória, mas o excesso de IO que acaba impedindo o GC atuar e gerando-se leacks de memória.

Por isso, é melhro colocar os conteúdos estáticos no Apache, até porque ele tem Cache, e o Tomcat não.

[]'s

Beleza gente…
executar Java -Xms… realmente funciononou…
agora estou com 1 problema…uso o Eclipse… como de dentro dele ou ate mesmo rodando fora, fazer essas configuracao -Xms entrar automaticamente?

tentei até colocar como variável do windows o JAVA_OPTS mas não foi…existe alguma outra?

valeu…

para testar fiz:

public class T {
public static void main(String aaadas[]) {
System.out.println(Long.toString(Runtime.getRuntime().totalMemory()));
System.out.println(Long.toString(Runtime.getRuntime().maxMemory()));
System.out.println(Long.toString(Runtime.getRuntime().freeMemory()));
}}

só aumento memoria mesmo quando executava direto Java -Xms… T
:roll: