ufff, sigo sin poder solucionar este problema...
Le he puesto a mi código esto:
Cita: Runtime rt = Runtime.getRuntime();
System.out.println(" Memoria libre: " + rt.freeMemory());
System.out.println(" Memoria total: " + rt.totalMemory());
Y este es el log que escribe justo antes de petar:
Cita: Thread[Thread-4,4,main] - Procesamos conexion
Memoria libre: 65124648
Memoria total: 66650112
Java HotSpot(TM) Client VM warning: Exception java.lang.OutOfMemoryError occurred dispatching signal SIGTERM to handler- the VM may need to be forcibly terminated
Java HotSpot(TM) Client VM warning: Exception java.lang.OutOfMemoryError occurred dispatching signal SIGTERM to handler- the VM may need to be forcibly terminated
Lo estoy ejecutando con esto:
Cita: nohup java -verbosegc -Xmx256m -Xms64m servidor > logfile.txt
Si mis calculos no son erroneos, 66650112 (mem total) - 65124648 = 1525464 bytes que utiliza mi aplicación, osea, 1 Mega de nada... ¿por que se me desborda entonces?
¿conoceis alguna otra forma de poder ver que uso hace mi programa de la memoria? ¿o alguna otra forma para loguear el error con más información?
Supongo que podria capturar la excepción java.lang.OutOfMemoryError, pero no tengo muy claro como hacerlo...
¿alguna idea?
GRACIAS!