Il y a 16 ans -
Temps de lecture 6 minutes
WebLogic Scripting Tools
Dans un post précédent, j’ai expliqué comment exposer un MBean avec Spring dans WebLogic Server 8.1. Je vais vous montrer comment interagir avec ce MBean avec WLST.
WebLogic Scripting Tool (WLST) est un outil en ligne de commande qui permet de surveiller et gérer des instances WebLogic Server. Cet outil de scripting est basé sur le langage Jython[1], une implémentation du langage Python 100% Java. A l’origine, cet outil a été développé pour WebLogic 8.1.x. Il est disponible en version 5.4 [2] sur le site CodeShare, le repository des projets open source liés au monde des serveurs WebLogic. A partir de la version 9.0 de WebLogic Server, WLST a été intégré à la distribution et est complètement supporté par BEA.
Avec WLST il est possible :
- De parcourir la configuration d’un domaine et ses paramètres runtime.
- D’éditer la configuration d’un domaine et de sauvegarder ces modifications.
- D’accéder à l’ensemble des MBean du serveur (MBean WebLogic, MBean WebLogic Integration, Mbean WebLogic Portal, MBean défini par les utilisateurs).
- D’automatiser les procédures de déploiement d’application et de configuration.
Procédure d’installation de WLST pour WebLogic 8.1 :
- Télécharger wlst_v64.zip
- Extraire l’archive dans un répertoire (ex c:\wlst)
- Créer un script de lancement (ex c:\wlst\wlst.cmd)
- Lancer le script wlst.cmd
title WLST
set WL_HOME=D:\bea\bea815\weblogic81
Set JAVA_HOME=D:\bea\bea815\jdk142_08
set WLST_HOME=c:\wlst
set CLASSPATH=%WLST_HOME%\wlst.jar;%WLST_HOME%\jython.jar;%WL_HOME%\server\lib\weblogic.jar
%JAVA_HOME%\bin\java weblogic.WLST %*
Note : pour les utilisateurs d’un serveur WebLogic 9.x, le script de lancement se trouve dans le répertoire %WL_HOME%\common\bin\wlst.cmd
Au lancement vous devez obtenir :
Initializing WebLogic Scripting Tool (WLST) ...
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands
wls:/(offline)>
La première étape est de se connecter à un serveur. Cette action s’effectue avec la commande connect(login, password, url). Si votre domaine comporte un serveur d’admin et des serveurs managés, il est préférable de se connecter au serveur d’administration qui vous donnera l’accès à l’ensemble des serveurs du domaine.
wls:/(offline)> connect('weblogic','weblogic','t3://localhost:7001')
Connecting to weblogic server instance running at t3://localhost:7001 as username weblogic ...
Successfully connected to Admin Server 'myserver' that belongs to domain 'wlsdomain'.
wls:/wlsdomain/config>
A partir de là, vous pouvez parcourir l’ensemble du domaine avec les commandes ls() et cd().
wls:/wlsdomain/config> ls();
La commande affiche les différents paramètres avec leur mode d’accès (r:read, w:write, d: répertoire). Le contenu d’un élément de type d peut etre accédé avec la commande cd()
drw- ApplicationManager
drw- Applications
drw- BasicRealms
drw- BridgeDestination
drw- BridgeDestinationCommon
drw- CachingRealms
drw- Clusters
drw- ConversationService
drw- CustomRealm
…..
-rw- AdministrationMBeanAuditingEnabled false
-rw- AdministrationPort 9002
-rw- AdministrationPortEnabled false
-rw- ArchiveConfigurationCount 5
-r-- CachingDisabled true
...
wls:/wlsdomain/config> cd ('Servers')
wls:/wlsdomain/config/Servers> ls()
drw- myserver
wls:/wlsdomain/config/Servers> cd('ExecuteQueues/weblogic.kernel.Default')
wls:/wlsdomain/config/Servers/myserver/ExecuteQueues/weblogic.kernel.Default>
L’appel à la commande ls() affiche l’ensemble des paramètres liés à la queue d’exécution ‘weblogic.kernel.Default’.
Les commandes get() et set() permettent de manipuler les paramètres des Mbean. En effet, les fonctions offertes par les différentes consoles d’administration de WebLogic Platform ne sont en réalité que des appels à des Mbeans fournis par le serveur WebLogic. Tout ce vous pouvez faire avec la console, vous pouvez le faire avec WLST.
Exemple de modification de la valeur ‘ThreadCount’.
wls:/wlsdomain/config/Servers/myserver/ExecuteQueues/weblogic.kernel.Default> get('ThreadCount')
15
wls:/wlsdomain/config/Servers/myserver/ExecuteQueues/weblogic.kernel.Default> set('ThreadCount','20')
wls:/wlsdomain/config/Servers/myserver/ExecuteQueues/weblogic.kernel.Default> get('ThreadCount')
20
L’une des grandes forces de WLST est sa capacité à exécuter des scripts afin de rendre automatisable l’ensemble des opérations d’administration.
Dans le répertoire d’installation de WLST, créer un fichier texte : ex1.py
connect('weblogic','weblogic','t3://localhost:7001') cd ('/Servers/myserver/ExecuteQueues/weblogic.kernel.Default') print "Afficher le nombre de thread:"+str(get('ThreadCount')) set('ThreadCount','25') disconnect()
Lancez une autre instance de l’interpréteur WLST et exécuter le script ex1.py
wls:/(offline)> execfile('ex1.py')
Connecting to weblogic server instance running at t3://localhost:7001 as username weblogic ...
Successfully connected to Admin Server 'myserver' that belongs to domain 'wlsdomain'.
Afficher le nombre de thread:20
Disconnected from weblogic server: myserver
wls:/(offline)>
Si vous retournez sur le précédent interpréteur WLST et exécutez la commande get(‘ThreadCount’), la valeur ’25’ devrait apparaître.
Le script suivant ex2.py exécute la même opération que ex1.py en définissant une fonction python. Attention, en python, l’indentation fait partie du langage !
def modifierThreadCount(executequeue, valeur): cd ('/Servers/myserver/ExecuteQueues/'+executequeue) print "Afficher le nombre de thread:"+str(get('ThreadCount')) set('ThreadCount',valeur) connect('weblogic','weblogic','t3://localhost:7001') modifierThreadCount('weblogic.kernel.Default',15) disconnect()
wls:/(offline)> execfile('ex2.py')
Revenons à notre MBean développé précédemment. WLST permet de manipuler non seulement les MBeans BEA mais également nos propres MBeans. Le script suivant recherche les MBeans à partir d’un nom (), de lire et modifier les attributs.
def manipulation(): #recherche de tous les MBeans qui portent le nom 'testBean', quelque soit le package. testBeans = mbs.queryMBeans(ObjectName("*:*,name=testBean"), None) #parcours de la liste de resultat for tb in testBeans: #affichage de l'objectName objectName = tb.getObjectName() print 'ObjectName : '+str(objectName) print 'Lecture des Attributs Age et Name' age = mbs.getAttribute(objectName,"Age"); name = mbs.getAttribute(objectName,"Name"); print "Age="+str(age)+", Name="+name #Modification des valeurs print "Modification de l'attribut Name" mbs.setAttribute(objectName,Attribute('Name','J2EE')); print "La nouvelle valeur de l'attribut Name est "+mbs.getAttribute(objectName,"Name") connect('weblogic','weblogic','t3://localhost:7001') manipulation() disconnect()
Différentes remarques :
- Ce script est la transposition de la classe de test Java test.xebia.management.JMXClient3
- La recherche n’est pas limitée au nom d’un Mbean, il est également possible d’effectuer des recherches par type
- La variable ‘mbs’ est une variable globale définie par WLST, elle correspond à la position courante dans la hiérarchie des MBeans. L’ensemble des variables est documenté sur cette page[4]
L’exécution de ce script donne le résultat suivant :
wls:/(offline)> execfile('ex3.py')
Connecting to weblogic server instance running at t3://localhost:7001 as username weblogic ...
Successfully connected to Admin Server 'myserver' that belongs to domain 'wlsdomain'.
ObjectName : bean:name=testBean
Lecture des Attributs Age et Name
Age=2, Name=xebia
Modification de l'attribut Name
La nouvelle valeur de l'attribut Name est J2EE
Disconnected from weblogic server: myserver
wls:/(offline)>
L’ajout de WLST à la plateforme WebLogic est une bonne évolution vers une réelle industrialisation des serveurs d’applications de la gamme BEA. Il existe un autre mode d’interaction proposé par WLST : WLST Offline. Il permet de créer et de paramétrer des domaines WebLogic sans être connecté. Ce mode est l’équivalent de ce que propose le domaine ‘Wizard’.
Source: scripts WLST [zip]
Référence:
[1] http://www.jyton.org
[2] WLST 8.4 pour WLS 8.1
https://codesamples.projects.dev2dev.bea.com/servlets/Scarab?id=S13
[3] Documentation 9.x
http://e-docs.bea.com/wls/docs90/config_scripting/using_WLST.html
[4] WLST Variable Reference
http://e-docs.bea.com/wls/docs92/config_scripting/reference.html#wp1178147
Commentaire
1 réponses pour " WebLogic Scripting Tools "
Comments are closed.
Published by jeannajet , Il y a 12 ans
Bonjour,
je cherche un tutoriel sur Weblogic ou un livre numerique
merci de m’adresser un lien .
Cordialement