¿Cómo detectar la causa de OutofMemoryError?

Tengo una queja de que una de mis aplicaciones de servidor está fallando en una carga alta.
Es una aplicación web que se ejecuta enTomcat 5.
Veo los volcados de hilos y veo que hay un error OutOfMemory

1TISIGINFO Dump Event "systhrow" (00040000) Detalle
"java / lang / OutOfMemoryError" "Error al crear el hilo: retVal -1073741830, errno 12"> recibido 1TIDATETIME Fecha: 2012/07/17 a las 20:03:17 1TIFILENAME> Javacore filename: C: \ ServerApplication \ Tomcat5 \ bin \ javacore.34545719.4646464.4172.0003.txt

La información del montón es la siguiente:

Maximum Java heap size : 1500m    
Initial Java heap size : 256m

Esta es la configuración para el tamaño de pila inicial y máximo (java de 32 bits)

También veo que hay espacio disponible en el montón

1STHEAPFREE    Bytes of Heap Space Free: 2D19F3C0   
1STHEAPALLOC   Bytes of Heap Space Allocated: 5DC00000

Esto es alrededor de 750 MB de espacio libre, ¿verdad?

Y a partir del análisis del método del hilo, veo que el número de hilos es695 de los cuales49% esjava/lang/Object.wait(Native Method) y39% es ensun/misc/Unsafe.park(Native Method)
Tambien veo estoNO JAVA STACK 1% No estoy seguro de lo que eso significa.
También 0 peldaños en punto muerto y2% es ejecutable.

No estoy seguro de cómo interpretar esta información o cómo pasar de aquí para detectar la causa subyacente.
¿Alguna ayuda en esto?

Respuestas a la pregunta(5)

Su respuesta a la pregunta