Tengo una aplicación java que se cuelga la mitad del tiempo y la otra mitad se cuelga. ¿Existe alguna herramienta que pueda usar para ver qué sucede y qué hace que se cuelgue o se cuelgue? Estoy usando CentOS 5.6Herramienta para eliminar errores en la aplicación java
Respuesta
Hay dos casos diferentes.
Caída de la aplicación: ¿Era eso un OOM? NPE? ¿Cuál fue la excepción? Si hubo una falla de jvm, verá hs_err_.log (http://java.sun.com/j2se/1.5/pdf/jdk50_ts_guide.pdf)
Mirando el archivo que puede ver si su propia JNI causó un fallo o error de JVM.
Caída de la aplicación: Comenzaría con visualvm o jstat (ambos son parte de JDK). Se puede ver el estado actual de las discusiones y comprobar si hay algún error de aplicación ..
Otras herramientas de Linux que podrían ayudar a ver el interior de proceso:
- lsof: se puede comprobar si el proceso abierto demasiado muchos archivos
- strace: vea la actividad actual desde el punto de vista de la llamada del sistema.
Oracle tools documentation proporciona un buen listado ordenado. También enlaza Operating System Specific tools
Para empezar, sugeriría JVisualVM. Viene con el JDK, por lo que solo debe escribir jvisualvm
en la línea de comando para iniciarlo.
Una vez que se inicia, puede conectarse a una JVM en ejecución, por lo que debería poder conectarse a su proceso Java suspendido e inspeccionar el volcado de pila para todos sus subprocesos en ejecución y el contenido del montón.
Otras herramientas integradas útiles incluyen:
jps
identificadores de proceso listas de funcionamiento de los procesos Java
jstack
imprime un volcado de pila para cada hilo en el proceso JVM especificada
jmap
genera una volcado de pila para el proceso de JVM especificado (jvisualvm también puede generar volcados de pila)
jhat
analiza los volcados del montón generados con jmap o jvisualvm
Por supuesto, también hay perfiladores más sofisticados disponibles. JProfiler es muy apreciado.
En estos casos (colgar, congelar, ...) tiene que analizar un volcado de almacenamiento dinámico para tratar de descubrir qué está sucediendo en su aplicación, puede usar JVisualVM para realizar el volcado, o puede agregue el parámetro de JVM apropiado para volcar el contenido del montón en el caso de un bloqueo.
- 1. Herramienta para eliminar dependencias innecesarias en un proyecto Java
- 2. ¿Cuál es la mejor herramienta para encontrar errores en el código de Java?
- 3. ¿Alguna herramienta para detectar errores tontos en el código C?
- 4. Herramienta de LINQ para Java
- 5. Herramienta agregante para múltiples rastreadores heterogéneos de errores/problemas?
- 6. Cómo eliminar errores (subrayados rojos) en D2007
- 7. Herramienta/Aplicación para calcular primero y seguir conjuntos
- 8. Instalador para la aplicación Java
- 9. MVC3 Eliminar errores de ModelState
- 10. Eliminar moldes redundantes en Java
- 11. Herramienta para analizar volcados de memoria de la aplicación .NET
- 12. Herramienta de prueba de rendimiento para la aplicación de iPhone
- 13. Una herramienta como ReSharper, pero para Java?
- 14. Herramienta para crear un servicio demonio Java en Linux
- 15. ¿Alguna herramienta similar a la aplicación Hyperterminal?
- 16. hibernación - eliminar HQL en la herramienta Eclipse hibernación
- 17. (2009) - Herramienta para deobfuscate códigos Java
- 18. herramienta para la gestión y java refactorización .properties
- 19. Agregar la herramienta de giro en jDialog en java
- 20. ¿Cuál es la mejor herramienta de instalación para Java?
- 21. ¿Cómo agrupar la aplicación Java para Mac/Windows?
- 22. Herramienta para diagnosticar fugas de memoria en .NET (aplicación ASP.NET)
- 23. Buscador de errores de rendimiento de Java
- 24. ¿Herramienta para visualizar el flujo de código en Java?
- 25. ¿Cuáles son tus mejores consejos para eliminar errores?
- 26. Herramienta para generar flujo de control en Java
- 27. buscador de clase Java Herramienta
- 28. shutdown hook para la aplicación web java
- 29. Herramienta para leer y visualizar versiones .class de Java
- 30. ¿Recomendaciones para una herramienta de análisis de montón para Java?
@ Bubby4j: ¿Pudiste averiguar el motivo del accidente? ¿Eso tenía algo que ver con el os? Voy a evaluar centos para desplegar nuestra herramienta, una basada en Java. – Jayan
Fue un problema con openvz. –