IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Introduction à CRaSH
Un shell pour superviser une machine virtuelle Java, application à la visualisation d'un cache, par Damien Rieu

Le , par drieu13

0PARTAGES

2  0 
Bonjour,

Vous trouverez un article sur CRaSH à cette adresse : http://damienrieu.developpez.com/art...hcache_spring/

CRaSH permet de se connecter à une JVM en mode Shell puis d'exécuter des commandes directement sur cette JVM. Ainsi, nous allons accéder à un certain nombre de commandes prédéfinies (exemple la commande thread, jdbc, java…).
Une des grandes forces de CRaSH est que l'on peut aussi définir ses propres commandes Shell par programmation (Syntaxe Java ou Groovy). Il est alors possible de réaliser des commandes spécifiques à nos besoins !
Dans cette article, nous allons présenter CRaSH grâce à un cas pratique. Pour cela, nous allons réaliser une commande CRaSH d'affichage d'un cache puis nous intègrerons cette commande dans notre application démo.
Nous montrerons ensuite comment utiliser cette commande à l'aide de CRaSH.

Si vous avez des questions ou des remarques sur cet article, profitez de cette discussion.

J'espère que cet article vous fera découvrir CRaSH et vous aura donné envie d'en savoir plus sur CRaSH.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de drieu13
Membre confirmé https://www.developpez.com
Le 26/11/2012 à 9:26
Pour vous incitez à poster des commentaires, je vais essayer de vous donner quelques précisions :
- Vous accéder au coeur de la JVM en mode Shell.
- Vous pouvez vous connecter sur n'importe quel JVM et la monitorer.
- Vous créer des commandes (Java ou Groovy) pour vos propres besoins (dans l'article on va voir les valeurs d'un cache ehcache)

De plus , depuis la version 1.2, il existe la possibilité de faire des dashboards personnalisés (la commande Linux Top mais adaptée à vos besoins !) et il existe aussi
un plugin Visual VM. (Plus d'infos sur http://www.crashub.org/)

Avez-vous des questions sur l'article ? sur CRaSH ?
0  0 
Avatar de hwoarang
Membre chevronné https://www.developpez.com
Le 26/11/2012 à 14:03
Ca a l'air interessant. Par contre, j'ai jeté un oeil à l'article et au site de crash mais il ne semble pas etre possible d'utiliser l'outil hors des services web ? Par exemple pour une appli java ou bien une applet ? C'est dommage...
0  0 
Avatar de drieu13
Membre confirmé https://www.developpez.com
Le 26/11/2012 à 14:50
Merci pour le commentaire,
En fait, l'outil peut se connecter sur n'importe quel JVM.Il suffit d'avoir le PID de l'application (avec la commande jps du JDK)
Ensuite, Il suffit de faire :

./crash.sh PID
Est ce que je répond bien à la question ?
0  0 
Avatar de drieu13
Membre confirmé https://www.developpez.com
Le 26/11/2012 à 16:15
Je complète ma réponse :

CRaSH peut etre embarqué dans une application Java non serveur.Il y actuellement 2 exemples : le mode standalone mode ou le mode Spring.Pour l'embarquer dans une application Java non serveur, il existe une classe Bootstrap.
Cependant, la manière de l'embarquer en utilisant la classe Boostrap n'est pas documentée aujourd'hui.
Pour plus d'information :

0  0 
Avatar de hwoarang
Membre chevronné https://www.developpez.com
Le 26/11/2012 à 17:00
Dans ce cas, ca m'interesse
Va falloir que je jette un oeil des que j'aurais l'occasion.

Merci pour le tuto (lu en diagonale pour l'instant mais qui a l'air bien fait)

Si je peux me permettre une petite remarque, je dirais que dans le tuto, j'aurais mis dans l'introduction des exemples de cas que crash peut debugger (par exemple thread en deadlock j'imagine). Parce que la, le sujet est tres technique et ca peut aider de savoir un peu plus précisement ou on met les pieds
0  0 
Avatar de drieu13
Membre confirmé https://www.developpez.com
Le 26/11/2012 à 21:48
Merci pour le conseil Je vais voir comment ajouter cela.

Autre point que je n'ai pas invoqué, il est possible de tester les fonctionnalités de base de CRaSH directement sur Internet (http://crash.vietj.cloudbees.net/).
Cela peut peut aider à se faire une idée sur CRaSH sans rien avoir installer (encore que l'installation de CRaSH se résume à décompresser un zip )

Si d'autres personnes ont des commentaires sur l'article, n'hésitez pas ! Toutes les questions sont les bienvenues

ps : Si il y a des fonctionnalités que vous souhaiteriez voir, vous pouvez aussi le poster, je transmettrai !
0  0 
Avatar de Robin56
Modérateur https://www.developpez.com
Le 02/12/2012 à 17:04
Je suis totalement d'accord avec le conseil. Dans ton tutoriel, tu te sers de CRaSH pour faire surtout du traçage/débuggage en visualisant ce qu'il y a dans le cache d'après ce que je comprends.

Du coup comme l'a fait remarquer hwoarang, j'aimerais savoir s'il y a d'autres avantages à se servir de CRaSH via des exemples concrets.

En tout cas merci pour ce tutoriel et bravo pour ta contribution à cet outil.
0  0 
Avatar de drieu13
Membre confirmé https://www.developpez.com
Le 03/12/2012 à 12:10
Merci pour ton commentaire
En faite, suite aux conseils de hwoarang, j'ai rajouté un lien vers la démo en ligne car je trouve qu'elle permet de tester directement les commandes de base et je pense de se faire une idée.
Pour l'instant, CRaSH n'a pas encore beaucoup d'exemples concrets car c'est un projet encore jeune.Ce que l'on peut dire par contre, c'est que CRaSH offre énormément de possibilités car on peut programmer ses propres commandes !

Sinon, voici des cas d'utilisations que j'imagine pour CRaSH :

- Modification des valeurs en live :
Dans le cas de l'article par exemple, on pourrait modifier la commande pour mettre à jour les caches ou pour ajouter des données dans le cache.
On pourrait imaginer l'utiliser par exemple dans un contexte d'intégration pour mettre à jour des properties, des caches ...

- Dans son application en développement, on pourrait par exemple réaliser des commandes spécifiques à ses besoins.
En ce moment, j'utilise un projet qui fait des Jobs (framework Play).J'aimerais par exemple avoir une commande qui me donne plus de détails sur les jobs en cours et leurs valeurs ....

- Remplacement de la console JMX :
Il y a une commande JMX qui permet de visualiser les métriques JMX et de les modifier.
On pourrait par exemple faire sa propre commande de mise à jour de métriques.

- Utilisation de la commande JPA pour accèder aux entities.

- Monitoring/Debugging : Depuis la version 1.2, il existe la possibilité de faire des dashboards (similaire à la commande unix top) personnalisés
Il existe aussi un plugin JVisualVM.

Voici aussi le lien sur la présentation faite à Devoxx avec quelques exemples d'utilisations : http://blog.julienviet.com/2012/11/1...xx-university/

Voilà, j'espère avoir répondu à ta question
0  0 
Avatar de spiderdev
Nouveau Candidat au Club https://www.developpez.com
Le 11/12/2012 à 18:19
Bonsoir

Dommage que les exports PDF... soient tous mort.

Tony
0  0 
Avatar de drieu13
Membre confirmé https://www.developpez.com
Le 11/12/2012 à 23:03
Merci pour la remarque
C'est corrigé
0  0