Configuration d'une bibliothèque partagée à l'aide de scripts
Vous pouvez utiliser le scriptage pour configurer une bibliothèque partagée pour des serveurs d'applications. Les bibliothèques partagées sont des fichiers utilisés par plusieurs applications. Créez des bibliothèques partagées afin de réduire le nombre de fichiers de bibliothèque en double sur votre système.
Avant de commencer
Vous disposez de deux solutions pour mener à bien cette tâche. Grâce à l'exemple proposé dans cette rubrique, vous allez créer et configurer une bibliothèque partagée à l'aide de l'objet AdminConfig. Mais vous pouvez aussi configurer des bibliothèques partagées à l'aide du script createSharedLibrary de la bibliothèque de scripts AdminResources.
La bibliothèque de scripts propose un ensemble de procédures permettant d'automatiser les fonctions d'administration les plus courantes. Vous pouvez exécuter chaque procédure de script individuellement ou combiner plusieurs procédures pour développer rapidement de nouveaux scripts.
Procédure
- Démarrez l'outil de scriptage wsadmin.
- Identifiez le serveur et affectez-le à la variable server. Exemple :
A l'aide de Jacl :
set serv [$AdminConfig getid /Cell:mycell/Node:mynode/Server:server1/]
- Avec Jython :
serv = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:server1/') print serv
Tableau 1. Eléments de la commande getid. Le tableau suivant décrit chaque élément de la commande getid. Elément Description set est une commande Jacl serv est un nom de variable $ est un opérateur Jacl permettant de remplacer un nom de variable par sa valeur AdminConfig est un objet représentant la configuration WebSphere Application Server getid est une commande AdminConfig Cell est un attribut mycell est la valeur de l'attribut Node est un attribut mynode est la valeur de l'attribut Server est un attribut serveur1 est la valeur de l'attribut Exemple de sortie :server1(cells/mycell/nodes/mynode/servers/server1|server.xml#Server_1)
- Créez la bibliothèque partagée sur le serveur.
Les exemples suivants expliquent comment créer la bibliothèque partagée en utilisant le langage Jacl ou Jython.
A l'aide de Jacl :
$AdminConfig create Library $serv {{name mySharedLibrary} {classPath c:/mySharedLibraryClasspath}}
$AdminConfig create Library $serv {{name mySharedLibrary} {classPath /mySharedLibraryClasspath}}
$AdminConfig create Library $serv {{name mySharedLibrary} {classPath /home/myProfile/mySharedLibraryClasspath}}
Avec Jython :
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', 'c:/mySharedLibraryClasspath']])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', '/mySharedLibraryClasspath']])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', 'home/myProfile/mySharedLibraryClasspath']])
Eviter les incidents:
- Si vous utilisez Jython et que le chemin d'accès aux classes ne contient pas
d'espace, vous pouvez utiliser un point-virgule (;) ou un espace comme
séparateur. Exemple :
ouAdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath','test1.jar;test2.jar;test3.jar']])
AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath','test1.jar test2.jar test3.jar']])
- Si vous utilisez Jacl et que le chemin d'accès aux
classes contient un ou plusieurs espaces, vous devez ajouter des
accolades ou des guillemets supplémentaires autour du chemin d'accès
aux classes. Exemple :
or$AdminConfig create Library $serv {{name mySharedLibrary} {classPath {c:/Program Files/JDBC Driver/test.jar}}}
$AdminConfig create Library $serv {{name mySharedLibrary} {classPath "c:/Program Files/JDBC Driver/test.jar"}}
- Si vous utilisez Jython et que le chemin d'accès aux classes contient
un ou plusieurs espaces, vous devez utiliser un point-virgule (;) comme séparateur. Exemple :
ou s'il existe uniquement un chemin d'accès :AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath','c:/Program Files/JDBC Driver/test.jar;a.jar']])
AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath','test1.jar test2.jar test3.jar']])
- Si vous utilisez Jython et que le chemin d'accès aux classes
contient un ou plusieurs espaces, vous devez ajouter des
crochets ou des guillemets supplémentaires autour du chemin d'accès aux classes. Exemple :
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [['classPath', 'c:/Program Files/JDBC Driver/test.jar']]])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [['classPath', '/Program Files/JDBC Driver/test.jar']]])
ouprint AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [['classPath', 'home/myProfile/Program Files/JDBC Driver/test.jar']]])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', "'c:/Program Files/JDBC Driver/test.jar'"]])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', "'/Program Files/JDBC Driver/test.jar'"]])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', "'home/myProfile/Program Files/JDBC Driver/test.jar'"]])
- Avec Jython, si le chemin d'accès aux classes contient plusieurs
chemins, vous pouvez utiliser la syntaxe de liste ou la syntaxe de
chaîne délimitée par un point-virgule pour indiquer les chemins
d'accès aux classes.
Avec la syntaxe de liste :
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath [test1.jar test2.jar test3.jar]]]')
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar test2.jar test3.jar]]]')
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar test2.jar test3.jar]]]')
Avec la syntaxe de chaîne délimitée par un point-virgule :
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath,'test1.jar;test2.jar;test3.jar']])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath,'test1.jar;test2.jar;test3.jar']])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath,'test1.jar;test2.jar;test3.jar']])
- Avec Jython, si le chemin d'accès aux classes contient plusieurs
chemins et que l'un de ces chemins d'accès aux classes contient un ou
plusieurs espaces, placez des guillemets autour de la chaîne du
chemin contenant les espaces. Exemple :
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath [test1.jar "C:/Program Files/JDBC Driver/test.jar" test3.jar]]]')
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar "C:/Program Files/JDBC Driver/test.jar" test3.jar]]]')
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar "C:/Program Files/JDBC Driver/test.jar" test3.jar]]]')
Tableau 2. Eléments de la commande create Library. Le tableau suivant décrit chaque élément de la commande create library. Elément Description $ est un opérateur Jacl permettant de remplacer un nom de variable par sa valeur AdminConfig est un objet représentant la configuration WebSphere Application Server Créer est une commande AdminConfig Bibliothèque est un attribut serv a pour valeur l'ID de l'objet Deployment spécifié à l'étape numéro 1 name est un attribut mySharedLibrary est une valeur de l'attribut name classPath est un attribut /mySharedLibraryClasspath est la valeur de l'attribut classpath print est une commande Jython Exemple de sortie :MysharedLibrary(cells/mycell/nodes/mynode/servers/server1|libraries.xml#Library_1)
- Identifiez le serveur d'applications à partir du serveur et affectez-le à la variable appServer. Exemple :
Avec Jacl :
set appServer [$AdminConfig list ApplicationServer $serv]
- Avec Jython :
appServer = AdminConfig.list('ApplicationServer', serv) print appServer
Tableau 3. Eléments de la commande list. Le tableau suivant décrit chaque élément de la commande create list. Elément Description set est une commande Jacl appServer est un nom de variable $ est un opérateur Jacl permettant de remplacer un nom de variable par sa valeur AdminConfig est un objet représentant la configuration WebSphere Application Server list est une commande AdminConfig ApplicationServer est un attribut serv a pour valeur l'ID de l'objet Deployment spécifié à l'étape numéro 1 print est une commande Jython Exemple de sortie :server1(cells/mycell/nodes/mynode/servers/server1|server.xml#ApplicationServer_1
- Identifiez le chargeur de classe dans le serveur d'applications et affectez-le à la
variable classLoader .
Exemple :
- Pour utiliser le chargeur de classe existant associé au serveur,
les commandes suivantes utilisent le premier chargeur de classe :
A l'aide de Jacl :
set classLoad [$AdminConfig showAttribute $appServer classloaders] set classLoader1 [lindex $classLoad 0]
- Avec Jython :
classLoad = AdminConfig.showAttribute(appServer, 'classloaders') cleanClassLoaders = classLoad[1:len(classLoad)-1] classLoader1 = cleanClassLoaders.split(' ')[0]
Tableau 4. Eléments de la commande showAttribute. Le tableau suivant décrit chaque élément de la commande showAttribute. Elément Description set est une commande Jacl classLoad, classLoader1 est un nom de variable $ est un opérateur Jacl permettant de remplacer un nom de variable par sa valeur AdminConfig est un objet représentant la configuration WebSphere Application Server showAttribute est une commande AdminConfig appServer a pour valeur l'ID du serveur d'applications spécifié à l'étape numéro 3 classloaders est un attribut print est une commande Jython - Pour créer un chargeur de classe, exécutez la commande suivante :
A l'aide de Jacl :
set classLoader1 [$AdminConfig create Classloader $appServer {{mode PARENT_FIRST}}]
- Avec Jython :
classLoader1 = AdminConfig.create('Classloader', appServer, [['mode', 'PARENT_FIRST']])
Tableau 5. Eléments de la commande create Classloader. Le tableau suivant décrit chaque élément de la commande create Classloader. Elément Description set est une commande Jacl classLoader1 est un nom de variable $ est un opérateur Jacl permettant de remplacer un nom de variable par sa valeur AdminConfig est un objet représentant la configuration WebSphere Application Server Créer est une commande AdminConfig Classloader est un attribut appServer a pour valeur l'ID du serveur d'applications spécifié à l'étape numéro 3 mode est un attribut PARENT_FIRST est la valeur de l'attribut print est une commande Jython Exemple de sortie :(cells/mycell/nodes/mynode/servers/server1|server.xml#Classloader_1)
- Pour utiliser le chargeur de classe existant associé au serveur,
les commandes suivantes utilisent le premier chargeur de classe :
- Associez la bibliothèque partagée créée avec le serveur d'applications via le chargeur de classe. Exemple :
A l'aide de Jacl :
$AdminConfig create LibraryRef $classLoader1 {{libraryName MyshareLibrary}}
- Avec Jython :
print AdminConfig.create('LibraryRef', classLoader1, [['libraryName', 'MyshareLibrary']])
Tableau 6. Eléments de la commande create LibraryRef. Le tableau suivant décrit chaque élément de la commande create LibraryRef. Elément Description $ est un opérateur Jacl permettant de remplacer un nom de variable par sa valeur AdminConfig est un objet représentant la configuration WebSphere Application Server Créer est une commande AdminConfig LibraryRef est un attribut classLoader1 évalue l'ID du chargeur de classe spécifié à l'étape 4 libraryName est un attribut MyshareLibrary est la valeur de l'attribut print est une commande Jython Exemple de sortie :(cells/mycell/nodes/mynode/servers/server1|server.xml#LibraryRef_1)
- Sauvegardez les modifications de configuration. Entrez l'exemple de commande suivante pour sauvegarder les modifications de configuration :
AdminConfig.save()
- Synchronisez le noeud. Utilisez les scripts syncActiveNode ou syncNode de la bibliothèque de scripts AdminNodeManagement pour propager les modifications de configuration sur un ou plusieurs noeudsµµ.
- Utilisez le script syncActiveNodes pour propager les modifications sur chacun des noeuds dans la cellule, comme dans l'exemple suivant :
AdminNodeManagement.syncActiveNodes()
- Utilisez le script syncNode pour propager les modifications sur un noeud spécifique, comme dans l'exemple suivant :
AdminNodeManagement.syncNode("myNode")
- Utilisez le script syncActiveNodes pour propager les modifications sur chacun des noeuds dans la cellule, comme dans l'exemple suivant :


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_library
Nom du fichier : txml_library.html