Die Module in einer installierten Anwendung mit wsadmin-Scripting auflisten
Mit dem Befehl listModules des Objekts AdminApp können Sie die Module in einer installierten Anwendung auflisten.
Informationen zu diesem Vorgang
Sie können den Befehl "listModules" ausführen, um die in einer installierten Anwendung enthaltenen Module anzuzeigen.
Vorgehensweise
Beispiel
Im folgenden Beispiel werden alle Module in allen Unternehmensanwendungen, die im Server server1 auf dem Knoten node1 installiert sind, aufgelistet.
Der Stern (*) bedeutet, dass das Modul in server1 und node1 und einem anderen Server oder Knoten installiert ist. Das Pluszeichen (+) bedeutet, dass das Modul nur in server1 und auf node1 installiert ist.
1 #-----------------------------------------------------------------------------------
2 # Variablen für Servernamen und Knotennamen konfigurieren
3 #------------------------------------------------------------------------------
4 set serverName server1
5 set nodeName node1
6 #-------------------------------------------------------------------------------
7 # 2 globale Listen für die Module konfigurieren
8 #--------------------------------------------------------------------------------
9 set ejbList {}
10 set webList {}
11
12 #----------------------------------------------------------------------------------------
13 # Alle Implementierungsobjekte abrufen und der Variable deployments zuordnen
14 #-----------------------------------------------------------------------------------------
15 set deployments [$AdminConfig getid /Deployment:/]
16
17 #-----------------------------------------------------------------------------------------
18 # Die Zeilen 22 bis 148 iterieren durch alle Implementierungsobjekte, um die Module abzurufen,
19 # und filtern die Objekte dann, um eine Anwendung aufzulisten, die mindestens ein Modul enthält, das
20 # in server1 auf dem Knoten myNode installiert ist.
21 #-----------------------------------------------------------------------------------------
22 foreach deployment $deployments {
23
24 # ------------------------------------------------------------------------------------
25 # Die Listen mit den Modulen für die Anwendungen zurücksetzen
26 #-------------------------------------------------------------------------------------
27 set webList {}
28 set ejbList {}
29
30 #------------------------------------------
31 # Anwendungsnamen abrufen
32 #------------------------------------------
33 set appName [lindex [split $deployment (] 0]
34
35 #------------------------------------------
36 # Implementierte Objekte abrufen
37 #------------------------------------------
38 set depObject [$AdminConfig showAttribute $deployment deployedObject]
39
40 #--------------------------------------------
41 # Alle Module in der Anwendung abrufen
42 #---------------------------------------------
43 set modules [lindex [$AdminConfig showAttribute $depObject modules] 0]
44
45 #---------------------------------------------------------------------------------------------
46 # Listen initialisieren, um alle Module in der richtigen Liste zu speichern
47 #---------------------------------------------------------------------------------------------
48 set modServerMatch {}
49 set modServerMoreMatch {}
50 set modServerNotMatch {}
51
52 #-----------------------------------------------------------------------------------------
53 # Die Zeilen 55 bis 112 iterieren durch alle Module, um die Zielzuordnungen abzurufen
54 #------------------------------------------------------------------------------------------
55 foreach module $modules {
56 #--------------------------------------------------------------------------------------
57 # Flag setzen, um die Objekte zu filtern und Module für server1 auf node1 abzurufen
58 #--------------------------------------------------------------------------------------
59 set sameNodeSameServer "false"
60 set diffNodeSameServer "false"
61 set sameNodeDiffServer "false"
62 set diffNodeDiffServer "false"
63
64 #--------------------------------------------
65 # Zielzuordnungen abrufen
66 #--------------------------------------------
67 set targetMaps [lindex [$AdminConfig showAttribute $module targetMappings] 0]
68
69 #---------------------------------------------------------------------------------------
70 # Die Zeilen 72 bis 111 iterieren durch alle Zielzuordnungen, um das Ziel abzurufen
71 #---------------------------------------------------------------------------------------
72 foreach targetMap $targetMaps {
73 #------------------------------
74 # Ziel abrufen
75 #------------------------------
76 set target [$AdminConfig showAttribute $targetMap target]
77
78 #--------------------------------------------------
79 # Filtern, um Clusterziele zu überspringen
80 #--------------------------------------------------
81 set targetName [lindex [split $target #] 1]
82 if {[regexp "ClusteredTarget" $targetName] != 1} {
83 set sName [$AdminConfig showAttribute $target name]
84 set nName [$AdminConfig showAttribute $target nodeName]
85
86 #----------------------------------------------
87 # Abgleich des Servernamens durchführen
88 #----------------------------------------------
89 if {$sName == $serverName} {
90 if {$nName == $nodeName} {
91 set sameNodeSameServer "true"
92 } else {
93 set diffNodeSameServer "true"
94 }
95 } else {
96 #---------------------------------------
97 # Abgleich des Knotennamens durchführen
98 #---------------------------------------
99 if {$nName == $nodeName} {
100 set sameNodeDiffServer "true"
101 } else {
102 set diffNodeDiffServer "true"
103 }
104 }
105
106 if {$sameNodeSameServer == "true"} {
107 if {$sameNodeDiffServer == "true" || $diffNodeDiffServer == "true" || $diffNodeSameServer == "true"} {
108 break
109 }
110 }
111 }
112 }
113
114 #---------------------------------------------
115 # In der richtigen Liste speichern
116 #---------------------------------------------
117 if {$sameNodeSameServer == "true"} {
118 if {$diffNodeDiffServer == "true" || $diffNodeSameServer == "true" || $sameNodeDiffServer == "true"} {
119 set modServerMoreMatch [linsert $modServerMoreMatch end [$AdminConfig showAttribute $module uri]]
120 } else {
121 set modServerMatch [linsert $modServerMatch end [$AdminConfig showAttribute $module uri]]
122 }
123 } else {
124 set modServerNotMatch [linsert $modServerNotMatch end [$AdminConfig showAttribute $module uri]]
125 }
126 }
127
128
129 #----------------------------------------------------------------
130 # Ausgabe mit Markierung versehen
131 #----------------------------------------------------------------
132 if {$modServerMatch != {} || $modServerMoreMatch != {}} {
133 puts stdout "\tApplication name: $appName"
134 }
135
136 #---------------------------------------------------------
137 # Modulgruppen erstellen und ausgeben
138 #---------------------------------------------------------
139 if {$modServerMatch != {}} {
140 filterAndPrint $modServerMatch "+"
141 }
142 if {$modServerMoreMatch != {}} {
143 filterAndPrint $modServerMoreMatch "*"
144 }
145 if {($modServerMatch != {} || $modServerMoreMatch != {}) "" $modServerNotMatch != {}} {
146 filterAndPrint $modServerNotMatch ""
147 }
148}
149
150
151 proc filterAndPrint {lists flag} {
152 global webList
153 global ejbList
154 set webExists "false"
155 set ejbExists "false"
156
157 #--------------------------------------------------------------------------------------
158 # Wenn die Liste vorhanden ist, so markieren, damit Überschrift nur einmal ausgegeben wird,
159 # und die Liste zurücksetzen
160 #---------------------------------------------------------------------------------------
161 if {$webList != {}} {
162 set webExists "true"
163 set webList {}
164 }
165 if {$ejbList != {}} {
166 set ejbExists "true"
167 set ejbList {}
168 }
169
170 #------------------------------------------------------------------
171 # Webmodule und EJB-Module filtern
172 #------------------------------------------------------------------
173 foreach list $lists {
174 set temp [lindex [split $list .] 1]
175 if {$temp == "war"} {
176 set webList [linsert $webList end $list]
177 } elseif {$temp == "jar"} {
178 set ejbList [linsert $ejbList end $list]
179 }
180 }
181
182 #---------------------------------------
183 # Liste vor der Ausgabe sortieren
184 #---------------------------------------
185 set webList [lsort -dictionary $webList]
186 set ejbList [lsort -dictionary $ejbList]
187
188 #----------------------------------------------------------------
189 # Alle in server1 installierten Webmodule ausgeben
190 #----------------------------------------------------------------
191 if {$webList != {}} {
192 if {$webExists == "false"} {
193 puts stdout "\t\tWeb Modules:"
194 }
195 foreach web $webList {
196 puts stdout "\t\t\t$web $flag"
197 }
198 }
199
200 #--------------------------------------------------------------
201 # Alle in server1 installierten EJB-Module ausgeben
202 #--------------------------------------------------------------
203 if {$ejbList != {}} {
204 if {$ejbExists == "false"} {
205 puts stdout "\t\tEJB Modules:"
206 }
207 foreach ejb $ejbList {
208 puts stdout "\t\t\t$ejb $flag"
209 }
210 }
211}
Beispielausgabe für server1 auf Knoten node1:
Application name: TEST1
EJB Modules:
deplmtest.jar +
Web Modules:
mtcomps.war *
Application name: TEST2
Web Modules:
mtcomps.war +
EJB Modules:
deplmtest.jar +
Application name: TEST3
Web Modules:
mtcomps.war *
EJB Modules:
deplmtest.jar *
Application name: TEST4
EJB Modules:
deplmtest.jar *
Web Modules:
mtcomps.war