Fehlerbehebung bei der Verwaltung und der Administrationskonsole
- Anwendungsserverprozess (z. B. server1)
- Deployment-Manager-Prozess im Produkt WebSphere Application Server Network Deployment
Zur Verwendung der Administrationskonsole muss der Prozess aktiv sein. Das Befehlszeilendienstprogramm wsadmin kann im lokalen Modus ausgeführt werden, in dem Sie die Verwaltungsfunktionen auch dann ausführen können, wenn der Serverprozess nicht aktiv ist.
- Serverstatus und Nachrichten in der Konsolansicht sind nicht aktuell
- Rollenbasierte Berechtigung scheitert
- Wird ein Server in einer interaktiven wsadmin-Scripting-Sitzung gestartet oder gestoppt, wird eine Ausnahme zurückgegeben, die "read timed out" anzeigt.
- Probleme beim Starten oder beim Verwenden der Administrationskonsole oder des Dienstprogramms wsadmin
- Methode "AdminConfig.parents" kann nicht zum Abrufen der gültigen übergeordneten Typen einiger Konfigurationstypen verwendet werden
Serverstatus und Nachrichten in der Konsolansicht sind nicht aktuell
- Der in der Administrationskonsole in der Statusspalte in der Serversicht angezeigte Serverstatus wird nicht aktualisiert.
- Die in der Administrationskonsole angezeigten Servernachrichten werden nicht aktualisiert.
- Es ist ein Rückgang der Systemressourcen zu bemerken, wenn viele Ports erstellt werden und im Status TIME_WAIT verbleiben.
Dieses Problem tritt auf, weil der SOAP-Connector die Bündelung von Verbindungen (Verbindungspooling) nicht unterstützt. Wenn in dem Anwendungsserver viele Operationen ausgeführt werden, die den SOAP-Connector verwenden, öffnet und schließt der Anwendungsserver viele Ports schnell hintereinander. Aufgrund des Charakters des zugrunde liegenden TCP/IP-Protokolls bleiben diese Ports einige Zeit im Status TIME_WAIT, bevor das Betriebssystem sie zurückfordern kann. Die Anzahl der Ports, die WebSphere Application Server öffnet, kann den Grenzwert des Betriebssystems überschreiten. Unter derartigen Bedingungen scheitert das Öffnen weiterer Ports über den SOAP-Connector so lange, bis das Betriebssystem die Ports zurückgefordert hat.
- Erhöhen Sie den Betriebssystemgrenzwert für die Portanzahl.
- Führen Sie für Rational Application Developer, das Dienstprogramm "wsadmin" und Java™-Anwendungen, die JMX-Connector (Java Management Extension) verwenden, eine Umstellung auf den RMI-Connector (Remote Method Invocation) durch.
- Warten Sie, bis nur noch wenige oder gar keine Ports mehr im Status TIME_WAIT sind, bevor Sie neue Operationen über Rational Application Developer oder über die Administrationskonsole ausführen.
Rollenbasierte Berechtigung scheitert
SECJ0305I: Fehler bei der rollenbasierten Berechtigungsprüfung für securityname server.domain.name:3890/user.id,
accessId user:server.domain.name:3890/uid=user.id,ou=xxxx,dc=yyy,dc=zzz beim Aufrufen der Methode
getNodeName für Ressource Server und Modul Server.
Wenn der Aufrufende der Anwendung keiner der Rollen zugeordnet werden kann, hat die Anwendung
die Möglichkeit, sich mit einer der Rollen für den Aufrufenden anzumelden.
Beispiel: try
{
// LoginContext für die Authentifizierung einer Benutzer-ID und eines Kennworts erstellen.
javax.security.auth.login.LoginContext
lc = new javax.security.auth.login.LoginContext("WSLogin",
new com.ibm.websphere.security.auth.callback.WSCallbackHandlerImpl("adminuser",
"adminpassword"));
// Anmeldung durchführen
lc.login();
// Authentifiziertes Subjekt abrufen.
javax.security.auth.Subject adminSubject = lc.getSubject();
// Aktion definieren, die für das authentifizierte Subjekt ausgeführt wird.
// Sie können diese Aktion an beliebiger Stelle im Code definieren. Die Aktion
// wird im folgenden WSSubject.doAs referenziert.
java.security.PrivilegedAction adminAction = new java.security.PrivilegedAction()
{
public Object run()
{
try
{
// WebSphere-Verwaltungsservice abrufen. AdminService adminservice = AdminServiceFactory.getAdminService();
// MBean-Instanz des lokalen Servers für WebSphere-Verwaltung abrufen. ObjectName objectname = adminservice.getLocalServer();
// Knotennamen abrufen. String nodeName = (String)adminservice.getAttribute(objectname, "nodeName");
// Namen des Anwendungsservers abrufen. String serverName = (String)adminservice.getAttribute(objectname, "name");
// ID des Anwendungsserverprozesses abrufen. String serverPid = (String)adminservice.getAttribute(objectname, "pid");
// Ergebnis zurückgeben. Für dieses Beispiel nur PID des Servers zurückgeben.
return serverPid;
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
});
// Mit dem authentifizierten Objekt eine AdminClient-Ressource abrufen.
// Dieses Beispiel veranschaulicht, wie ein Verwaltungsclient erstellt und
// ein Zeichenfolgewert zurückgegeben wird, der außerhalb des
// doAs-Blocks verwendet wird.
String myData = (String)
com.ibm.websphere.security.auth.WSSubject.doAs(adminSubject, adminAction);
// "myData" später verwenden...
}
catch (javax.security.auth.login.LoginException e)
{
e.printStackTrace();
}
Wird ein Server in einer interaktiven wsadmin-Scripting-Sitzung gestartet oder gestoppt, wird eine Ausnahme zurückgegeben, die "read timed out" anzeigt.
WASX7015E: Beim Ausführen des Befehls: "$AdminControl startServer server1 Node1;" ist eine Ausnahme eingetreten.
Informationen zur Ausnahme: com.ibm.websphere.management.exception.ConnectorException
org.apache.soap.SOAPException: [SOAPException: faultCode=SOAP-ENV:Client; msg=Read
timed out; targetException=java.net.SocketTimeoutException: Read timed out]
Diese Ausnahme
tritt auf, weil der Zeitlimitwert zu klein ist. Erhöhen Sie das Zeitlimit, das mit der Eigenschaft
"com.ibm.SOAP.requestTimeout" in der Datei soap.client.props
im Verzeichnis Profilstammverzeichnis/properties
für eine Einzelserveredition bzw. im Verzeichnis
Profilstammverzeichnis/properties für
eine Network-Deployment-Installation angegeben ist. Der
Wert, den Sie auswählen, ist von einer Reihe von Faktoren, z. B. der Größe und der Anzahl
der im Server installierten Anwendungen, der Geschwindigkeit der Maschine und der
Verwendungsebene der Maschine abhängig. Der Standardwert der Eigenschaft "com.ibm.SOAP.requestTimeout" sind
180 Sekunden.
Diese Ausnahme
tritt auf, weil der Zeitlimitwert zu klein ist. Erhöhen Sie das Zeitlimit, das mit der Eigenschaft "com.ibm.SOAP.requestTimeout"
in der Datei soap.client.props im Verzeichnis Profilstammverzeichnis/properties
für eine Einzelserveredition bzw. im Verzeichnis
Profilstammverzeichnis/properties für
eine Network-Deployment-Installation angegeben ist. Der
Wert, den Sie auswählen, ist von einer Reihe von Faktoren, z. B. der Größe und der Anzahl
der im Server installierten Anwendungen, der Geschwindigkeit der Maschine und der
Verwendungsebene der Maschine abhängig. Der Standardwert der Eigenschaft "com.ibm.SOAP.requestTimeout" sind
180 Sekunden.
Probleme beim Starten oder beim Verwenden der Administrationskonsole oder des Dienstprogramms wsadmin
- Suchen Sie hinsichtlich des Anwendungsserverprozesses nach den folgenden Dateien:
Suchen Sie in der Datei Profilstammverzeichnis/logs/server_name/startServer.log nach der Nachricht, die anzeigt, dass der Server gestartet wurde: ADMU3000I: Der Server server1 ist für e-business bereit. Die Prozess-ID ist nnnn.
Suchen Sie in der Datei Profilstammverzeichnis/logs/server_name/startServer.log nach der Nachricht, die anzeigt, dass der Server gestartet wurde: ADMU3000I: Der Server server1 ist für e-business bereit. Die Prozess-ID ist nnnn.
Profilstammverzeichnis/logs/server_name/SystemOut.log
Profilstammverzeichnis/logs/server_name/SystemOut.log
Suchen Sie in den Serverprotokolldateien nach der Nachricht, die anzeigt, dass der Server gestartet wurde: WSVR0001I: Server "server" ist für e-business bereit.
- Suchen Sie im Produkt WebSphere Application Server Network Deployment nach den folgenden Dateien:
Suchen Sie in der Datei Profilstammverzeichnis/logs/dmgr/startServer.log nach der Nachricht, die anzeigt, dass der Server gestartet wurde: ADMU3000I: Der Server dmgr ist für e-business bereit. Die Prozess-ID ist nnnn.
Suchen Sie in der Datei Profilstammverzeichnis/logs/dmgr/startServer.log nach der Nachricht, die anzeigt, dass der Server gestartet wurde: ADMU3000I: Der Server dmgr ist für e-business bereit. Die Prozess-ID ist nnnn.
Suchen Sie in der Datei Profilstammverzeichnis/logs/dmgr/SystemOut.log nach der Nachricht, die anzeigt, dass der Server gestartet wurde: ADMU3000I: Der Server dmgr ist für e-business bereit. Die Prozess-ID ist nnnn.
Suchen Sie in der Datei Profilstammverzeichnis/logs/dmgr/SystemOut.log nach der Nachricht, die anzeigt, dass der Server gestartet wurde: ADMU3000I: Der Server dmgr ist für e-business bereit. Die Prozess-ID ist nnnn.
Suchen Sie in den Serverprotokolldateien nach der folgenden Nachrichten, die anzeigt, dass der Server gestartet wurde: WSVR0001I: Server dmgr ist für e-business bereit.
Für das z/OS-Produkt müssen Sie die Jobausgabe prüfen.
- Prüfen Sie alle Fehlernachrichten in diesen Dateien in der Nachrichtenreferenztabelle. Wählen Sie im InfoCenter die Ansicht Referenz aus, und klicken Sie anschließend auf Nachrichten. Wird beim Versuch, wsadmin zu starten, eine Nachricht wie WASX7213I: Dieser Scripting-Client ist mit keinem Serverprozess verbunden. angezeigt, ist das ein Hinweis darauf, dass der Serverprozess nicht aktiv ist, der Zugriff auf die Hostmaschine, auf der der Server ausgeführt wird, nicht möglich bzw. der von wsadmin verwendet Port oder Servername ungültig ist.
- Vergewissern Sie sich, dass Sie die richtige Portnummer verwenden, um mit der
Administrationskonsole oder dem wsadmin-Server zu kommunizieren:
Überprüfen Sie die Datei SystemOut.log.
Überprüfen Sie die Datei joblogs.
- Die Zeile ADMC0013I: Der SOAP-Connector ist an Port nnnn verfügbar weist auf den Port hin, den der Server für die Überwachung von wsadmin-Funktionen verwendet.
Die Eigenschaft "com.ibm.ws.scripting.port" in der Datei Profilstammverzeichnis/properties/wsadmin.properties steuert den Port, den das Dienstprogramm "wsadmin" zum Senden von Anforderungen an den Server verwendet.
Die Eigenschaft "com.ibm.ws.scripting.port" in der Datei Profilstammverzeichnis/properties/wsadmin.properties steuert den Port, den das Dienstprogramm "wsadmin" zum Senden von Anforderungen an den Server verwendet.
Falls dieser Port von dem in der Datei SystemOut.log angezeigten Wert abweicht, ändern Sie die Portnummer in der Datei wsadmin.properties, oder geben Sie die richtige Portnummer an, wenn Sie das Dienstprogramm "wsadmin" mit der Eigenschaft "-port Portnummer" über die Befehlszeile starten.
Die Eigenschaft "com.ibm.ws.scripting.port" in der Datei Profilstammverzeichnis/properties/wsadmin.properties steuert den Port, den das Dienstprogramm "wsadmin" zum Senden von Anforderungen an den Server verwendet.
Falls dieser Port von dem in der Datei SystemOut.log angezeigtem Wert abweicht, ändern Sie die Portnummer in der Datei wsadmin.properties, oder geben Sie die richtige Portnummer an, wenn Sie das Dienstprogramm "wsadmin" mit der Eigenschaft "-port Portnummer" über die Befehlszeile starten.
Die Eigenschaft "com.ibm.ws.scripting.port" in der Datei Profilstammverzeichnis/properties/wsadmin.properties steuert den Port, den das Dienstprogramm "wsadmin" zum Senden von Anforderungen an den Server verwendet.
Falls dieser Port von dem in den Serverprotokolldateien angezeigtem Wert abweicht, ändern Sie die Portnummer in der Datei wsadmin.properties, oder geben Sie die richtige Portnummer an, wenn Sie das Dienstprogramm "wsadmin" mit der Eigenschaft "-port Portnummer" über die Befehlszeile starten.
Die Nachricht SRVE0171I: Der Transport http ist empfangsbereit an Port nnnn (Standardwert: 9060) zeigt den Port an, den der Server verwendet, um Anforderungen der Administrationskonsole zu empfangen.
- Weicht der Portwert von dem in der Webadresse für die Administrationskonsole angezeigten Wert ab, müssen Sie für die Webadresse im Browser den richtigen Wert angeben. Der Standardwert ist http://localhost:9060/ibm/console.
- Verwenden Sie den Befehl telnet, um sicherzustellen, dass der Host, auf dem der Anwendungsserver oder Deployment Manager ausgeführt wird, von dem System, auf dem der Browser oder das Programm wsadmin ausgeführt wird, erreichbar ist. Wenn die an den Host abgesetzten Pingsignale erfolgreich sind, liegen keine Firewall- oder Konnektivitätsprobleme vor.
- Wenn der Host, auf dem der Anwendungsserver oder Deployment Manager ausgeführt wird,
nicht die Maschine ist, auf der der Client-Browser oder der Befehl wsadmin ausgeführt wird,
vergewissern Sie sich, dass der Hostname richtig angegeben wurde. Überprüfen Sie Folgendes:
- den Hostnamen in der im Browser für die Konsole angegebene Webadresse
- die Option -host "Hostname" des Befehls wsadmin, die verwendet wird, um das Dienstprogramm wsadmin an den richtigen Server zu verweisen
Die technische Unterstützung von WebSphere Application Server fordert Sie für eine detaillierte Fehlerbestimmung möglicherweise dazu auf, einen Trace für die Administrationskomponente durchzuführen. Die Tracespezifikation für diese Komponente ist com.ibm.websphere.management.*=all=enabled:com.ibm.ws.management.*=all=enabled"
Methode "AdminConfig.parents" kann nicht zum Abrufen der gültigen übergeordneten Typen einiger Konfigurationstypen verwendet werden
wsadmin>print AdminConfig.parents( "JavaVirtualMachine")
Die folgende
Informationsnachricht wird angezeigt:
WASX7351I: Mit dem Befehl "parents" können keine übergeordneten Objekte des Typs "JavaVirtualMachine" gesucht werden.
#---------------------------------------------------------------------
# Name: parentTypes()
# Rolle: Sucht nach Konfigurationstypen, die möglicherweise Objekte des angegebenen Typs enthalten,
# falls beim Aufrufen von "AdminConfig.parents( Type )" folgendes Ergebnis angezeigt wird:
# WASX7351I: Mit dem Befehl "parents" können keine übergeordneten Objekte des Typs .... gesucht werden.
# Anmerkung: Im Gegensatz zum Befehl "AdminConfig.list()" löst diese Routine keine InvalidConfigDataTypeException
# aufgrund eines unbekannten Datentyps aus.
#---------------------------------------------------------------------
def parentTypes( Type ) :
import os
WSAStypes = AdminConfig.types().splitlines()
if Type in WSAStypes :
result = AdminConfig.parents( Type )
if result.startswith( 'WASX7351I' ) :
result = []
for thisType in WSAStypes :
if AdminConfig.attributes( thisType ).find( Type ) > -1 :
result.append( thisType )
result = (os.linesep).join( result )
else:
print 'parentTypes error: unknown / unrecognized type:', Type
result = None
return result
Sollten Sie den Fehler auf die beschriebenen Arten nicht beheben können, schlagen Sie im Abschnitt
Installation ist abgeschlossen, aber die Administrationskonsole
kann nicht gestartet werden nach, ob der Fehler dort beschrieben wird. Stellen Sie fest,
ob der Fehler erkannt und dokumentiert wurde. Verwenden Sie dazu
die Links im Abschnitt Fehlerdiagnose und -behebung:
Lernmaterial. Wenn der angezeigte Fehler nicht in ähnlicher Form dokumentiert ist oder wenn Sie den Fehler
anhand der bereitgestellten Informationen nicht beheben können, wenden Sie sich an den IBM Support, um Unterstützung
zu erhalten.
Sollten Sie den Fehler auf die beschriebenen Arten nicht beheben können, schlagen Sie im Abschnitt
Installation ist abgeschlossen, aber die Administrationskonsole
kann nicht gestartet werden nach, ob der Fehler dort beschrieben wird. Stellen Sie fest,
ob der Fehler bekannt ist und dokumentiert wurde. Verwenden Sie dazu
die Links im Artikel Fehlerdiagnose und -behebung:
Lernmaterial.