Websphere : Sous Linux comment changer un paramètre personnalisé de la JVM

Quand vous avez une JVM, ou encore 2 ou 3, vous pouvez modifier manuellement un paramètre de la JVM sans problème via la console d’admin. Par contre si vous avez des trentaines voire plus de JVM à modifier, autant utiliser un script jython. C’est ce que je cherchais, un moyen d’automatiser et de sécuriser cette modification. En effet, via l’interface graphique de la console d’admin, une JVM est vite oubliée.

J’ai trouvé un script sur le site d’IBM DeveloperWorks, il suffit de lui passer quelques paramètres et le tour est joué.

Procédure :

  1. Vous déposez le script sur le serveur qui héberge le DMGR, la console d’admin.
  2. Vous lancez le script en indiquant bien le login et le mot de passe pour se connecter à la console wsadmin (en ligne de commande)
    • Paramètre possible : all => modifier toutes les JVMs websphere
    • Paramètre myNode:myServer => modifier une JVM d’un noeud précis
    • Paramètre myServer => modifier une JVM précise
  3. Vous vérifiez sur votre console d’admin graphique que la modification a bien été réalisée

Bien sûr vous pouvez englober le script dans un script shell global avec une boucle for ou juste une liste précise des JVMs à modifier.

Source : 

Script addJVMProperty.py sur IBM developerWorks

IBM Heap Analyzer : Comment allouer plus de mémoire pour l’analyse d’un dump ?

Quand vous tentez d’analyser un dump avec l’outil IBM Heap Analyzer, vous avez souvent cette erreur :

Ceci est dû au fait que vous n’avez pas alloué assez de mémoire pour analyser votre heap dump. C’est gênant car vous voulez justement analyser une trace mémoire… dû à un plantage java.

Comment faire pour allouer plus de mémoire et ce en ligne de commande sans toucher aux fichiers de configuration ?

Il suffit de modifier les paramètres Xmx et Xms lors du lancement de votre .jar  :

java -Xmx6192M -Xms6192M -jar /tmp/ha456.jar

 

Comment lancer un script jython sous websphere ?

Le jython, c’est du python pour Java. Vous pouvez lancer des scripts python à partir de l’utilitaire wsadmin.sh. Cet utilitaire vous permet de lancer n’importe quelle tâche d’administration : stop/startNode, stop/startServer ou encore des stop/startManager…

cheminDuWebsphere/bin/wsadmin.sh optionsDeConnexionAuWebsphere -lang jython -f test.jy
ou
cheminDuWebsphere/bin/wsadmin.sh optionsDeConnexionAuWebsphere -lang jython -f test.py

Les options de connexion au websphere sont notamment le login, le mot de passe, le port de connexion SOAP. Il peut y avoir d’autres paramètres, cela dépend de votre environnement.

Pour administrer un websphere vous disposez de tout un tas d’objets et de méthodes par exemple :
– pour afficher le nom de la cellule
print AdminControl.getCell()
– pour afficher le nom d’hôte, le nom du serveur
print AdminControl.getHost()
– pour installer une application, il faut fournir toute une série de paramètres puis lancer :
AdminApp.install(cheminDeLApplication, parametres)

Cet article est un aperçu de ce que vous pouvez faire en jython, je vous invite néanmoins à regarder les liens ci-dessous.

Sources :
https://www.vincentliefooghe.net/content/arr%C3%AAt-relance-lapplication-itim-ligne-commande
http://www.ibm.com/support/knowledgecenter/fr/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/txml_script.html
http://www.ibm.com/support/knowledgecenter/fr/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/cxml_jython.html
http://www.ibm.com/support/knowledgecenter/SSAW57_8.0.0/com.ibm.websphere.nd.doc/info/ae/ae/rxml_admincontrol.html
http://www.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/rxml_taskoptions.html

Tutoriels java sur slideshare

Il y a différentes manières d’apprendre le langage java. Un collègue m’a conseillé les présentations powerpoint hébergées sur le site slideshare. Vous trouverez donc ci-dessous quelques unes des présentations que j’ai lues.

La première présentation est en anglais, elle est adaptée aux débutants car elle reprend aussi les principes de la programmation.

 

Cette deuxième présentation en français n’est pas destinée aux programmeurs java, elle concernerait plus les administrateurs système. Le but de cette présentation est de nous apprendre comment optimiser la gestion de la mémoire de la JVM. Vous y trouverez des notions comme le garbage collector, le throughput ou encore heap.

Dans cette troisième présentation dédiée au garbage collector, vous entendrez parler de minor GC, de full GC, de survivor space… Rassurez-vous, même si cette présentation est en anglais, elle vous sera très utile pour comprendre comment le garbage collector fonctionne, comment il gère la mémoire. On y trouve des conseils sur l’allocation mémoire, par exemple, il est préconisé de créer des « petits » objets avec des durées de vie courtes. Le mécanisme de fuite mémoire y est notamment détaillé. Dans cette présentation, vous trouverez aussi des conseils pour bien gérer la mémoire : ne pas forcer le lancement du garbage collector (System.gc()), utiliser le bloc finally dans la programmation java (gestion des fichiers, gestion bases de données), … Elle mentionne quelques outils de base pour le monitoring : jconsole, jstat, jmap, jhat

Je vous laisse, je retourne sur le site slideshare :)