Comment détecter la cause de OutofMemoryError?

J'ai une plainte qu'un serveur d'application de la mine est de s'écraser sur le haut de la charge.
C'est une application web s'exécutant dans Tomcat 5.
Je vois le fil décharges et je vois qu'il existe un dépassement de mémoire erreur

1TISIGINFO Dump de l'Événement "systhrow" (00040000) Détail
"java/lang/OutOfMemoryError" "n'a pas à créer de thread: retVal -1073741830, errno 12" >reçu 1TIDATETIME Date: 2012/07/17 à 20:03:17 1TIFILENAME >Javacore filename:C:\ServerApplication\Tomcat5\bin\javacore.34545719.4646464.4172.0003.txt

Le tas d'informations est le suivant:

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

C'est la configuration initiale et Max de la taille du segment (32 bits de java)

Je vois aussi qu'il est disponible gratuitement à l'espace de tas

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

C'est autour de 750 MO d'espace libre, non?

Et de la méthode de fil de l'analyse, je vois que le nombre de Threads est 695 de qui 49% est java/lang/Object.wait(Native Method) et 39% est dans sun/misc/Unsafe.park(Native Method)
Aussi je vois ce NO JAVA STACK 1% pas sûr de ce que cela signifie.
Aussi 0 girons impasse et 2% est Praticable.

Je ne suis pas sûr de savoir comment interpréter cette information ou comment aller à partir d'ici, pour détecter la cause sous-jacente.
Toute aide à ce sujet?

""java/lang/OutOfMemoryError" "n'a pas à créer de thread: retVal -1073741830, errno 12" >" Que l'article est extrêmement important, l'appel à la bibliothèque windows a échoué, vous avez besoin d'aller rechercher ces codes dans une référence Microsoft(MSDN etc) et voir ce qu'ils signifient.
vous réfère à la retVal ou errno que vous recommander je devrais regarder? Où dois-je chercher?
Les deux, mais errno serait sans doute plus instructif(retval probablement juste indique un échec, peut-être ce type de panne, pas sûr, je n'ai aucune expérience avec Windows)
Bien que n'étant pas nécessairement la réponse à votre question, avez-vous essayé d'utiliser le NIO ou AVR connecteurs dans Tomcat à la place de celui par défaut? De cette façon, vous ne serez pas en lançant un nouveau thread par connexion.

OriginalL'auteur Jim | 2012-07-27