Utilisez l'outil wsadmin et le scriptage pour lister toutes les applications
exécutées sur tous les serveurs en cours d'exécution.
Avant de commencer
L'outil wsadmin doit être en exécution avant que vous ne commenciez cette tâche.
Pour plus d'informations, voir la rubrique relative au démarrage du client de script wsadmin à l'aide de scripts wsadmin.
Pourquoi et quand exécuter cette tâche
Utilisez l'exemple ci-dessous pour répertorier toutes les applications exécutées sur tous les serveurs de chaque noeud de chaque cellule.
Procédure
- En langage Jacl :
*Utilisez cet exemple sous forme de fichier de script Jacl et exécutez-le avec l'option "-f" :
1
#--------------------------------------------------------------------------------------
2 # les lignes 4 et 5 recherchent toutes les cellules et les traite l'une après l'autre
3 #-----------------------------------------------------------------------------------
4 set cells [$AdminConfig list Cell]
5 foreach cell $cells {
6 #-----------------------------------------------------------------------
7 # les lignes 10 et 11 recherchent tous les noeuds de la
8 # cellule et les traitent l'un après l'autre
9 #-----------------------------------------------------------------------
10 set nodes [$AdminConfig list Node $cell]
11 foreach node $nodes {
12 #--------------------------------------------------------------
13 # les lignes 16 à 20 recherchent tous les serveurs actifs de
14 # la cellule et du noeud et les traite l'un après l'autre.
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 "Nombre de serveurs actif sur le noeud $nname: [llength $servs]"
20 foreach server $servs {
21 #---------------------------------------------------------
22 # les lignes 25 à 31 affichent certains des attributs du serveur ;
23 # appel d'une opération sur la JVM du serveur pour afficher une propriété.
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) has pid $pid; state: $state; on $osname"
32
j3 #---------------------------------------------------------
34 # les lignes 37 à 42 recherchent les applications actives
35 # sur ce serveur et affichent le nom de l'application.
35 #---------------------------------------------------------
37 set apps [$AdminControl queryNames type=Application,
cell=$cname,node=$nname,process=$sname,*]
38 puts " Nombre d'applications actives sur $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 }
- A l'aide de Jython :
* Fournissez cet exemple sous la forme d'un
fichier script Jython et exécutez-le avec l'option "-f" :
# ------------------------------------------------------
# extrait le séparateur de ligne
import java.lang.System as sys
lineSeparator = sys.getProperty('line.separator')
cells = AdminConfig.list('Cell').split()
for cell in cells:
#----------------------------------------------------------------
# les lignes 13 et 14 recherchent tous les noeuds de la cellule
# et les traitent l'un après l'autre.
#-----------------------------------------------------------------
nodes = AdminConfig.list('Node', cell).split()
for node in nodes:
#--------------------------------------------------------------
# les lignes 19 à 23 recherchent tous les serveurs actifs de
# la cellule et du noeud et les traitent l'un après l'autre.
#--------------------------------------------------------------
cname = AdminConfig.showAttribute(cell, 'name')
nname = AdminConfig.showAttribute(node, 'name')
servs = AdminControl.queryNames('type=Server,cell=' + cname +
',node=' + nname + ',*').split()
print "Number of running servers on node " + nname + ": %s \n" %
(len(servs))
for server in servs:
#---------------------------------------------------------
# les lignes 28 à 34 affichent certains des attributs du serveur ;
# appel d'une opération sur la JVM du serveur pour afficher une propriété.
#---------------------------------------------------------
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"
#---------------------------------------------------------
# les lignes 40 à 45 recherchent les applications actives
# sur ce serveur et affichent le nom de l'application.
#---------------------------------------------------------
apps = AdminControl.queryNames('type=Application,cell=' + cname
+ ',node=' + nname + ',process=' + sname + ',*').splitlines()
print "Number of applications running on " + sname + ": %s \n"
% (len(apps))
for app in apps:
aname = AdminControl.getAttribute(app, 'name')
print aname + "\n"
print "----------------------------------------------------"
print "\n"
Résultats
Exemple de sortie :
Nombre de serveurs actifs sur le noeud mynode : 2
mynode (NodeAgent) has pid 3592; state: STARTED; sous Windows Vista
Nombre d'applications actives sur mynode : 0
----------------------------------------------------
server1 (ManagedProcess) has pid 3972; state: STARTED; sous Windows Vista
Nombre d'applications actives sur server1 : 0
----------------------------------------------------
Nombre de serveurs actifs sur mynodeManager : 1
dmgr (DeploymentManager) has pid 3308; state: STARTED; sous Windows Vista
Nombre d'applications actives sur le gestionnaire de déploiement : 2
adminconsole
filetransfer
----------------------------------------------------