Gemeinsam genutzte Bibliothek mit Scripting konfigurieren
Mit Scripting können Sie eine gemeinsam genutzte Bibliothek für Anwendungsserver konfigurieren. Gemeinsam genutzte Bibliotheken sind Dateien, die von mehreren Anwendungen verwendet werden. Sie erstellen eine gemeinsam genutzte Bibliothek, um die Anzahl doppelt vorhandener Bibliotheksdateien auf Ihrem System zu verringern.
Vorbereitende Schritte
Es gibt zwei Methoden für die Ausführung dieser Aufgabe. In dem Beispiel in diesem Artikel wird das Objekt "AdminConfig" verwendet, um eine gemeinsam genutzte Bibliothek zu erstellen und zu konfigurieren. Alternativ können Sie das Script "createSharedLibrary" aus der Scriptbibliothek "AdminResources" verwenden, um gemeinsam genutzte Bibliotheken zu konfigurieren.
Die Scripting-Bibliothek enthält eine Reihe von Prozeduren für die Automatisierung der am häufigsten verwendeten Verwaltungsfunktionen. Sie können jede Scriptprozedur einzeln ausführen oder mehrere Prozeduren kombinieren, um auf schnelle Weise neue Scripts zu entwickeln.
Vorgehensweise
- Starten Sie das wsadmin-Scripting-Tool.
- Identifizieren Sie den Server, und ordnen Sie ihn der Variablen "server" zu. Beispiel:
Mit Jacl:
set serv [$AdminConfig getid /Cell:mycell/Node:mynode/Server:server1/]
- Mit Jython:
serv = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:server1/') print serv
Tabelle 1. Elemente des Befehls "getid". In der folgenden Tabelle sind die einzelnen Elemente des Befehls "getid" beschrieben. Element Beschreibung set Jacl-Befehl serv Variablenname $ Ein Jacl-Operator, der einen Variablennamen durch den Wert der Variablen ersetzt AdminConfig Objekt, das die Konfiguration von WebSphere Application Server darstellt getid AdminConfig-Befehl Cell Attribut mycell Wert des Attributs Node Attribut mynode Wert des Attributs Server Attribut server1 Wert des Attributs Beispielausgabe:server1(cells/mycell/nodes/mynode/servers/server1|server.xml#Server_1)
- Die gemeinsam genutzte Bibliothek auf dem Server erstellen.
Im Folgenden sehene Sie Beispiele für die Erstellung der gemeinsam genutzten Bibliothek mit Jacl oder Jython.
Mit 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}}
Mit 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']])
Fehler vermeiden:
- Wenn Sie Jython verwenden und der Klassenpfad keine Leerzeichen enthält, können Sie ein Semikolon
(;) oder ein Leerzeichen als Trennzeichen verwenden.
Beispiel:
oderAdminConfig.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']])
- Wenn Sie Jacl verwenden und der Klassenpfad Leerzeichen enthält, müssen Sie den Klassenpfad in geschweifte Klammern oder Fragezeichen einschließen.
Beispiel:
oder$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"}}
- Wenn Sie Jython verwenden und der Klassenpfad Leerzeichen enthält, müssen Sie ein
Semikolon (;) als Trennzeichen verwenden. Beispiel:
oder (falls nur ein Pfad existiert):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']])
- Wenn Sie Jython verwenden und der Klassenpfad Leerzeichen enthält, müssen Sie den Klassenpfad in eckige Klammern oder Fragezeichen einschließen.
Beispiel:
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']]])
oderprint 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'"]])
- Wenn Sie Jython verwenden und der Klassenpfad mehrere Pfade enthält, können Sie
die Listensyntax oder Zeichenfolgesyntax mit Semikolons als Begrenzern verwenden, um diese Klassenpfade
anzugeben.
Verwendung der Listensyntax:
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]]]')
Verwendung der Zeichenfolgesyntax mit Semikolons als Begrenzern:
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']])
- Wenn Sie Jython verwenden, der Klassenpfad mehrere Pfade enthält und einer der Klassenpfade
Leerzeichen enthält, schließen Sie die Pfadzeichenfolge mit den Leerzeichen in Fragezeichen ein.
Beispiel:
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]]]')
Tabelle 2. Elemente des Befehls "create Library". In der folgenden Tabelle sind die einzelnen Elemente des Befehls "create Library" beschrieben. Element Beschreibung $ Ein Jacl-Operator, der einen Variablennamen durch den Wert der Variablen ersetzt AdminConfig Objekt, das die Konfiguration von WebSphere Application Server darstellt create AdminConfig-Befehl Library Attribut serv Ergibt nach Auswertung die ID des in Schritt 1 angegebenen Servers name Attribut mySharedLibrary Wert des Attributs "name" classPath Attribut /mySharedLibraryClasspath Wert des Attributs classpath print Jython-Befehl Beispielausgabe:MysharedLibrary(cells/mycell/nodes/mynode/servers/server1|libraries.xml#Library_1)
- Den Anwendungsserver über den Server angeben und der appServer-Variablen zuordnen. Beispiel:
Mit Jacl:
set appServer [$AdminConfig list ApplicationServer $serv]
- Mit Jython:
appServer = AdminConfig.list('ApplicationServer', serv) print appServer
Tabelle 3. Elemente des Befehls "list". In der folgenden Tabelle sind die einzelnen Elemente des Befehls "create list" beschrieben. Element Beschreibung set Jacl-Befehl appServer Variablenname $ Ein Jacl-Operator, der einen Variablennamen durch den Wert der Variablen ersetzt AdminConfig Objekt, das die Konfiguration von WebSphere Application Server darstellt list AdminConfig-Befehl ApplicationServer Attribut serv Ergibt nach Auswertung die ID des in Schritt 1 angegebenen Servers print Jython-Befehl Beispielausgabe:server1(cells/mycell/nodes/mynode/servers/server1|server.xml#ApplicationServer_1
- Den Klassenlader auf dem Anwendungsserver angeben und der
classLoader-Variablen zuordnen. Beispiel:
- Wenn Sie den vorhandenen, dem Server zugeordneten Klassenlader
verwenden möchten, beachten Sie, dass die folgenden Befehle den ersten
Klassenlader verwenden:
Mit Jacl:
set classLoad [$AdminConfig showAttribute $appServer classloaders] set classLoader1 [lindex $classLoad 0]
- Mit Jython:
classLoad = AdminConfig.showAttribute(appServer, 'classloaders') cleanClassLoaders = classLoad[1:len(classLoad)-1] classLoader1 = cleanClassLoaders.split(' ')[0]
Tabelle 4. Elemente des Befehls "showAttribute". In der folgenden Tabelle sind die einzelnen Elemente des Befehls "showAttribute" beschrieben. Element Beschreibung set Jacl-Befehl classLoad, classLoader1 Variablenname $ Ein Jacl-Operator, der einen Variablennamen durch den Wert der Variablen ersetzt AdminConfig Objekt, das die Konfiguration von WebSphere Application Server darstellt showAttribute AdminConfig-Befehl appServer Ergibt nach Auswertung die ID des in Schritt 3 angegebenen Anwendungsservers classloaders Attribut print Jython-Befehl - Setzen Sie zum Erstellen eines neuen Klassenladers den folgenden Befehl ab:
Mit Jacl:
set classLoader1 [$AdminConfig create Classloader $appServer {{mode PARENT_FIRST}}]
- Mit Jython:
classLoader1 = AdminConfig.create('Classloader', appServer, [['mode', 'PARENT_FIRST']])
Tabelle 5. Elemente des Befehls "create Classloader". In der folgenden Tabelle sind die einzelnen Elemente des Befehls "create Classloader" beschrieben. Element Beschreibung set Jacl-Befehl classLoader1 Variablenname $ Ein Jacl-Operator, der einen Variablennamen durch den Wert der Variablen ersetzt AdminConfig Objekt, das die Konfiguration von WebSphere Application Server darstellt create AdminConfig-Befehl Classloader Attribut appServer Ergibt nach Auswertung die ID des in Schritt 3 angegebenen Anwendungsservers mode Attribut PARENT_FIRST Wert des Attributs print Jython-Befehl Beispielausgabe:(cells/mycell/nodes/mynode/servers/server1|server.xml#Classloader_1)
- Wenn Sie den vorhandenen, dem Server zugeordneten Klassenlader
verwenden möchten, beachten Sie, dass die folgenden Befehle den ersten
Klassenlader verwenden:
- Ordnen Sie mit dem Klassenlader die gemeinsam genutzte Bibliothek zu, die Sie für den Anwendungsserver erstellt haben.
Beispiel:
Mit Jacl:
$AdminConfig create LibraryRef $classLoader1 {{libraryName MyshareLibrary}}
- Mit Jython:
print AdminConfig.create('LibraryRef', classLoader1, [['libraryName', 'MyshareLibrary']])
Tabelle 6. Elemente des Befehls "create LibraryRef". In der folgenden Tabelle sind die einzelnen Elemente des Befehls "create LibraryRef" beschrieben. Element Beschreibung $ Ein Jacl-Operator, der einen Variablennamen durch den Wert der Variablen ersetzt AdminConfig Objekt, das die Konfiguration von WebSphere Application Server darstellt create AdminConfig-Befehl LibraryRef Attribut classLoader1 Ergibt nach Auswertung die ID des in Schritt 4 angegebenen Klassenladers libraryName Attribut MyshareLibrary Wert des Attributs print Jython-Befehl Beispielausgabe:(cells/mycell/nodes/mynode/servers/server1|server.xml#LibraryRef_1)
- Speichern Sie die Konfigurationsänderungen. Verwenden Sie den folgenden Beispielbefehl, um Ihre Konfigurationsänderungen zu speichern:
AdminConfig.save()
- Synchronisieren Sie den Knoten. Verwenden Sie das Script "syncActiveNode" oder "syncNode" aus der Scriptbibliothek "AdminNodeManagement", um die Konfigurationsänderungen an Knoten weiterzugeben.
- Verwenden Sie das Script "syncActiveNodes", wie im folgenden Beispiel gezeigt, um die Änderungen an jeden Knoten in der Zelle weiterzugeben:
AdminNodeManagement.syncActiveNodes()
- Verwenden Sie das Script "syncNode", wie im folgenden Beispiel gezeigt, um die Änderungen an einen bestimmten Knoten weiterzugeben:
AdminNodeManagement.syncNode("myNode")
- Verwenden Sie das Script "syncActiveNodes", wie im folgenden Beispiel gezeigt, um die Änderungen an jeden Knoten in der Zelle weiterzugeben:


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