Categories
Eclipse Java

Identifier le deadlock d’une application Java

lockLe wiki Eclipse détaille très clairement la procédure pour obtenir un dump de la JVM au moment précis où celle-ci semble soit complétement bloquée, soit tombée dans un mode dans lequel un thread s’est emballé et occupe 100% du CPU…

Pour faire court, si vous avez un JDK 1.6 ou supérieur, il ne vous faudra que quelques secondes pour obtenir un état de la pile, puisqu’il suffit d’exécuter :

  • jps, afin d’obtenir le PID de la JVM qui vous intéresse
  • jstack <pid>, pour obtenir le dump sur la sortie standard

Avec une version de JDK plus ancienne, il faut avoir lancé la JVM (de Sun…) avec l’option -Dcom.sun.management.jmxremote. Cela permet de s’y connecter par la suite avec l’outil jconsole. Bien qu’assez peu contraignante, cette pratique a tout de même l’inconvénient d’obliger à savoir à l’avance que l’application va tomber dans un deadlock, ce qui n’est pas toujours le cas… 😉

Si vous êtes sous Linux, vous avez gagné puisque quelle que soit votre version de Java, un kill -3 <pid_JVM> fonctionnera à coup sûr !

Le wiki détaille d’autres procédures, et notamment comment s’y prendre si l’on veut obtenir le dump d’une application à distance.

Categories
Eclipse

Update sites Eclipse

Parce que j’en ai marre de galérer à chaque fois que je veux retrouver les URLs des entrepôts p2 d’Eclipse 3.4, ou des builds d’intégration de la 3.5, les voici…

Update Site Update Site URL
Integration builds toward 3.5 http://download.eclipse.org/eclipse/updates/3.5-I-builds
Nightly builds toward 3.5 http://download.eclipse.org/eclipse/updates/3.5-N-builds
3.5 milestones http://download.eclipse.org/eclipse/updates/3.5milestones
Maintenance builds toward 3.4.x http://download.eclipse.org/eclipse/updates/3.4.x
3.4.x releases http://download.eclipse.org/eclipse/updates/3.4
3.5.x releases http://download.eclipse.org/eclipse/updates/3.5

Attention, ces entrepôts ne sont pas ceux de Ganymede et de Galileo, ils contiennent simplement le SDK Eclipse !

Categories
Eclipse

Présentation p2 @ Eclipse Now You Can

Voici les transparents de la présentation de p2 que j’ai réalisée aujourd’hui lors de l’évènement Eclipse Now You Can, à Paris.
L’objectif était de présenter les défauts de l’ancien mécanisme de gestion des mises à jour d’Eclipse (l’Update Manager), et d’indiquer comment ils sont corrigés par son remplaçant : p2.
Il est important de comprendre que p2 est à la fois un outil “fini” utilisable par tout développeur voulant simplifier la gestion de ses installations Eclipse, mais aussi –et surtout– une plateforme tout à fait générique pour adresser les multiples problématiques liées au déploiement (et pas nécessairement dans un contexte pur Eclipse…)
Enfin, j’ai énuméré une (petite) partie des évolutions en cours de développement pour la prochaine version d’Eclipse (Galileo) : définition d’une véritable API p2, amélioration de l’utilisabilité, création d’outils pour gérer les entrepôts p2, etc.

NDR : il est possible que votre aggrégateur de flux RSS n’affiche pas correctement l’animation Flash contenant les slides de la présentation, auquel cas je vous invite à consulter ce post directement sur le blog !