Publié par

Il y a 12 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 :

  1. Télécharger wlst_v64.zip
  2. Extraire l’archive dans un répertoire (ex c:\wlst)
  3. Créer un script de lancement (ex c:\wlst\wlst.cmd)
  4. 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 %*

  5. Lancer le script wlst.cmd

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();
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
...
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()
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

Publié par

Publié par Xebia France

Xebia est un cabinet de conseil international spécialisé dans les technologies Big Data, Web, les architectures Java et la mobilité dans des environnements agiles. Depuis plus de 15 ans, nous avons la volonté de partager notre expertise et nos actualités à travers notre blog technique.

Commentaire

1 réponses pour " WebLogic Scripting Tools "

  1. Publié par , Il y a 8 ans

    Bonjour,
    je cherche un tutoriel sur Weblogic ou un livre numerique
    merci de m’adresser un lien .
    Cordialement

Les commentaires sont fermés.

Nous recrutons

Être un Xebian, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.