2010-10-08 8 views
2

J'ai un processus de serveur Java qui effectue un traitement lourd. Il arrête par intermittence le traitement, comme dans le journal s'arrête, et l'activité cesse mais le processus est toujours actif.Lorsque Java débogue ce qui pourrait provoquer le blocage de mon processus

Je l'ai eu lors du débogage quelques fois. Quand c'est le cas, je clique sur pause/pause dans le débogueur pour que je puisse inspecter les threads en cours et chercher la cause de l'arrêt. Mais le bouton de pause ne pénètre pas dans le programme comme il le fait normalement, se trouve juste là. J'utilise IntelliJ IDEA mais je ne suis pas sûr que ce soit l'IDE ou la JVM qui pose problème.

J'essaie d'entrer dans le programme avant que le problème ne se produise et cela fonctionne très bien, le processus s'arrête et je peux vérifier la liste des threads.

Est-ce que quelqu'un sait pourquoi une machine virtuelle Java ne répond pas à une pause/pause de débogage? Et comment cela pourrait-il entrer dans cette situation? Je suis un peu coincé car je n'ai aucun moyen de diagnostiquer ce problème sans pouvoir voir l'état du programme quand il est cassé. Les journaux menant au problème ne montrent aucun problème.

+0

J'ai vu ce comportement étrange en utilisant le débogueur dans IntelliJ. IntelliJ est mon éditeur préféré, mais je dirais que eclipde et netbeans ont de meilleurs débogueurs. J'ai trouvé le soutien d'IntelliJ très réactif. http://www.jetbrains.com/support/idea/ –

Répondre

1

Pouvez-vous vous connecter avec JVisualVM? Votre CPU est à 100%? Nous avons eu un problème égal. L'application était stop. JVisualVM n'est plus connecté. Le vidage de thread avec jstack montre que tous les threads sont battus (pas de différences entre plusieurs vidages de threads) mais la VM consomme 100% de CPU. Nous avons changé le matériel et le problème a été résolu. Nous avons pensé que c'était un problème de RAM et que la collecte des ordures courait dans une boucle sans fin. Mais ce n'est qu'une théorie.

S'il vous plaît me mettre à jour si vous pouvez résoudre le problème.

+0

Cela ne s'est pas reproduit depuis que j'ai posté ceci. Si cela se reproduit et que nous arrivons au fond, je posterai une mise à jour. –