Tipps zur Leistung des Tools wsadmin
Die folgenden Tipps unterstützten Sie bei der effektiven Verwendung des Tools wsadmin.
Die folgenden Hinweise zur Leistung beziehen sich auf das Tool wsadmin:
Wenn der Deployment Manager eine höhere Wartungsstufe hat als der Node Agent, müssen Sie das Script wsadmin.sh bzw. wsadmin.bat im Verzeichnis bin des Deployment Manager ausführen.
- Wenn Sie mit dem Tool wsadmin ein Script starten, wird ein neuer Prozess mit einer neuen
JVM-API erstellt. Wenn Sie Scripts mit mehreren wsadmin-Befehlen einschließlich der Option
-c über eine Stapeldatei oder ein Shell-Script verwenden, werden diese Befehle
langsamer ausgeführt, als wenn Sie einen einzigen wsadmin-Befehl mit der Option
-f verwenden.
Mit der Option -f wird der Befehl schneller
ausgeführt, da nur ein Prozess und eine JVM-API für die Installation erstellt
werden und die Java-Klassen für die Installation nur einmal geladen werden.
Im folgenden Beispiel werden mehrere Befehle zur Anwendungsinstallation über eine Stapeldatei ausgeführt.
Anmerkung: Wenn Sie unter einem UNIX-Betriebssystem einen Befehl, der ein Dollarzeichen ($) enthält, mit der Option wsadmin -c aufrufen, versucht die Befehlszeile, eine Variable zu ersetzen. Sie können dieses Problem vermeiden, indem Sie dem Dollarzeichen ein Backslash-Zeichen (\) als Escapezeichen voranstellen. Beispiel: wsadmin -c "\$AdminApp install ...".Mit Jacl:
wsadmin -c "$AdminApp install c:/myApps/App1.ear {-appname appl1}" wsadmin -c "$AdminApp install c:/myApps/App2.ear {-appname appl2}" wsadmin -c "$AdminApp install c:/myApps/App3.ear {-appname appl3}"
Mit Jacl:
oderwsadmin.sh -c "\$AdminApp install /myApps/App1.ear {-appname appl1}" wsadmin.sh -c "\$AdminApp install /myApps/App2.ear {-appname appl2}" wsadmin.sh -c "\$AdminApp install /myApps/App3.ear {-appname appl3}"
wsadmin.sh -c "$AdminApp install /myApps/App1.ear {-appname appl1}" wsadmin.sh -c "$AdminApp install /myApps/App2.ear {-appname appl2}" wsadmin.sh -c "$AdminApp install /myApps/App3.ear {-appname appl3}"
Mit Jacl:
wsadmin -c "$AdminApp install /home/myDir/myApps/App1.ear {-appname appl1}" wsadmin -c "$AdminApp install /home/myDir/myApps/App2.ear {-appname appl2}" wsadmin -c "$AdminApp install /home/myDir/myApps/App3.ear {-appname appl3}"
Mit Jython:
wsadmin -lang jython -c "AdminApp.install('c:/myApps/App1.ear', '[-appname appl1]')" wsadmin -lang jython -c "AdminApp.install('c:/myApps/App2.ear', '[-appname appl2]')" wsadmin -lang jython -c "AdminApp.install('c:/myApps/App3.ear', '[-appname appl3]')"
Mit Jython:
oderwsadmin.sh -lang jython -c "\AdminApp.install('/myApps/App1.ear', '[-appname appl1]')" wsadmin.sh -lang jython -c "\AdminApp.install('/myApps/App2.ear', '[-appname appl2]')" wsadmin.sh -lang jython -c "\AdminApp.install('/myApps/App3.ear', '[-appname appl3]')"
wsadmin.sh -lang jython -c "AdminApp.install('/myApps/App1.ear', '[-appname appl1]')" wsadmin.sh -lang jython -c "AdminApp.install('/myApps/App2.ear', '[-appname appl2]')" wsadmin.sh -lang jython -c "AdminApp.install('/myApps/App3.ear', '[-appname appl3]')"
Mit Jython:
wsadmin -lang jython -c "AdminApp.install('/home/myDir/myApps/App1.ear', '[-appname appl1]')" wsadmin -lang jython -c "AdminApp.install('/home/myDir/myApps/App2.ear', '[-appname appl2]')" wsadmin -lang jython -c "AdminApp.install('/home/myDir/myApps/App3.ear', '[-appname appl3]')"
Sie können aber auch beispielsweise mit Jacl die Datei appinst.jacl mit den Befehlen erstellen:
$AdminApp install c:/myApps/App1.ear {-appname appl1} $AdminApp install c:/myApps/App2.ear {-appname appl2} $AdminApp install c:/myApps/App3.ear {-appname appl3}
$AdminApp install /myApps/App1.ear {-appname appl1} $AdminApp install /myApps/App2.ear {-appname appl2} $AdminApp install /myApps/App3.ear {-appname appl3}
$AdminApp install /home/myDir/myApps/App1.ear {-appname appl1} $AdminApp install /home/myDir/myApps/App2.ear {-appname appl2} $AdminApp install /home/myDir/myApps/App3.ear {-appname appl3}
Rufen Sie diese Datei mit dem folgenden Befehl auf: wsadmin -f appinst.jacl
Sie können aber auch beispielsweise mit Jython die Datei appinst.py mit den Befehlen erstellen:
AdminApp.install('c:/myApps/App1.ear', '[-appname appl1]') AdminApp.install('c:/myApps/App2.ear', '[-appname appl2]') AdminApp.install('c:/myApps/App3.ear', '[-appname appl3]')
AdminApp.install('/myApps/App1.ear', '[-appname appl1]') AdminApp.install('/myApps/App2.ear', '[-appname appl2]') AdminApp.install('/myApps/App3.ear', '[-appname appl3]')
AdminApp.install('/home/myDir/myApps/App1.ear', '[-appname appl1]') AdminApp.install('/home/myDir/myApps/App2.ear', '[-appname appl2]') AdminApp.install('/home/myDir/myApps/App3.ear', '[-appname appl3]')
Rufen Sie diese Datei anschließend mit dem folgenden Befehl auf: wsadmin -lang jython -f appinst.py.
Rufen Sie diese Datei anschließend mit dem folgenden Befehl auf: wsadmin.sh -lang jython -f appinst.py.
- Verwenden Sie die AdminControl-Befehle queryNames und
completeObjectName bei einer großen Installation mit Vorsicht. Wenn auf einer Maschine
beispielsweise nur wenige Beans vorhanden sind, ist die Leistung des Befehls $AdminControl queryNames *
zufriedenstellend.
Wenn ein Scripting-Client in einer Umgebung mit mehreren Maschinen eine Verbindung zum Deployment Manager herstellt, sollten sie einen Befehl nur verwenden, wenn es für das Script erforderlich ist, eine Liste aller MBeans im System abzurufen. Wenn Sie die MBeans auf einem Knoten benötigen, ist es einfacher, "$AdminControl queryNames node=mynode,*" aufzurufen. Die Infrastruktur der JMX-Systemverwaltung leitet Anforderungen an das System weiter, um die erste Abfrage, *, durchzuführen. Die zweite Abfrage, node=mynode,*, richtet sich an eine bestimmte Maschine.
- Der WebSphere Application Server ist ein verteiltes System, und Scripts können bei einer Verringerung der fernen Anforderungen einfacher ausgeführt werden. Wenn für bestimmte Elemente, z. B. Server, eine Aktion oder eine Anfrage erforderlich ist, ist es effizienter, die Liste der Elemente einmal abzurufen und die gewünschten Vorgänge lokal zu wiederholen. Diese Prozedur wird auf Aktionen angewendet, die vom AdminControl-Objekt für aktive MBeans und vom AdminConfig-Objekt für Konfigurationsobjekte ausgeführt werden.