Mit dem Tool "wsadmin" und Scripting können Sie alle aktiven Anwendungen in allen aktiven Servern auflisten.
Vorbereitende Schritte
Damit diese
Task gestartet werden kann, muss das Tool "wsadmin" aktiv sein. Lesen Sie den Artikel
zum Starten des wsadmin-Scripting-Clients mit wsadmin-Scripting.
Informationen zu diesem Vorgang
Mit dem folgenden Beispielcode können Sie alle aktiven Anwendungen auf sämtlichen aktiven
Servern, die auf allen Knoten der einzelnen Zellen ausgeführt werden, auflisten.
Vorgehensweise
- Mit Jacl:
* Stellen Sie dieses Beispiel als Jacl-Scriptdatei bereit, und führen Sie es mit der Option "-f" aus:
1 #----------------------------------------------------------------
2 # Die Zeilen 4 und 5 suchen alle Zellen und verarbeiten sie nacheinander
3 #----------------------------------------------------------------
4 set cells [$AdminConfig list Cell]
5 foreach cell $cells {
6 #-----------------------------------------------------------------------
7 # Die Zeilen 10 und 11 suchen alle zu der Zelle gehörigen Knoten und
8 # verarbeiten sie nacheinander
9 #-----------------------------------------------------------------------
10 set nodes [$AdminConfig list Node $cell]
11 foreach node $nodes {
12 #--------------------------------------------------------------
13 # Die Zeilen 16-20 suchen alle aktiven Server, die zu Zelle
14 # und Knoten gehören, und verarbeiten sie nacheinander
15 #--------------------------------------------------------------
16 set cname [$AdminConfig showAttribute $cell name]
17 set nname [$AdminConfig showAttribute $node name]
18 set servs [$AdminControl queryNames type=Server,cell=$cname,node=$nname,*]
19 puts "Anzahl aktiver Server auf Knoten $nname: [llength $servs]"
20 foreach server $servs {
21 #---------------------------------------------------------
22 # Die Zeilen 25-31 rufen einige Attribute zur Anzeige vom Server ab;
23 # Eine Operation für die Server-JVM abrufen, um eine Eigenschaft anzuzeigen.
24 #---------------------------------------------------------
25 set sname [$AdminControl getAttribute $server name]
26 set ptype [$AdminControl getAttribute $server processType]
27 set pid [$AdminControl getAttribute $server pid]
28 set state [$AdminControl getAttribute $server state]
29 set jvm [$AdminControl queryNames type=JVM,cell=$cname,
node=$nname,process=$sname,*]
30 set osname [$AdminControl invoke $jvm getProperty os.name]
31 puts " $sname ($ptype) hat PID $pid; Status: $state; auf $osname"
32
j3 #---------------------------------------------------------
34 # Die Zeilen 37-42 suchen die auf dem Server ausgeführten Anwendungen und
35 # zeigen den Anwendungsnamen an.
35 #---------------------------------------------------------
37 set apps [$AdminControl queryNames type=Application,
cell=$cname,node=$nname,process=$sname,*]
38 puts " Anzahl aktiver Anwendungen auf $sname: [llength $apps]"
39 foreach app $apps {
40 set aname [$AdminControl getAttribute $app name]
41 puts " $aname"
42 }
43 puts "----------------------------------------------------"
44 puts ""
45
46 }
47 }
48 }
- Mit Jython:
* Stellen Sie das Beispiel als Jython-Scriptdatei bereit, und führen Sie
es mit der Option "-f" aus:
# ------------------------------------------------------
# Zeilenseparator abrufen
import java.lang.System as sys
lineSeparator = sys.getProperty('line.separator')
cells = AdminConfig.list('Cell').split()
for cell in cells:
#----------------------------------------------------------------
# Die Zeilen 13 und 14 suchen alle Knoten der Zelle und verarbeiten
# sie nacheinander
#-----------------------------------------------------------------
nodes = AdminConfig.list('Node', cell).split()
for node in nodes:
#--------------------------------------------------------------
# Die Zeilen 19-23 suchen alle aktiven Server, die zur Zelle und
# zum Knoten gehören, und verarbeiten sie nacheinander
#--------------------------------------------------------------
cname = AdminConfig.showAttribute(cell, 'name')
nname = AdminConfig.showAttribute(node, 'name')
servs = AdminControl.queryNames('type=Server,cell=' + cname +
',node=' + nname + ',*').split()
print "Anzahl aktiver Server auf Knoten " + nname + ": %s \n" %
(len(servs))
for server in servs:
#---------------------------------------------------------
# Die Zeilen 28 bis 34 rufen einige Attribute zur Anzeige vom Server ab.
# Eine Operation für die Server-JVM abrufen, um eine Eigenschaft anzuzeigen.
#---------------------------------------------------------
sname = AdminControl.getAttribute(server, 'name')
ptype = AdminControl.getAttribute(server, 'processType')
pid = AdminControl.getAttribute(server, 'pid')
state = AdminControl.getAttribute(server, 'state')
jvm = AdminControl.queryNames('type=JVM,cell=' + cname +
',node=' + nname + ',process=' + sname + ',*')
osname = AdminControl.invoke(jvm, 'getProperty', 'os.name')
print " " + sname + " " + ptype + " has pid " + pid + ";
state: " + state + "; on " + osname + "\n"
#---------------------------------------------------------
# Die Zeilen 40-45 suchen die auf dem Server ausgeführten Anwendungen
# und zeigen den Anwendungsnamen an.
#---------------------------------------------------------
apps = AdminControl.queryNames('type=Application,cell=' + cname
+ ',node=' + nname + ',process=' + sname + ',*').splitlines()
print "Anzahl aktiver Anwendungen auf " + sname + ": %s \n"
% (len(apps))
for app in apps:
aname = AdminControl.getAttribute(app, 'name')
print aname + "\n"
print "----------------------------------------------------"
print "\n"
Ergebnisse
Beispielausgabe:
Number of running servers on node mynode: 2
mynode (NodeAgent) has pid 3592; state: STARTED; on Windows Vista
Anzahl aktiver Anwendungen auf mynode: 0
----------------------------------------------------
server1 (ManagedProcess) has pid 3972; state: STARTED; on Windows Vista
Anzahl aktiver Anwendungen auf server1: 0
----------------------------------------------------
Number of running servers on node mynodeManager: 1
dmgr (DeploymentManager) has pid 3308; state: STARTED; on Windows Vista
Anzahl aktiver Anwendungen auf dmgr: 2
adminconsole
filetransfer
----------------------------------------------------