Blog

IBM WebSphere Scripting mit wsadmin: Einschlusspfade, Konfigurations-IDs und Objektnamen

Vincent Partington

Aktualisiert Oktober 23, 2025
4 Minuten
logo_websphere2

In meinem letzten Blog über die Einsatzmöglichkeiten der wichtigsten Anwendungsserver habe ich scherzhaft gefragt, ob jemand den Unterschied zwischen Einschlusspfaden, Konfigurations-IDs und Objektnamen in der Skripting-Schnittstelle wsadmin von WebSphere kennt. Ich habe keine Antwort erhalten (und auch keine erwartet ;-) ). Aber anstatt Sie im Ungewissen zu lassen, werden wir Ihnen in diesem Blog den Unterschied zwischen diesen dreien erklären und wie Sie zwischen ihnen übersetzen können.

Konfiguration ID

Konfigurations-IDs sind die häufigsten IDs, denen Sie bei der Arbeit mit wsadmin begegnen werden. Sie spezifizieren eindeutig ein Element in der Konfiguration von WebSphere Application Server und werden benötigt, um die Konfiguration mit einem der Befehle im Menü AdminConfig Objekt zu ändern.

Die Konfigurations-IDs haben die folgende Syntax:

Name(Verzeichnis|Dateiname#XML-fragment-id)

Als Beispiel verweist die folgende Konfigurations-ID auf die Konfiguration für den Anwendungsserver mit dem Namen server1:


server1(cells/was-70Cell01/nodes/was-70Node01/servers/server1|server.xml#Server_1254421834316)

Konfigurationsobjekte, die keinen Namen haben, haben auch keinen Namen in ihrer Konfigurations-ID. Dies ist zum Beispiel die Konfigurations-ID für ein Objekt "JAAS/J2C Authentication Data":


(cells/was-70Cell01|security.xml#JAASAuthData_1258718081490)

Die Konfigurations-ID sagt Ihnen, wo Sie die Konfiguration auf der Festplatte finden können. Nehmen wir die Konfigurations-ID für den Anwendungsserver aus dem obigen Beispiel. Wenn Sie die Datei WAS_HOME/profiles/PROFILE_NAME/config/cells/was-70Cell01/nodes/was-70Node01/servers/server1/server.xml öffnen und nach dem String xmi:id="Server_1254421834316" suchen, finden Sie das entsprechende XML-Fragment in der WebSphere-Konfiguration. Im Allgemeinen ist es jedoch am besten, die Konfigurations-ID einfach als undurchsichtigen Wert zu verwenden.Sie können eine Konfigurations-ID erhalten, indem Sie entweder den Befehl AdminConfig.list oder den Befehl AdminConfig.getid aufrufen. Der erste Befehl gibt alle Konfigurations-IDs für Objekte eines bestimmten Typs zurück (Sie können alle Typen auflisten, indem Sie AdminConfig.types aufrufen), während der zweite Befehl alle Konfigurations-IDs zurückgibt, die mit einem Einschlusspfad übereinstimmen.Die dritte Möglichkeit, eine Konfigurations-ID zu erhalten, besteht darin, einen Objektnamen an die Methode AdminControl.getConfigId zu übergeben. Aber dazu müssen Sie erst einmal eine davon bekommen, also lesen Sie weiter...

Eindämmungspfad

Bevor wir uns mit dem Objektnamen befassen, lassen Sie uns zunächst den Einschlusspfad besprechen. Da eine Konfigurations-ID eine scheinbar zufällige XML-Fragment-ID enthält, können Sie die Konfigurations-ID eines Objekts nicht kennen, wenn Sie nur seinen Namen wissen. Um dieses Problem zu lösen. IBM hat das Konzept des Einschließungspfads eingeführt. Ein Containment-Pfad gibt den hierarchischen Pfad an, wie Sie das gesuchte Objekt erreichen. Die allgemeine Syntax, die einige Leute an XPath erinnern mag, lautet wie folgt:

/Typ:Name/Typ:Name/Typ:Name/.../

Jedes Pfadelement muss einen Typ haben (einen der von AdminConfig.types zurückgegebenen Typen) und kann optional einen Namen haben. Wenn kein Name angegeben wird, passen alle Objekte des angegebenen Typs.

So können Sie beispielsweise die Konfigurations-ID des Servers namens server1 wie folgt abrufen (unter Verwendung der Jython-Syntax):


print AdminConfig.getid('/Server:server1/')
Wenn es mehrere Server mit dem Namen server1 gibt, die auf verschiedenen Knoten laufen, können Sie den richtigen auf diese Weise ermitteln:

print AdminConfig.getid('/Knoten:was-70Node01/Server:server1/')
Wenn Sie herausfinden möchten, wo sich ein bestimmter Typ von Konfigurationsobjekten in der WebSphere-Konfigurationsstruktur befindet, können Sie den Befehl AdminConfig.parents mit dem Typ als erstem Parameter aufrufen.

Sobald sie in eine Konfigurations-ID übersetzt sind, werden keine Einschließungspfade mehr benötigt.

Objektname

OK, damit bleibt nur noch der Objektname zu besprechen. Der Objektname bezieht sich auf eine laufende JMX MBean, die mit einem der Befehle in der Datei AdminControl Objekt gesteuert werden kann. Er hat die Standard-Syntax für JMX-Objektnamen. Die Domäne ist immer "WebSphere", so dass die Syntax wie folgt aussieht:
WebSphere:Schlüssel=Wert,Schlüssel=Wert,Schlüssel=Wert,...
Die MBean-Hierarchie ist eine andere Hierarchie als die Hierarchie der Konfigurationsobjekte:
  • Für einige Konfigurationsobjekte gibt es eine entsprechende MBean. Zum Beispiel hat die MBean, die dem oben erwähnten Server entspricht, den Namen WebSphere:name=server1,process=server1,platform=proxy,node=was-70Node01,j2eeType=J2EEServer,version=7.0.0.5,type=Server,mbeanIdentifier=cells/was-70Cell01/nodes/was-70Node01/servers/server1/server.xml#Server_1254421834316,cell=was-70Cell01,spec=1.0,processType=ManagedProcess.
    Sie können diesen Objektnamen erhalten, indem Sie den Befehl AdminConfig.getObjectName mit der Konfigurations-ID als erstem Parameter aufrufen. Wenn es keine entsprechende MBean gibt oder das Objekt nicht läuft, wird nichts zurückgegeben.
  • Für einige Konfigurationsobjekte, wie z.B. die JAAS/J2C-Authentifizierungsdaten, gibt es keine entsprechende MBean, da es keinen Laufzeitstatus zu kontrollieren gibt.
  • Und schließlich gibt es auch MBeans, die nicht mit Konfigurationsobjekten korrespondieren. Sie können AdminControl.queryNames oder AdminControl.queryNames_jmx aufrufen und eine JMX-Abfrage übergeben, um die entsprechenden Objektnamen zu erhalten. Das funktioniert natürlich auch für MBeans, die eine entsprechende Konfigurations-ID haben.
Um einen Objektnamen zu verwenden, müssen Sie einen Verweis auf ein tatsächliches MBean erhalten, indem Sie AdminControl.getObjectInstance aufrufen. Sie können auch direkt nach MBeans mit dem Befehl AdminControl.queryMBean suchen.

Übersicht

Die Kenntnis des Unterschieds zwischen diesen drei Arten von IDs ist wichtig, wenn Sie wsadmin effektiv nutzen wollen. Um herauszufinden, welche ID Sie in welchem Fall verwenden müssen und wie Sie die IDs erhalten, sehen Sie bitte in der folgenden Tabelle nach.
Konfiguration IDContainment-PfadObjektname
RepräsentiertEin statisches KonfigurationsobjektEinen Kurznamen für ein KonfigurationsobjektEine laufende MBean
Verwendet vonAdminConfigAdminConfigAdminControl
AbfrageAdminConfig.listK.A.AdminControl.queryNames und
AdminControl.queryNames_jmx
Übersetzen von Konfigurations-IDN/AN/AAdminConfig.getObjectName
Übersetzen von Containment-PfadAdminConfig.getidN/ANICHT ZUTREFFEND
Übersetzen von ObjektnameAdminControl.getConfigIdN/AN/A

Verfasst von

Vincent Partington

Contact

Let’s discuss how we can support your journey.