Versionshinweise zu Sun GlassFish Enterprise Server 2.1

Kapitel 3 Bekannte Probleme und Beschränkungen

In diesem Kapitel werden bekannte Probleme und die zugehörigen Abhilfemaßnahmen für die Software Sun GlassFish Enterprise Server 2.1 erläutert. Wenn für ein Problem keine spezielle Plattform angegeben ist, betrifft es alle Plattformen.

Die hier gegebenen Informationen sind wie folgt unterteilt:

Administration

In diesem Abschnitt werden bekannte Verwaltungsprobleme sowie ihre Lösungen beschrieben.

Standalone-Instanzen erhalten gelegentlich Dateien von anderen Instanzen (6698604).

Beschreibung

Unter bestimmten Bedingungen werden Dateien, die auf DAS installiert sind und die mit einer bestimmten Instanz synchronisiert werden sollen, an weitere Instanzen gesendet.

Lösung

Keine bekannte Lösung.

Die Startmeldung des Befehls start-cluster ist zu ausführlich.

Beschreibung

Der Befehl asadmin start-cluster zeigt zu viele Meldungen an, auch wenn nicht kritische Komponenten während des Startens ausfallen. Beachten Sie das folgende Beispiel einer Befehlsausgabe, wenn nicht kritische Elemente (bezogen auf die Instanzen im Cluster) ausfallen:


./asadmin start-cluster --port 9898 cluster1
Please enter the admin user name>admin
Please enter the admin password>
The clustered instance, instance2, was successfully started.
error 0 [#|2008-07-17T14:58:16.496+0200|WARNING|sun-appserver9.1|javax.jms|
_ThreadID=10;_ThreadName=main;
_RequestID=90bbbe3a-d654-4480-b295-7e317d945a4a;|[C4003]: 
Error occurred on connection creation [localhost:37676]. - cause: 
java.net.ConnectException: Connection refused|#]


error 1 [#|2008-07-17T14:58:17.517+0200|WARNING|sun-appserver9.1|javax.jms|
_ThreadID=10;_ThreadName=main;
_RequestID=90bbbe3a-d654-4480-b295-7e317d945a4a;|[C4003]: 
Error occurred on connection creation [localhost:37676]. - cause: 
java.net.ConnectException: Connection refused|#]


error 2 [#|2008-07-17T14:58:30.596+0200|WARNING|sun-appserver9.1|
javax.enterprise.system.container.ejb|
_ThreadID=13;_ThreadName=pool-1-thread-4;TimerBean;
_RequestID=5954a044-df06-4a3e-902a-0c40b4b6cddb;
|EJB5108:Unable to initialize EJB Timer Service. 
The likely cause is the database has not been 
started or the timer database table has not been created.|#]


error 3 [#|2008-07-17T14:58:32.512+0200|WARNING|sun-appserver9.1|
javax.enterprise.resource.resourceadapter|_ThreadID=10;_ThreadName=main;
__CallFlowPool;_RequestID=90bbbe3a-d654-4480-b295-7e317d945a4a;|
RAR5005:Error in accessing XA resource with JNDI name [__CallFlowPool] for recovery|#]


The clustered instance, instance1, was successfully started.
error 0 [#|2008-07-17T14:58:21.117+0200|WARNING|sun-appserver9.1|
javax.enterprise.system.container.ejb|
_ThreadID=13;_ThreadName=pool-1-thread-4;TimerBean;
_RequestID=30827d9a-72ac-4854-b216-06494b6a9fb5;
|EJB5108:Unable to initialize EJB Timer Service. The likely cause is the database has 
not been started or the timer database table has not been created.|#]


error 1 [#|2008-07-17T14:58:23.106+0200|WARNING|sun-appserver9.1|
javax.enterprise.resource.resourceadapter|
_ThreadID=10;_ThreadName=main;__CallFlowPool;
_RequestID=b41d76fa-0203-49f7-a2ae-83bf242d3e7a;
|RAR5005:Error in accessing XA resource with JNDI name [__CallFlowPool] for recovery|#]


Command start-cluster executed successfully.

Lösung

Keine bekannte Lösung. Diese Meldungen (Ausnahmen) können ignoriert werden.

Generic RA Resource Adapter konnte nicht für IBM MQ bereitgestellt werden (Problem 6605)

Beschreibung

Die Bereitstellung eines generischen RA-Adapters für IBM Message Queue schlägt fehl. In der Datei server.policy werden folgende Berechtigungen gewährt.


grant {
      permission java.util.logging.LoggingPermission "control";
      permission java.util.PropertyPermission "*", "read,write";
      }

Lösung

Ändern Sie die Berechtigungen in der Datei server.policy wie folgt:


grant codeBase
"file:${com.sun.aas.installRoot}/lib/install/applications/adminapp/-" {
  permission java.util.logging.LoggingPermission "control";
 };

Das Skript package-appclient funktioniert nicht, wenn domain1 nicht vorhanden ist (6171458)

Beschreibung

Standardmäßig befindet sich hartcodierter Wert in as-install/lib/package-appclient.xml , der für die Variable AS_ACC_CONFIG für domain1 gilt, auf die asenv.conf verweist. Wenn domain1 gelöscht und eine neue Domäne erstellt wird, wird die AS_ACC_CONFIG-Variable nicht entsprechend der neuen Domäne aktualisiert, sodass die Ausführung des package-appclient-Skripts fehlschlägt.

Lösung

Gehen Sie folgendermaßen vor:

  1. Entfernen Sie domain1 nicht und erstellen Sie die anderen Domänen um diese Domäne herum.

  2. Entfernen Sie domain1, und ersetzen Sie den hartcodierten Wert für domain1 in as-install/lib/package-appclient.xml durch den neuen Domänennamen.

Diesen Vorgang müssen Sie für jede neu erstellte Domäne durchführen, wenn domain1 nicht mehr vorhanden ist.

Das Starten des Servers mit einem zusätzlichen JMX-Agenten wird nicht unterstützt (6200011)

Beschreibung

J2SE 1.4.x, 5.0 oder höher kann auf dem Server konfiguriert werden. In J2SE 5.0 ermöglicht eine plattformeigene Funktion das Starten eines JMX-Agenten. Um diese Funktion zu aktivieren, setzen Sie die entsprechenden Systemeigenschaften für den Serverstart fest.

Zu den möglichen Werten gehören:


name="com.sun.management.jmxremote" value="true"
name="com.sun.management.jmxremote.port" value="9999"
name="com.sun.management.jmxremote.authenticate" value="false"
name="com.sun.management.jmxremote.ssl" value="false"

Nachdem Sie die JMX-Eigenschaften konfiguriert und den Server gestartet haben, wird ein neuer jmx-connector-Server in der Virtual Machine gestartet. Ein unerwünschter Nebeneffekt davon besteht darin, dass die Administrationsfunktionen beeinträchtigt werden und die Application Server-Administrationskonsole und Befehlszeilenschnittstelle evtl. unerwünschte Ergebnisse produzieren. Dieses Problem wird durch Konflikte zwischen dem integriertenjmx-connector-Server und dem neuen jmx-connector-Server verursacht.

Lösung

Wenn Sie jconsole (oder einen anderen JMX-kompatiblen Client) verwenden, können Sie den standardmäßigen JMX-Konnektor-Server wiederverwenden, der beim Serverstart aufgerufen wird.

Beim Starten des Servers wird eine Zeile ähnlich der unten dargestellten Zeile auf dem Server angezeigt. Sie können eine Verbindung zur dort angegebenen JMXService-URL herstellen und dieselben Management-/Konfigurationsoperationen durchführen, nachdem Sie die Anmeldeinformationen erfolgreich angegeben haben, beispielsweise:


[#|2004-11-24T17:49:08.203-0800|INFO|sun-appserver-ee8.1|
javax.enterprise.system.tools.admin|_ThreadID=10;|ADM1501: 
Here is the JMXServiceURL for the JMXConnectorServer: 
[service:jmx:rmi:///jndi/rmi://hostname:8686/management/
rmi-jmx-connector]. This is where the remote administrative 
clients should connect using the JSR 160 JMX Connectors.|#]

Weitere Informationen finden Sie im Sun GlassFish Enterprise Server 2.1 Administration Guide.

Konfigurationsdatei für den Lastenausgleich wird nicht mit der Endpunkt-URL eines Webservice erstellt (6236544, 6275436)

Beschreibung

Beim Einrichten der Lastenausgleichskonfiguration mit einer Anwendung, die über ein EJB-Modul verfügt und eine Webservice-URL exportiert, befindet sich das Kontext-Stammverzeichnis (root) für den Webservice nicht in der resultierenden Datei loadbalancer.xml.

Lösung

  1. Bearbeiten Sie die Datei loadbalancer.xml wie folgt, um das fehlende Webmodul hinzuzufügen:


    <web-module context-root="context-root-name"
    disable-timeout-in-minutes="30" enabled="true"/>
  2. Ersetzen Sie den Wert context-root-name mit dem Kontext-Rootnamen des Webservice, der als EJB offengelegt wurde.

Die Datei .asadmintruststore ist nicht in der Enterprise Server-Dokumentation beschrieben (6315957)

Beschreibung

Die Datei .asadmintruststore wird in der Enterprise Server-Dokumentation nicht beschrieben. Falls diese Datei nicht im home-Verzeichnis des Serveradministrators vorhanden ist, können schwerwiegende Fehler beim Upgrade bestimmter, auf dem Server gehosteter Anwendungen auftreten.

Lösung

Cluster-Instanzen werden aufgrund einer Zeitüberschreitung beim Herstellen der Verbindung mit dem JMS-Broker nicht gestartet (6523663)

Beschreibung

Der standardmäßige MQ-Integrationsmodus für eine Enterprise Server-Cluster-Instanz lautet LOCAL. Wenn Enterprise Server in einem Verzeichnis (PATH) installiert wird, das lang (also "nicht kurz") ist, stürzt imqbrokerscv.exe beim Starten der Cluster-Instanz ab. Das Problem wird durch die Speicherzuweisung in imqbrokersvc verursacht.

Lösung

Der JMS-Diensttyp für die Cluster-Instanz muss vom Standardwert LOCAL in REMOTE geändert werden. In dieser Konfiguration zeigen alle Instanzen auf den DAS-Broker. Befolgen Sie die unten stehenden Anweisungen zum Konfigurieren eines Clusters im REMOTE-Modus.


Hinweis –

Bei Auswahl des REMOTE-Modus verwenden alle Instanzen einen Broker (DAS), sodass beim Start des Enterprise Server-Clusters kein Broker-Cluster erstellt wird. Weitere Informationen finden Sie in “Auto-clustering” in Abschnitt 4.1, Absatz iii in der Übersicht auf http://www.glassfishwiki.org/gfwiki/attach/OnePagersOrFunctionalSpecs/as-mq-integration-gfv2.txt. Die oben stehende Funktionalität ist nicht verfügbar!


ProcedureVerwenden der Befehlszeile

Bevor Sie beginnen

Ändern Sie den Port und die Passwortdatei gemäß Ihrer Umgebung. Beachten Sie, dass im unten stehenden Beispiel der Clustername racluster, der DAS-Admin-Port 5858 und der DAS JMS-Port 7676 lautet.

  1. Ändern Sie die Clusterkonfiguration, und ändern Sie den JMS-Typ in REMOTE .


    as-install/bin/asadmin.bat set --port 5858 --user admin --passwordfile \
    as-install/bin/password_file racluster.jms-service.type=REMOTE
  2. Erstellen Sie einen JMS-Host in Übereinstimmung mit dem DAS JMS-Host.


    as-install/bin/asadmin.bat create-jms-host --port 5858 --user admin --passwordfile \
    as-install/bin/password_file --target racluster --mqhost localhost --mqport 7676 \
    --mquser admin --mqpassword admin dashost
  3. Legen Sie für den JMS-Host den DAS JMS-Host fest, der im vorherigen Schritt erstellt wurde.


    as-install/bin/asadmin.bat set --port 5858 --user admin --passwordfile \
    as-install/bin/password_file racluster.jms-service.default-jms-host=dashost

ProcedureVerwenden der Admin-GUI

  1. Wechseln Sie zu ?Konfigurationen“->cluster-name-config->Java Message Service->JMS Hosts.

  2. Klicken Sie auf Neu, um einen neuen JMS-Host zu erstellen; wählen Sie für diesen Host den Namen dashost.

  3. Geben Sie die Konfigurationseinstellungen in Übereinstimmung mit dem JMS-Dienst für den DAS ein; die Standardwerte lauten wie folgt:

    • Hostname: localhost

    • Port: 7676

    • Admin-Benutzer: admin

    • Password: admin

    Ändern Sie diese Einstellungen nach Bedarf für Ihren DAS JMS-Dienst.

  4. Wechseln Sie erneut auf die Registerkarte "Java Message Service", und ändern Sie den JMS-Diensttyp in REMOTE (der Standardwert lautet LOCAL).

  5. Wählen Sie dashost aus der Dropdown-Liste default-jms-host aus.

  6. Speichern Sie die Änderungen, und starten Sie den Knotenagenten oder Cluster.

Keine Anzeige des jmaki-Diagramms in Netscape 8.1.3, Mozilla 1.7 und Safari 2.0.4 möglich (6543014)

Beschreibung

Beim Versuch, ein Diagramm von der Seite zur Überwachung der Protokollstatistik über einen nicht unterstützten Browser anzuzeigen, wird möglicherweise die folgende Fehlermeldung angezeigt:


Error loading jmaki.widgets.jmaki.charting.line.Widget : id=form1:jmaki_chart11
Script: http://easqelx5.red.iplanet.com:4848/resources/jmaki/charting/ \
line/component.js (line:5437).
Message: area.initialize is not a function

Lösung

Verwenden Sie einen unterstützten Browser. Eine Liste der in Enterprise Server unterstützten Browser finden Sie unter Browser.

Standardports ändern sich in jeder Hauptversion von AS (6566481)

Beschreibung

Der standardmäßige Admin-Port wurde in jeder der drei vergangenen Versionen von Enterprise Server geändert. Für die Versionen 7.x, 8. x und 9.x lauten die standardmäßigen Admin-Ports wie folgt:

Lösung

Dies ist kein Fehler, sollte jedoch beachtet werden. Der standardmäßige Admin-Port ist lediglich eine Empfehlung. Es wird davon ausgegangen, dass in zukünftigen Versionen von Enterprise Server der Standardport 4848 beibehalten wird.

Der create-domain-Befehl schlägt mit einem benutzerdefinierten Master-Passwort unter AIX fehl (6628170)

Beschreibung

Unter einem AIX-Betriebssystem schlägt der Versuch, eine Domäne mit einem benutzerdefinierten Master-Passwort zu erstellen, mit dem folgenden Fehler fehl:


keytool error (likely untranslated): java.lang.NullPointerException
 Enter keystore password:  New keystore password:

ProcedureLösung: (AIX) So erstellen Sie eine Domäne mit einem benutzerdefinierten Master-Passwort


Hinweis –

In der folgenden Vorgehensweise werden nur die in den einzelnen Schritten erforderlichen Optionen verwendet. Wenn Sie zusätzliche Optionen für einen Befehl benötigen, geben Sie diese Optionen im Befehl an. Weitere Informationen zu Enterprise Server-Befehlen finden Sie im Sun GlassFish Enterprise Server 2.1 Reference Manual .


  1. Erstellen Sie ein Shell-Skript, das die folgenden Codezeilen enthält:

    #!/bin/sh
    changeKeystorePass() {
      keytool -storepasswd -keystore ${KEYSTORE} -storepass ${OLD} -new ${NEW}
    }
    changeTruststorePass() {
      keytool -storepasswd -keystore ${TRUSTSTORE} -storepass ${OLD} -new ${NEW}
    }
    changeKeyPass() {
      keytool -keypasswd -alias s1as -keystore ${KEYSTORE} -storepass ${NEW} -keypass ${OLD} -new ${NEW}
    }
    changeDomainPasswordEntry() {
      keytool -storepasswd -storetype JCEKS -keystore ${DOMAINPASSWORDS} -storepass ${OLD} -new ${NEW}
    }
    deleteMasterPasswordFile() {
      if [ -f ${DOMAIN_PATH}/master-password ] ; then
        echo Deleting ${DOMAIN_PATH}/master-password
        rm -f ${DOMAIN_PATH}/master-password
      fi
    }
    DOMAIN_PATH=$1
    OLD=$2
    NEW=$3
    if [ $# != 3 ] ; then
      echo Usage: $0 domain-path old-master-pass new-master-pass
      exit 1
    fi
    echo Processing ...
    if [ ! -f ${DOMAIN_PATH}/config/domain.xml ] ; then
      echo "Domain with folder ${DOMAIN_PATH} does not exist, create it first"
      exit 2
    else
      KEYSTORE=${DOMAIN_PATH}/config/keystore.jks
      TRUSTSTORE=${DOMAIN_PATH}/config/cacerts.jks
      DOMAINPASSWORDS=${DOMAIN_PATH}/config/domain-passwords
      changeKeystorePass
      changeTruststorePass
      changeKeyPass
      changeDomainPasswordEntry
      deleteMasterPasswordFile
    fi
  2. Erstellen Sie eine Domäne, und geben Sie dabei das standardmäßige Master-Passwort an.


    aadmin create-domain {--adminport aminportno|--portbase portbase} domain-name
    Please enter the admin user name>admin-user
    Please enter the admin password>admin-user-password
    Please enter the admin password again>admin-user-password
    Please enter the master password [Enter to accept the default]:>
    Please enter the master password again [Enter to accept the default]:>

    Das standardmäßige Master-Passwort lautet changeit.

  3. Ändern Sie das Masterpasswort der Domäne, die Sie soeben erstellt haben.

    Zum Ändern des Hauptpassworts führen Sie das Skript aus, das Sie in Schritt 1 erstellt haben.


    script-name domain-path old-password new-password
    
  4. Starten Sie die Domäne, die Sie in Schritt 2 erstellt haben.


    asadmin start-domain domain-name
    

    Da die Domäne über ein benutzerdefiniertes Master-Passwort verfügt, werden Sie zur Eingabe des Master-Passworts aufgefordert.

  5. Geben Sie das neue Master-Passwort ein.

  6. Für Domänen, die für die Clusterunterstützung konfiguriert wurden, erstellen und starten Sie einen Knotenagenten.

    1. Erstellen Sie einen Knotenagenten für die Domäne, die Sie in Schritt 2 erstellt haben.


      asadmin create-node-agent --port portno --user admin-user
      
    2. Starten Sie den Knotenagenten, den Sie in Schritt a. erstellt haben.


      asadmin start-node-agent
      

      Da die Domäne über ein benutzerdefiniertes Master-Passwort verfügt, werden Sie zur Eingabe des Master-Passworts aufgefordert.

    3. Geben Sie das neue Master-Passwort ein.

Siehe auch

Die folgenden Enterprise Server-Manpages:

AIX: 0403-027 The parameter list is too long (6625591)

Beschreibung

Unter einem AIX-Betriebssystem schlagen einige mit dem Betriebssystem verknüpfte Operationen möglicherweise mit folgendem Fehler fehl:


0403-027 The parameter list is too long

Beispiele für Operationen, die mit dem Betriebssystem verknüpft sind, sind die Bereitstellung von Anwendungen oder das Ausführen des Anwendungsclientcontainers.

Dieses Problem wird üblicherweise durch lange Dateipfade in der Umgebungsvariable CLASSPATH verursacht.

Lösung

Wählen Sie eine der folgenden Lösungen:

Procedure(AIX) So erhöhen Sie die maximale Länge der Befehlszeile

Das ncargs-Attribut bestimmt die maximale Länge der Befehlszeile, einschließlich Umgebungsvariablen. Unter AIX-Betriebssystemen lautet der Standardwert des ncargs-Attributs vier, 4–KB-Blöcke. Um sicherzustellen, dass Enterprise Server-Befehle die maximale Länge der Befehlszeile nicht überschreiten, erhöhen Sie diesen Wert auf 16 4–KB-Blöcke.


Hinweis –

Nachdem Sie das ncargs-Attribut geändert haben, ist kein Neustart und keine Aktualisierung von Daemons erforderlich.


  1. Ermitteln Sie den Wert des ncargs-Attributs.


    lsattr -EH -l sys0 | grep ncargs
    
  2. Wenn der Wert von ncargs geringer ist als 16 4–KB-Blöcke, erhöhen Sie den Wert auf 16.


    chdev -l sys0 -a ncargs=16
    

Apache und Lastenausgleich-Plugin

In diesem Abschnitt werden bekannte Probleme des Apache Webservers und des Lastenausgleich-Plugins sowie zugehörige Lösungen erläutert.

Die Bereitstellung der Java EE-Anwendung mit EJB als Webdienst wird nicht vom Lastenausgleichs-Plug-In erfasst (Problem 685).

Beschreibung

Wenn Sie WAR (oder EAR) mit einem Webdienst auf Servlet-Basis bereitstellen, wird der HTTP-Lastenausgleich mit den Informationen über den Webdienst aktualisiert. Wenn ein Webdienst auf EJB-Basis bereitgestellt wird, wird der HTTP-Lastenausgleich nicht mit dem neuen Objekt aktualisiert.

Lösung

Fügen Sie diese Kontext-Roots manuell in die Lastenausgleichs-Konfigurationsdatei (loadbalancer.xml) ein. Die dynamische Neukonfiguration der Lastenausgleichskonfiguration (beim Verwenden der Funktion auto-apply) würde dazu führen, dass ältere manuelle Bearbeitungen verloren gehen.

Schalten Sie die Funktion auto-apply in DAS ab, und verwenden Sie stattdessen die manuelle Exportfunktion, um die Lastenausgleichskonfiguration auf dem Webserver anzuwenden.

Das Administratorhandbuch zur Hochverfügbarkeit enthält keine Anweisungen zur Verwendung eines Zertifikats für Apache 2.0 (6307976)

Zum Ausführen der Apache-Sicherheit müssen Sie ein Zertifikat verwenden. Informationen, wie Sie ein Zertifikat erhalten können, finden Sie in den Angaben zu Zertifikaten unter modssl FAQ.

Apache Web Server muss als Root gestartet werden (6308021)

Wenn Ihr Anwendungsserver unter Solaris unter Root installiert wurde, müssen Sie Apache Web Server als Root starten. Java Enterprise System-Installationen werden als Root installiert. Für Apache 2.0 gilt Folgendes: Nach dem Start als Root kann Apache umgeschaltet und als ein anderer von Ihnen festgelegter Benutzer ausgeführt werden. Diesen Benutzer legen Sie in der Datei /conf/httpd.conf fest. Zum Start als Root müssen Sie auf vielen Systemen die Datei httpd.conf bearbeiten, um die korrekte Gruppe anzugeben. Ersetzen Sie folgende Zeile:

Group #-1

durch

Group nobody

Weitere Informationen zur Benutzer-/Gruppenverwendung finden Sie in der Datei httpd.conf.

Anwendungsclient

In diesem Abschnitt werden bekannte Probleme des Anwendungsclients sowie ihre Lösungen beschrieben.

Mit Application Client Archive kombinierte Bibliotheks-JAR überschreibt MANIFEST-Datei (6193556)

Beschreibung

Wenn Sie in Ihrer Client-JAR über eine JAR-Datei auf oberster Ebene verfügen (in diesem Fall reporter.jar) und den Client JAR bereitstellen, überschreibt die Datei MANIFEST für diese JAR die Datei MANIFEST für den Client-JAR.

Lösung

Zu diesem Zeitpunkt steht keine Lösung zur Verfügung.

ACC versucht stets, eine Verbindung mit localhost:3700 herzustellen (6527987)

Beschreibung

Der Anwendungsclient versucht stets, eine Verbindung mit localhost:3700 herzustellen. Das Problem ist, dass mehrere Systemeigenschaften gelesen werden müssen, bevor der Clientcode aufgerufen wird.

Lösung

Setzen Sie die folgenden Werte als Systemeigenschaften (-D in JAVA_CMD). Setzen Sie diese Werte nicht in Ihrem appclient-Code:


org.omg.CORBA.ORBInitialHost = server-instance-host
org.omg.CORBA.ORBInitialPort = server-instance-port

Domäne kann nicht gestartet werden, sunpkcs11.jar nicht vorhanden (6571044)

Beschreibung

Bei Ausführung auf Linux mit 64–Bit wird beim Starten der Domäne die folgende Ausnahme ausgelöst. Das Problem wird durch eine nicht vorhandene Datei sunpkcs11.jar im Verzeichnis jdk1.5.0_11/jre/lib/ext/ ausgelöst.

Lösung

Dies ist ein bekannter JDK-Fehler bei 64–Bit-Versionen von Linux. Dieses Problem wird in JDK 1.5.0_13 behoben.

ASQuickStartup führt zu SocketChannel.keyFor()-Fehler, anstelle von SelectionKey wird Null zurückgegeben (Issue Tracker 3027)

Beschreibung

Wenn ein SocketChannel für mehr als eine Auswahl registriert ist, wird für socketChannel.keyFor(lastRegisteredSelector) anstelle von SelectionKey Null zurückgegeben.

Lösung

Dieses Problem hängt mit dem JDK-Problem 6562829 zusammen und wird voraussichtlich in 6.0 U3 behoben. In Enterprise Server wurde eine Umgehung implementiert, sodass das Wrapping für die Auswahl aufgehoben wird, bevor die API keyFor aufgerufen wird. Dadurch kann keyFor erfolgreich durchgeführt werden, bis das JDK-Problem behoben wurde.

Im Lieferumfang enthaltene Sun JDBC-Treiber

In diesem Abschnitt werden bekannte Probleme der im Lieferumfang enthaltenen Sun JDBC-Treiber sowie ihre Lösungen beschrieben.

PreparedStatement-Fehler (6170432)

Beschreibung 1

Wenn eine Anwendung mehr als 3000 PreparedStatement -Objekte in einer Transaktion generiert, kann für DB2 der folgende Fehler auftreten:

[sunm][DB2 JDBC Driver] Keine weiteren Anweisungen. Erstellen Sie das Paket erneut mit einem höheren Wert für dynamicSections.

Lösung 1

Fügen Sie die folgenden Eigenschaften zur Verbindungspooldefinition hinzu, damit der Treiber DB2-Pakete mit einem größeren dynamischen Abschnittswert neu bindet:

createDefaultPackage=true replacePackage=true dynamicSections=1000

Informationen zum Konfigurieren von Verbindungspools finden Sie im Sun GlassFish Enterprise Server 2.1 Administration Guide .

Beschreibung 2

Im Zusammenhang mit dem oben erwähnten PrepardStatement-Fehler kann folgender Fehler auftreten:

[sunm][DB2 JDBC Driver][DB2]Virtueller Speicher oder Datenbankressource steht nicht zur Verfügung.

Lösung 2

Erhöhen Sie den Wert des Konfigurationsparameters APPLHEAPSZ des DB2-Servers. Ein geeigneter Wert ist 4096.

Beschreibung 3

Isolationsebene TRANSACTION_SERIALIZABLE Wenn eine Anwendung die Isolationsebene TRANSACTION_SERIALIZABLE und einen der oben genannten Parameter verwendet, kann die Anwendung beim Verbindungsaufbau abstürzen.

Lösung 3

Um die Isolationsebene für eine Verbindung wie gewünscht setzen zu können, muss das entsprechende Verbindungspool auf derselben Isolationsebene erstellt werden. Anweisungen finden Sie im Sun GlassFish Enterprise Server 2.1 Administration Guide.

Java DB wird nach dem Neustarten des Computers oder Starten von Server nicht gestartet (6515124)

Beschreibung

Die im Paket enthaltene Java DB-Datenbank wird nach dem Neustarten eines Hostsystems oder einer Solaris-Zone bzw. nach dem Starten von Enterprise Server nicht automatisch neu gestartet. Dies ist kein Fehler, sondern das erwartete Verhalten für Anwendungen, die im Paket enthalten sind, bzw. für Drittanbieteranwendungen. Das Problem ist, dass die Java DB vor der Enterprise Server-Instanz gestartet werden muss.

Lösung

Stellen Sie nach dem Neustart des Hostcomputers oder einer Solaris-Zone sicher, dass Sie die Java DB vor Enterprise Server starten. Beispiel:


/opt/SUNWappserver/appserver/bin/asadmin start-database

Unter Administration Tools in Sun GlassFish Enterprise Server 2.1 Quick Start Guide des Sun GlassFish Enterprise Server 2.1 Quick Start Guide finden weitere Informationen zu den Optionen für den Befehl asadmin .

Bereitstellung

Automatische Bereitstellung schlägt auf einem Cluster manchmal fehl (6610527)

Beschreibung

Zeitprobleme führen in Domänen, für die Clusterunterstützung konfiguriert wurde, zum Fehlschlagen der automatischen Bereitstellung. Dieses Problem wurde in Domänen ohne Clusterunterstützung nicht beobachtet.

Lösung

Wählen Sie eine der folgenden Lösungen:

Im Paket enthaltene ANT gibt Fehler java.lang.NoClassDefFoundError aus (6265624)

Beschreibung

Der folgende Ausnahmefehler tritt im Thread "main" auf: java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher.

Lösung

Die Verwendung der Paket-ANT für Funktionen außerhalb von Enterprise Server wird nicht empfohlen.

Das anwendungsspezifische Klassenladeprogramm wird nicht von der JSP-Kompilation verwendet (6693246).

Beschreibung

Das anwendungsspezifische Klassenladeprogramm (applibs oder --libraries) wird nicht von der JSP-Anwendung verwendet. In der Folge werden JSPs, die auf diese JARs verweisen, nicht kompiliert.

Lösung

Keine bekannte Lösung.

Dokumentation

In diesem Abschnitt werden die bekannten Probleme mit der Dokumentation sowie ihre Lösungen beschrieben.

Javadoc-Unregelmäßigkeiten (verschiedene Fehlernummern)

Die Javadoc verschiedener AMX-Schnittstellen und -Methoden fehlen oder sind nicht korrekt:

EJB

Resource Injection funktioniert nicht in HandlerChain (6750245)

Beschreibung

Resource Injection funktioniert aufgrund der EJB-Installationsreihenfolge nicht in HandlerChain.

Lösung

Keine bekannte Lösung.

Hochverfügbarkeit

In diesem Abschnitt werden bekannte Probleme mit der Hochverfügbarkeits-Datenbank (HADB) und zugehörige Lösungen erläutert.

Die Statusprüfung des Lastenausgleich-Plug-Ins erzeugt eine große Anzahl von Verbindung und unterbrochenen Verbindungen im Hintergrund (Last) (6453946).

Beschreibung

Die Statusprüfung des Lastenausgleich-Plug-Ins erzeugt eine große Anzahl von Verbindung und unterbrochenen Verbindungen im Hintergrund (Last). Für die Statusprüfung führt ein runDaemonMonitor -Thread eine Verbindung bzw. Verbindungstrennung für jeden Anwendungsserver-Listener aus. In der Folge kann es zu einer Verbindungssättigung auf Enterprise Server kommen.

Lösung

Ein neues Attribut monitor-interval-in-seconds wurde für die Datei loadbalancer.xml entwickelt. Mit diesem Attribut kann eine Pause zwischen Verbindungs-/Verbindungstrennungsereignisse eingefügt werden, wenn Hunderte von Listenern für das Lastenausgleichs-Plug-In konfiguriert sind. Standardpausenwert ist 0.

HADB-Konfiguration in zweifachen Netzwerken (keine Fehlernummer)

Unter Solaris SPARC ist eine HADB-Konfiguration für zwei Netzwerke in zwei Teilnetzen problemlos möglich. Auf Solaris x86- und Linux-Plattformen führen jedoch Betriebssystem- bzw. Netzwerktreiberprobleme dazu, dass eine doppelte Netzwerkkonfiguration nicht immer einwandfrei ausgeführt wird. Dadurch entstehen folgende HADB-Probleme:

Erstellung der HADB-Datenbank schlägt fehl (keine ID)

Beschreibung

Die Erstellung einer neuen Datenbank kann fehlschlagen und folgenden Fehler ausgeben, der besagt, dass zu wenig gemeinsame Speichersegmente verfügbar sind:

HADB-E-21054: Systemressource nicht verfügbar: HADB-S-05512: Anhängen des gemeinsamen Speichersegments mit Schlüssel "xxxxx" fehlgeschlagen, OS-Status=24 OS-Fehlermeldung: Zu viele Dateien geöffnet.

Lösung

Stellen Sie sicher, dass der gemeinsame Speicher konfiguriert wurde und die Konfiguration funktioniert. Prüfen Sie insbesondere unter Solaris 8 die Datei /etc/system und stellen Sie sicher, dass der Wert der Variable shmsys: shminfo_shmseg mindestens die sechsfache Anzahl der Knoten pro Host beträgt.

hadbm set überprüft nicht die Ressourcenverfügbarkeit (Festplatten- und Speicherplatz) (5091280)

Beschreibung

Das Verwaltungssystem prüft beim Erstellen von Datenbanken und beim Hinzufügen von Knoten die Ressourcenverfügbarkeit. Die Verfügbarkeit der Ressourcen wird jedoch nicht geprüft, wenn mit hadbm set die Puffergröße des Geräts oder des Hauptspeichers geändert wird.

Lösung

Stellen Sie sicher, dass auf allen Hosts genügend freier Festplatten-/Arbeitsspeicher zur Verfügung steht, bevor Sie die Konfigurationsattribute devicesize bzw. buffersize erhöhen.

Heterogene Pfade für packagepath werden nicht unterstützt (5091349)

Beschreibung

Es ist nicht möglich, ein und dasselbe Software-Paket unter demselben Namen in verschiedenen Pfaden auf unterschiedlichen Hosts zu registrieren, zum Beispiel:


hadbm registerpackage test --packagepath=/var/install1 --hosts europa11
Package successfully registered.
hadbm registerpackage test --packagepath=/var/install2 --hosts europa12
hadbm:Error 22171: A software package has already been registered with 
the package name test.

Lösung

HADB unterstützt keine heterogenen Pfade für Knoten eines Datenbank-Clusters. Stellen Sie sicher, dass das Installationsverzeichnis des HADB-Servers (--packagepath) auf allen teilnehmenden Hosts identisch ist.

hadbm createdomain kann fehlschlagen (6173886, 6253132)

Beschreibung

Wenn der Management-Agent auf einem Host mit mehreren Netzwerkschnittstellen ausgeführt wird, kann der Befehl createdomain fehlschlagen, wenn sich nicht alle Netzwerkschnittstellen im selben Teilnetz befinden:


hadbm:Error 22020: The management agents could not establish a 
domain, please check that the hosts can communicate with UDP multicast.

Die Management-Agenten verwenden (falls nicht anders konfiguriert) die "erste" Schnittstelle für UDP-Multicasts (die "erste" gemäß Definition durch das Ergebnis von java.net.NetworkInterface.getNetworkInterfaces() ).

Lösung

Die beste Lösung besteht darin, dem Management-Agenten vorzuschreiben, welches Teilnetz er verwenden soll (setzen Sie ma.server.mainternal.interfaces in der Konfigurationsdatei, z. B. ma.server.mainternal.interfaces=10.11.100.0). Alternativ kann der Router zwischen den Teilnetzen so konfiguriert werden, dass er Multicast-Pakete weiterleitet (der Management-Agent verwendet die Multicast-Adresse 228.8.8.8).

Bevor Sie einen Versuch mit einer neuen Konfiguration der Management-Agenten unternehmen, müssen Sie eventuell die Management-Agent-Repository bereinigen. Halten Sie alle Agenten in der Domäne an, und löschen Sie alle Dateien und Verzeichnisse im Repository-Verzeichnis (gekennzeichnet mit repository.dr.path in der Konfigurationsdatei des Management-Agenten). Dies muss auf allen Hosts durchgeführt werden, bevor die Agenten mit einer neuen Konfigurationsdatei erneut gestartet werden.

Das Starten, Anhalten und Neukonfigurieren von HADB schlägt möglicherweise fehl oder führt dazu, dass das System nicht mehr reagiert (6230792, 6230415)

Beschreibung

Unter Solaris 10 Opteron kann das Starten, Stoppen und erneute Konfigurieren der HADB mit dem Befehl hadbm fehlschlagen oder das System nicht mehr reagieren, wobei einer der folgenden Fehler ausgegeben wird:


hadbm:Error 22009: The command issued had no progress in the last 
300 seconds.
HADB-E-21070: The operation did not complete within the time limit, 
but has not been cancelled and may complete at a later time.

Dies tritt u. U. auf, wenn es Unstimmigkeiten hinsichtlich des Lesens/Schreibens in eine Datei (nomandevice) gibt, die vom Prozess clu_noman_srv verwendet wird. Dieses Problem kann erkannt werden, indem in den HADB-Protokolldateien nach den folgenden Meldungen gesucht wird:


n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Child process noman3 733 
does not respond.
n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Have not heard from it in 
104.537454 sec.
n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Child process noman3 733 
did not start.

Lösung

Die folgende Problemlösung wurde noch nicht verifiziert, da das Problem noch nicht manuell reproduziert wurde. Jedoch sollte durch Ausführung dieses Befehls für den betroffenen Knoten das Problem gelöst werden.


hadbm restartnode --level=clear nodeno dbname

Beachten Sie, dass alle Geräte für den Knoten neu initialisiert werden. Eventuell müssen Sie den Knoten stoppen, bevor Sie ihn neu initialisieren.

Der Management-Agent wird mit der Ausnahme "IPV6_MULTICAST_IF failed" beendet (6232140)

Beschreibung

Beim Start auf einem Host, auf dem Solaris 8 ausgeführt wird und verschiedene NIC-Karten installiert sind, kann es passieren, dass bei Vorhandensein einer Mischung von Karten mit aktiviertem IPv6 und IPv4 der Management-Agent beendet wird und der Ausnahmefehler "IPV6_MULTICAST_IF fehlgeschlagen" auftritt."

Lösung

Legen Sie die Umgebungsvariable JAVA_OPTIONS auf -Djava.net.preferIPv4Stack=true fest; zum Beispiel:


export JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"

Alternativ verwenden Sie Solaris 9 oder höher. Dort tritt dieses Problem nicht auf.

clu_trans_srv kann nicht unterbrochen werden (6249685)

Beschreibung

In der 64-Bit-Version von Red Hat Enterprise Linux 3.0 liegt ein Bug vor clu_trans_srv, der dazu führt, dass der Prozess in einem nicht unterbrechbaren Modus endet, wenn eine asynchrone E/A ausgeführt wird. kill -9 funktioniert somit nicht, und das Betriebssystem muss neu gestartet werden.

Lösung

Verwenden Sie eine 32-Bit-Version von Red Hat Enterprise Linux 3.0.

hadbm unterstützt keine Passwörter mit Großbuchstaben (6262824)

Beschreibung

Großbuchstaben in Passwörtern werden in Kleinbuchstaben umgewandelt, wenn das Passwort in hadb gespeichert wird.

Lösung

Verwenden Sie keine Passwörter, die Großbuchstaben enthalten.

Ein Downgrade von HADB-Version 4.4.2.5 auf HADB-Version 4.4.1.7 führt zum Fehlschlagen des Management-Agent mit unterschiedlichen Fehlercodes (6265419)

Beschreibung

Beim Downgrading auf eine vorherige HADB-Version kann der Management-Agent mit verschiedenen Fehlercodes fehlschlagen.

Lösung

Es ist zwar möglich, einen Downgrade der HADB-Datenbank auszuführen, jedoch kann kein Downgrade für den Management-Agent ausgeführt werden, wenn Änderungen an den Repository-Objekten vorgenommen wurden. Nach einem Downgrade müssen Sie weiter den Management-Agent von der letzten HADB-Version verwenden.

Installation/Deinstallaton und Beibehalten von symlink (6271063)

Beschreibung

Hinsichtlich der Installation/Deinstallation des HADB c-Pakets (Solaris: SUNWhadbc, Linux: sun-hadb-c) <m.n.u-p> wird symlink /opt/SUNWhadb/<m> nicht mehr verändert, sobald dieser Symlink vorhanden ist. Daher ist es möglich, dass eine verwaiste symlink vorhanden ist.

Lösung

Löschen Sie symlink vor der Installation oder nach der Deinstallation; es sei denn, die Datei wird verwendet.

Management-Agents in globalen und lokalen Zonen können sich gegenseitig beeinflussen (6273681)

Beschreibung

Unter Solaris 10 wird beim Anhalten eines Management-Agents unter Verwendung des Skripts ma-initd in einer globalen Zone auch der Management-Agent in der lokalen Zone angehalten.

Lösung

Installieren Sie den Management-Agent nicht sowohl in der globalen als auch der lokalen Zone.

hadbm/ma sollte eine sinnvollere Fehlermeldung ausgeben, wenn für ein Sitzungsobjekt eine Zeitüberschreitung erreicht wurde und dieses Objekt im MA gelöscht wurde (6275103)

Beschreibung

Mitunter kann es durch einen Ressourcenkonflikt auf dem Server dazu kommen, dass der Management-Client getrennt wird. Bei der erneuten Verbindungsherstellung wird u. U. eine irreführende Fehlermeldung "hadbm: Fehler 22184: Zum Herstellen der Verbindung mit dem Management-Agenten ist ein Passwort erforderlich" zurückgegeben.

Lösung

Mitunter kann es durch einen Ressourcenkonflikt auf dem Server dazu kommen, dass der Management-Client getrennt wird. Bei der erneuten Verbindungsherstellung wird u. U. eine irreführende Fehlermeldung "hadbm: Fehler 22184: Zum Herstellen der Verbindung mit dem Management-Agenten ist ein Passwort erforderlich" zurückgegeben.

Prüfen Sie, ob ein Ressourcenproblem auf dem Server vorliegt, ergreifen Sie geeignete Maßnahmen (z. B. fügen Sie weitere Ressourcen hinzu) und führen Sie den Vorgang erneut aus.

Nicht-Root-Benutzer können HADB nicht verwalten (6275319)

Beschreibung

Die Installation mit Java Enterprise System (als Root) gibt von Root verschiedenen Benutzern keine Benutzerrechte zum Verwalten von HADB.

Lösung

Melden Sie sich immer als Root an, um HADB zu verwalten.

Der Management-Agent sollte keine Schnittstellen für spezielle Zwecke verwenden (6293912)

Beschreibung

Schnittstellen für besondere Zwecke mit IP-Adressen wie 0.0.0.0 sollten nicht als gültige Schnittstellen registriert werden, die für HADB-Knoten im Management-Agenten verwendet werden. Die Registrierung solcher Schnittstellen kann zu Problemen führen, wenn an diesen Schnittstellen HADB-Knoten eingerichtet werden, indem ein Benutzer einen hadbm create-Befehl mithilfe von Hostnamen anstelle von IP-Adressen aufruft. Die Knoten können dann nicht kommunizieren und führen dazu, dass der create-Befehl hängt.

Lösung

Wenn Sie hadbm create auf Hosts mit mehreren Schnittstellen verwenden, müssen Sie immer die IP-Adressen angeben, die ausdrücklich die DDN-Notation verwenden.

Reassemblierungsfehler unter Windows (6291562)

Beschreibung

Auf der Windows-Plattform kann es bei bestimmten Konfigurationen zu einer großen Anzahl von Reassemblierungsfehlern im Betriebssystem kommen. Das Problem trat bei Konfigurationen von mehr als zwanzig Knoten auf, als mehrere Tabellenscans (select *) gleichzeitig ausgeführt wurden. Symptome können sein, dass die Transaktionen häufig abbrechen, die Reparatur oder Wiederherstellung lange Zeit in Anspruch nehmen kann und es zu häufigen Zeitüberschreitungen an verschiedenen Stellen im System kommt.

Lösung

Um das Problem zu beheben, kann die Windows-Registrierungsvariable HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters auf einen Wert festgelegt werden, der höher ist als der Standardwert 100. Es wird empfohlen, diesen Wert auf 0x1000 (4096) zu erhöhen. Weitere Informationen finden Sie unter. article 811003 auf den Microsoft-Supportseiten.

Sitzungsstatus wird nicht beibehalten, wenn der Browser über einen weiteren Cookie mit dem /-Pfad verfügt (6553415)

Beschreibung

Cookies mit einem Pfad "/" wirken sich auf die Cookies einer hochverfügbaren Webanwendung aus, die in einem anderen Kontext-Root als "/" bereitgestellt werden, der die In-Memory-Replikation als Persistenztyp verwendet. Dadurch wird es für die hochverfügbare Webanwendung unmöglich, einen HTTP-Sitzungsstatus beizubehalten. Ein häufiges Szenario, in dem dies auftreten kann, ist, wenn derselbe Browser für den Zugriff auf die Admin-GUI (unter "/" bereitgestellt) und die hochverfügbare Webanwendung verwendet wird.

Lösung

Greifen Sie über einen anderen Browser auf die Webanwendung zu, die unter "/" bereitgestellt wird.

Der Lastenausgleich funktioniert nicht mit IIS 6; SASL32.DLL und ZLIB.DLL sind unter as-install/lib nicht vorhanden (6572184)

Beschreibung

Der Lastenausgleich benötigt SASL32.DLL und ZLIB.DLL für die Zusammenarbeit mit Windows IIS 6. Diese Dateien sind derzeit nicht unter as-install/lib verfügbar.

Lösung

Kopieren Sie die beiden DLL-Dateien manuell in as-install/lib. Diese Dateien können unter folgender Adresse heruntergeladen werden:


http://download.java.net/javaee5/external/OS/aslb/jars/

Dabei steht OS für die gewünschte Plattform. Sie können einen der folgenden Werte wählen:

Probleme bei DAS-Erstellung/Start und HA-Paketverbreitung in globaler Zone (6573511)

Beschreibung

Bei der Installation oder Deinstallation von Enterprise Server mit Hochverfügbarkeitspaketen in einer globalen Zone treten zwei Probleme auf:

  1. HA-Pakete werden in sämtlichen Zonen installiert; dies ist möglicherweise nicht gewünscht.

  2. Bei der Deinstallation werden HA-, MQ- und JDK-Pakete aus allen Zonen entfernt; dies ist möglicherweise nicht gewünscht.

Dieses Problem tritt nicht auf, wenn die Installation oder Deinstallation über eine lokale Root-Zone durchgeführt wird.

Lösung

Führen Sie Installationen und Deinstallationen nicht über eine globale, sondern über eine lokale Zone durch.

Hochverfügbare Webanwendungen, die unter "/" bereitgestellt werden, können HTTP-Sitzungen nicht fortsetzen, die im Speicher repliziert wurden (Issue Tracker 2972)

Beschreibung

Hochverfügbare Webanwendungen, die unter "/" bereitgestellt wurden, können keine HTTP-Sitzungen beibehalten, wenn als Persistenztyp die In-Memory-Replikation verwendet wird.

Lösung

Stellen Sie hochverfügbare Webanwendungen, welche die In-Memory-Replikation als Persistenztyp verwenden, über einen anderen Kontext-Root als "/" bereit. Wenn Sie eine solche Webanwendung unter "/" bereitstellen möchten, können Sie sie als das Standardwebmodul des virtuellen Servers festlegen, für welchen die Webanwendung bereitgestellt wurde.

Das Installationsprogramm für die AS-Lastenausgleichskomponente hat den /usr/lib/mps-Pfad nicht in apachectl LD_LIBRARY_PATH platziert; Apache SSL kann nicht gestartet werden (6591878)

Beschreibung

Während der Installation der Enterprise Server-Lastenausgleichskomponente für Apache unter Solaris, aktualisiert das Installationsprogramm LD_LIBRARY_PATH im Skript apachectl . Dabei schreibt das Installationsprogramm den Pfad /usr/lib/mps jedoch nicht richtig. Unter Solaris kann die Apache-Sicherheitsinstanz ohne diesen Pfad in LD_LIBRARY_PATH nicht gestartet werden.

Lösung

Dieses Problem tritt nur auf Solaris-Plattformen auf. Um dieses Problem zu vermeiden, fügen Sie /opt/SUNWappserver/appserver/lib/lbplugin/lib zu LD_LIBRARY_PATH hinzu.

Beim Aktivieren/Deaktivieren des Lastenausgleichs für eine Instanz oder einen Cluster sollte der richtige Status angezeigt werden (6595113)

Beschreibung

Die Schaltfläche Lastenausgleich aktivieren ist auf der allgemeinen Seite für Cluster/Instanzen immer aktiviert, unabhängig davon, was in domain.xml gespeichert wurde.

Lösung

AS9.1 EE IFR b58f/JES5 UR1. Registry Server kann nicht installiert werden, da ein “unvollständiges” HA erkannt wurde. (6602508)

Beschreibung

(Nur Solaris) Nach der Installation von Enterprise Server 2.1 unter SPARC Solaris 10 mit HADB wird möglicherweise der folgende Fehler angezeigt, wenn Sie Enterprise Server starten und anschließend versuchen, JES 5 UR 1 mit Registry Server zu installieren:


Dependency Error:  Installation can not proceed because the version of HA
Session Store 4.4.3 detected on this host is incomplete , and a compatible
version is required by Servervice Registry Deployment Support.

Lösung

Registry Server kann nicht von JES 1 UR2,1 mit Enterprise Server 2.1 IFR auf Solaris-Computern installiert werden. Die Registry Server-Pakete müssen manuell über den Befehl pkgadd aus dem folgenden JES5 UR1-Distributionsverzeichnis installiert werden:


path/OS/Products/registry-svr/Packages

IE 6.0/7.0-browserspezifisch: beim Exportieren der Lastenausgleichs-Konfigurationsdatei wird ein Fehler ausgegeben (6516068)

Beschreibung

(Nur Internet Explorer 6 und 7) Beim Versuch, die Lastenausgleichs-Konfigurationsdatei (loadbalancer.xml) aus Internet Explorer 6 oder 7 zu exportieren, zeigt der Browser in einer Fehlermeldung an, dass die DTD-Datei sun-loadbalancer_1_2.dtd nicht ermittelt werden kann.

Lösung

Verwenden Sie zum Speichern der Datei die folgende Umgehung:

  1. Klicken Sie im Internet Explorer auf der Seite für den Lastenausgleich auf Export.

    Die Meldung "XML-Seite kann nicht angezeigt werden" wird angezeigt.

  2. Klicken Sie auf den Fehlerrahmen, und wählen Sie in Internet Explorer Datei->Speichern unter.

  3. Speichern Sie die Datei loadbalancer.xml in einem Verzeichnis Ihrer Wahl.

Installation

In diesem Abschnitt werden die bekannten Installationsprobleme sowie ihre Lösungen beschrieben.

Enterprise Server-Installationsprogramm stürzt unter Linux ab (6739013)

Beschreibung

Dieses Problem ist auf Linux-Systemen aufgetreten, auf denen die Umgebungsvariable MALLOC_CHECK_ auf 2 eingestellt ist.

Lösung

Stellen Sie die Umgebungsvariable MALLOC_CHECK_ auf 0 ein. Führen Sie den Exportbefehl folgendermaßen aus:


export MALLOC_CHECK_

Auf einigen Linux-Systemen reagiert die Anwendung beim Herunterfahren der Installation nicht mehr, wenn auf die Schaltfläche "Fertig stellen" geklickt wird (5009728)

Beschreibung

Dieses Problem wurde unter verschiedenen Linux-Systemen festgestellt. Am häufigsten kommt das Problem auf Java Desktop System 2 vor. Es wurde jedoch auch bei Distributionen von Linux Red Hat beobachtet.

Nachdem Sie im letzten Fenster des Installationsprogramms auf die Schaltfläche "Fertig stellen" geklickt haben, schlägt der Versuch des Installationsprogramms fehl, die Seite Info bzw. die Seite zur Produktregistrierung im Browser anzuzeigen. Das Programm reagiert nicht mehr und zeigt keine Befehlseingabeaufforderung an.

Lösung

Beenden Sie den Installer durch Drücken von Strg+C im Terminalfenster, in dem der Installer gestartet wurde. Danach wird manchmal ein Browser-Fenster mit einer Produktinfo-Seite oder einer Registrierungsseite angezeigt. Sollte diese Seite nicht angezeigt werden, starten Sie den Browser und geben die folgende URL ein, um die Infoseite anzuzeigen:


file://as-install/docs-ee/about.html

Wenn Sie auch noch die Installationsoption zum Registrieren des Produkts gewählt haben, folgen Sie dem Link der Registrierungsseite, der sich auf der Produktinfo-Seite befindet.

Unter Windows muss das Verzeichnis imq während der Installation erstellt werden (6199697)

Beschreibung

Unter Windows schlägt der Message Queue-Broker unmittelbar nach der Installation von Application Server Enterprise Edition beim Starten fehl. Es wird eine Meldung angezeigt, die darauf hinweist, dass das Verzeichnis drive:\as\domains\domain1\imq nicht existiert.

Beachten Sie, dass das Problem nicht auftritt, wenn der Broker nach dem Start von domain1 gestartet wird. In diesem Fall wird das Verzeichnis nach dem Start des Brokers von Application Server erstellt.

Lösung

  1. Erstellen Sie var_home_dir_location, bevor Sie den Broker erstellen.


    $imqbrokerd -varhome var_home_dir_location
    

    Beispiel:


    $imqbrokerd -varhome D:\as\domains\domain1\imq

Bei der Deinstalltion wird die Datei productregistry nicht ordnungsgemäß aktualisiert; Installation kann nicht im Hintergrundmodus durchgeführt werden (6571598)

Beschreibung

Wenn die Enterprise Server-Datei productregistry Konfigurationen für gemeinsame Komponenten enthält, wird bei der Deinstallation von Enterprise Server die Datei productregistry nicht ordnungsgemäß aktualisiert, und Sie können den Hintergrundmodus für eine anschließende Installation nur dann verwenden, wenn die Datei productregistry umbenannt oder entfernt wird. Das unveränderte Beibehalten der Einträge für gemeinsame Komponenten in der Datei productregistry verursacht zwar keine Fehler, führt jedoch bei einer anschließenden Installation im Hintergrundmodus zu Konflikten.

Lösung

Nachdem Sie die erfolgreiche Deinstallation anhand der Protokolldateien überprüft haben, entfernen Sie die Datei productregistry, bevor Sie eine anschließende Installation durchführen. Zur Verifizierung, ob eine vorherige Deinstallation erfolgreich durchgeführt wurde, überprüfen Sie das as-install nach einer Datei appserv_uninstall.class. Diese Datei ist nicht vorhanden, wenn die Deinstallation erfolgreich durchgeführt wurde.


Hinweis –

Löschen Sie die Datei productregistry nicht, wenn die Deinstallation nicht erfolgreich war.


Die Datei productregistry befindet sich unter Solaris im Ordner /var/sadm/install und unter Linux im Ordner /var/tmp.

IFR. Installation von AS in der lokalen Sparse-Zone nicht möglich, Problem mit MQ-Paketen. (6555578)

Beschreibung

Die Installation von Enterprise Server in einer lokalen Sparse-Zone schlägt fehl, wenn Message Queue (MQ) nicht zuerst installiert wurde. Das Installationsprogramm versucht, MQ zu installieren, und anschließend schlägt die gesamte Installation fehl.

Lösung

MQ muss vor der Installation von Enterprise Server in einer lokalen Sparse-Zone manuell in der globalen Zone installiert werden. Für dieses Problem gibt es zwei Umgehungen:

  1. Installieren Sie zuerst MQ 4.1 manuell über dasselbe Medium in der globalen Zone, auf dem sich auch die Enterprise Server 2.1 IFR-Installation befindet, um die aktuellen MQ-Pakete bereitzustellen.

    1. Verwenden Sie das geeignete Installationsprogramm für Ihre Plattform:


      mq4_1-installer-SunOS.zip
      mq4_1-installer-SunOS_X86.zip
      mq4_1-installer-Linux_X86.zip
      mq4_1-installer-WINNT.zip
    2. Dekomprimieren Sie die Dateien, und führen Sie das Installationsprogramm aus.

      Das Installationsprogramm befindet sich im Verzeichnis mq4_1-installer.

  2. Installieren Sie eine Komponente der IFR-Installation in der globalen Zone. Diese Aktion überprüft die Version von MQ in der GZ und führt gegebenenfalls ein Upgrade auf die mit Enterprise Server 2.1 IFR kombinierte Version durch. Selbst bei Auswahl und Installation der Komponente der Beispielanwendung wird MQ auf die IFR-Version aktualisiert.

    1. Führen Sie die Enterprise Server-Installation in der globalen Zone durch, wählen Sie jedoch lediglich die Beispielkomponenten.

      Bei der Installation der Beispielkomponente werden auch MQ und die gemeinsamen Enterprise Server-Komponenten in allen Zonen installiert.

    2. Führen Sie die Enterprise Server-Installation erneut durch, diesmal jedoch in der lokalen Sparse-Zone.

      Die Installation sollte ohne Probleme abgeschlossen werden.

IFR-Installatationsaufforderung -console muss entfernt werden: "Möchten Sie eine Aktualisierung von einer früheren Application Server-Version durchführen?" (6592454)

Beschreibung

Wenn Sie das Enterprise Server 2.1 IFR-Intallationsprogramm mit der Option -console (Befehlszeilenmodus) ausführen, wird die folgende Aufforderung angezeigt:


Do you want to upgrade from previous Application Server version?

Leider unterstützt das IFR-Installationsprogramm solche Aktualisierungen nicht, sodass diese Meldung falsch ist. Wenn Sie die Frage mit "Ja" beantworten, wird der Installationsprozess normal fortgesetzt, es wird jedoch nicht angezeigt, dass eine vollständige Installation (anstelle einer Aktualisierung) durchgeführt wurde.

Lösung

Verwenden Sie das Upgrade-Tool, wenn Sie Ihre Enterprise Server-Installation aktualisieren möchten.

Nach dem Upgrade sind beim Starten einer Domäne die folgenden Ausnahmen im Protokoll zu sehen. (6774663)

Beschreibung

Die folgenden Ausnahmen können ausgelöst werden:

#|2008-11-19T01:44:37.422+0530|SEVERE|sun-appserver9.1|org.apache.catalina.session.ManagerBase|_ThreadID=17;_ThreadName=pool-1-thread-3;_Req uestID=cc0ddf54-a42e-400a-9788-e30d79a25d88;|PWC2768: IOException while loading persisted sessions: java.io.InvalidClassException: org.apache .catalina.session.StandardSession; local class incompatible: stream classdesc serialVersionUID = 8647852380089530442, local class serialVersi onUID = -8515037662877107054 java.io.InvalidClassException: org.apache.catalina.session.StandardSession; local class incompatible: stream classdesc serialVersionUID = 864 7852380089530442, local class serialVersionUID = -8515037662877107054..... .....

Lösung

Nach dem Upgrade und dem Start der Upgrade-Domäne können diese Ausnahmen ignoriert werden, wenn sie wieder auftreten.

Java EE-Lernprogramm

Bei Verwendung von Administration Console zum Erstellen von Ressourcen geben Sie auf der Registerkarte "Targets" den Server als Ziel an. Wenn Sie die Befehlszeile oder ein asant-Ziel verwenden, ist der Server standardmäßig als Server festgelegt und Sie müssen keine weiteren Änderungen vornehmen.

Java Persistence

TopLink erwartet, dass für das Feld/die Eigenschaft Collection ein Klon erstellt werden kann (Issue Tracker 556)

Beschreibung

Wenn die java.util.Arrays.asList()-API zum Konvertieren eines Object[]-Wertes in einen Collection-Wert verwendet wird, gibt das JDK eine Implementierung von java.util.ArrayList zurück, für die kein Klon erstellt werden kann. Dies führt zu folgender Ausnahme:


The method invocation of the method [protected native java.lang.Object 
java.lang.Object.clone() throws java.lang.CloneNotSupportedException] on the object 
[[pkg.A id = xxx]], of class [class java.util.Arrays$ArrayList], triggered an 
exception. Internal Exception: java.lang.reflect.InvocationTargetException Target 
Invocation Exception: java.lang.CloneNotSupportedException: 
java.util.Arrays$ArrayList

Dieses Problem wird beschrieben in https://glassfish.dev.java.net/issues/show_bug.cgi?id=556.

Lösung

Erstellen Sie eine weitere Sammlung unter Verwendung des Konstruktors; Beispiel:


myCollection = new ArrayList(java.util.Arrays.asList(a))

GenerationType.IDENTITY und DataDirect-Treiber mit SyBase (Issue Tracker 2431)

Beschreibung

Der Versuch, eine Element einzufügen, das GenerationType.IDENTITY verwendet, schlägt fehl, wenn der DataDirect-Treiber mit SyBase verwendet wird. Der Versuch schlägt fehl, da der DataDirect-Treiber eine gespeicherte Prozedur für jede parametrisierte vorbereitete Anweisung erstellt.

Lösung

Setzen Sie in der Datei domain.xml die Eigenschaft PrepareMethod=direct auf die entsprechende Datenquelle.

Lifecycle-Verwaltung

In diesem Abschnitt werden die bekannten Probleme der Lifecycle-Verwaltung sowie ihre Lösungen beschrieben.

Durch das Setzen der Eigenschaft ejb-timer-service schlägt der Befehl set fehl (6193449)

Beschreibung

Nachdem Sie die ejb-timer-service-Eigenschaft minimum-delivery-interval auf 9000 gesetzt haben, führt der Versuch, die ejb-timer-service-Eigenschaft redelivery-interval-in-mills auf 7000 zu setzen, zum Fehlschlagen des set-Befehls mit dem folgenden Fehler:


[echo] Doing admin task set
[exec] [Attribute(id=redelivery-interval-internal-in-millis) : 
Redelivery-Interval (7,000) 
should be greater than or equal to Minimum-delivery-interval-
in-millis (9,000)]
[exec] CLI137 Command set failed.

Die Logik, die zwischen dem Neuzustellungsintervall und dem minimalen Zustellungsintervall besteht, ist nicht korrekt, sodass Sie weder über die Benutzeroberfläche noch über die Befehlszeilenschnittstelle die Werte so setzen können, dass der minimale Zustellungsintervall größer ist als der Neuzustellungsintervall.

Der Wert der Eigenschaft minimum-delivery-interval-in-millis muss immer höher oder gleich dem Wert der Eigenschaft redelivery-interval-in-millisdes ejb-Timer-Dienstes sein. Das Problem wird durch eine fehlerhafte Validierung in aerver verursacht, bei der überprüft wird, ob der Wert für redelivery-interval-in-millis größer ist als der Wert für minimum-delivery-interval-in-millis.

Lösung

Verwenden Sie für diese Eigenschaften folgende Standardwerte:


minimum-delivery-interval(default)=7000
redelivery-interval-in-millis(default)=5000

Die Verwendung anderer Werte verursacht einen Fehler.

Fehler beim Auflisten von physischen JMS-Zielen innerhalb von Nicht-DAS-Konfiguration (6532532)

Beschreibung

Beim Versuch, die physischen JMS-Ziele unter Verwendung von default-config anzuzeigen, wird eine Fehlermeldung angezeigt.

Lösung

Dies ist das erwartete Verhalten. In Enterprise Server 2.1 ist default-config eine Vorlage mit Konfigurationsinformationen, sodass JMS-Operationen (z. B. list und create) für default-config nicht ausgeführt werden können. Diese JMS-Operationen können jedoch für die Konfigurationen Ihrer Cluster- oder eigenständigen Instanzen ausgeführt werden.

Nur Win2003: Speicherlecks bei nicht ausgelagertem Pool; Probleme mit TCP-Stack und Funktionen für umfangreichen Zugriff (6575349)

Beschreibung

(Nur Windows 2003) Die Verwendung von umfangreichen Zugriffsfunktionen auf Systemen unter Windows 2003 führt zu Speicherlecks. Das Problem tritt auf, da der nicht ausgelagerte Win32-Speicherpool kontinuierlich erweitert wird und dies letztendlich zum Fehlschlagen des gesamten TCP/IP-Stacks führt. Nach dem Fehlschlagen weist der TCP/IP-Stack einen nicht wiederherstellbaren Status auf. Die einzige Möglichkeit, den Stack wiederherzustellen, ist der Neustart des Windows 2003-Systems.

Abhilfe

Das Problem kann auf zwei verschiedene Arten umgangen werden.

Protokollierung

In diesem Abschnitt werden die bekannten Protokollierungsprobleme sowie ihre Lösungen beschrieben.

Das Setzen der Debug-Anweisung für access,failure führt dazu, dass die Anwendung beim Server-Start nicht reagiert (6180095)

Beschreibung

Das Setzen der Option java.security.debug für JVM verursacht einen Deadlock in der Server-Startinstanz. Das Problem tritt beispielsweise auf, wenn Sie für domain.xml die Option wie folgt gesetzt haben:


<jvm-options>-Djava.security.debug=access,failure</jvm-options>

Lösung

Zu diesem Zeitpunkt steht keine Lösung zur Verfügung. Verwenden Sie diese Option nicht.

Message Queue

In diesem Abschnitt werden die bekannten Message Queue-Probleme sowie ihre Lösungen beschrieben.

Enterprise Server startet nicht, wenn MQ Broker nicht gestartet wurde (6740797)

Beschreibung

Wenn die JMS als REMOTE konfigurieren, kann Enterprise Server nur gestartet werden, wenn der MQ Broker nicht gestartet wurde.

Lösung

Keine bekannte Lösung. JMS für den Betrieb im EINGEBETTETEN Modus konfigurieren.

Die Wiederherstellung der JMS-Verbindung wird in bestimmten, timingabhängigen Fällen nicht erfolgreich ausgeführt (6173308, 6189645, 6198481, 6199510, 6208728)

Beschreibung

Fehler beim erneuten Verbindungsaufbau in Timing-abhängigen Szenarien können durch verschiedene Probleme verursacht werden.

Lösung

Es gibt folgende Problemlösungen:

MQ-Broker wird mit Cluster-Profil unter Linux nicht gestartet (6524871)

Beschreibung

Nach dem Erstellen einer Domäne mit einem Cluster-Profil auf einem Linux-System kann ein java.lang.OutOfMemoryError: Java heap space-Fehler auftreten, und die Serverinstanz wird möglicherweise nicht gestartet, da der Start des MQ-Brokers fehlschlägt. Das System kann nach dieser Bedingung nicht fortgesetzt werden. Das Problem ist eine nicht ordnungsgemäß konfigurierte Datei /etc/hosts; genau gesagt, der Serverhostname zeigt auf die Loopback-Adresse 127.0.0.1.

Lösung

Ein MQ-Broker-Cluster kann nicht gestartet werden, wenn das Netzwerkgerät auf die Loopback-Adresse zeigt. Dies ist kein Fehler. Um dieses Problem zu lösen, stellen Sie sicher, dass die /etc/hosts-Datei für den Enterprise Server-Host nicht auf 127.0.0.1 zeigt.

Wenn imqjmsra.jar vor dem Upgrade geladen wird, kommt es zu einer Nichtübereinstimmung von alten und neuen Klassen (6740794)

Beschreibung

Der Server prüft beim Start die Version von Message Queue. Wenn die Version von Message Queue inkorrekt ist, verwendet der Server mqjmsra.jar für das Upgrade. Dieses Upgrade-JAR und seine Klassen stehen dem Server erst nach einem Neustart zur Verfügung. Diese Situation tritt nur auf, wenn Message Queue alleine aufgerüstet wird oder wenn nur auf Application Server ein Patch angebracht wird. Im Rahmen dieser Situation ist es möglich, dass der Server nicht startet.

Lösung

Message Queue und Enterprise Server müssen auf der gleichen Patch-Ebene gewartet werden. Andernfalls starten Sie den Server erneut.

Überwachung

In diesem Abschnitt werden die bekannten Überwachungsprobleme sowie ihre Lösungen beschrieben.

In einigen Überwachungsstatistiken für den HTTP-Service werden Informationen angezeigt, die nicht nützlich sind und daher ignoriert werden sollten (6174518)

Beschreibung

Wenn die Überwachungsstatistiken einiger Elemente des HTTP-Dienstes angezeigt werden, entsprechen einige präsentierte Werte nicht den aktuellen Werten oder lauten immer 0. Insbesondere die folgenden HTTP-Dienststatistiken zeigen keine Informationen, die sich auf Enterprise Server beziehen und können ignoriert werden.

Lösung

Diese Überwachungen werden in zukünftigen Versionen entfernt und durch aussagekräftigere Informationen ersetzt.

Beim Öffnen der JNDI-Suche über die Admin-UI werden eine Vielzahl von Ausnahmen in der Datei server.log ausgegeben (6591734)

Beschreibung

Wenn die JNDI-Suche über die Admin-GUI geöffnet wird, werden eine Vielzahl von Ausnahmen ausgegeben.

Lösung

Zu diesem Zeitpunkt steht keine Lösung zur Verfügung.

Packaging

In diesem Abschnitt werden bekannte Probleme und Lösungen bezüglich des Packaging des Softwarecodes für Enterprise Server 2.1 beschrieben.

AIX: monitor-Befehl funktioniert nicht auf AIX (6655731)

Beschreibung

Der monitor-Befehl kann nicht unter AIX-Betriebssystemen ausgeführt werden, da die libcliutil.so-Bibliotheksdatei nicht in Enterprise Server 2.1 enthalten ist.

ProcedureLösung: So installieren Sie die fehlende libcliutil.so-Bibliotheksdatei

  1. Laden Sie die JAR-Datei von.

  2. Wechseln Sie ins Verzeichnis, in das Sie die Datei appserv-native-9.1.1-b16a.jar heruntergeladen haben.


    prompt% cd destination-dir
    
  3. Extrahieren Sie die Datei appserv-native-9.1.1-b16a.jar.


    prompt% jar xf appserv-native-9.1.1-b16a.jar
    
  4. Kopieren Sie die Datei libcliutil.so in das Verzeichnis as-install/lib.


    prompt% cp libcliutil.so as-install/lib
    

Beispiele

In diesem Abschnitt werden die bekannten Probleme zum Beispielcode der Enterprise Server 2.1-Software und ihre Lösungen beschrieben.

Nach dem Upgrade konkurrieren Enterprise Server-Beispiele und JES5-Portalbeispiele am Derby-Port 1527 (6574563)

Beschreibung

Nach dem Upgrade auf Enterprise Server 2.1 verwenden die Beispiele und die JES 5-Portalbeispiele unter Windows den Derby-Port 1527. Genau gesagt, Enterprise Server &; startet JavaDB automatisch an Port 0.0.0.0:1527 mit APP:APP, die JES.5-Portal-JavaDB versucht jedoch, eine Bindung an hostnameIP:1527 mit portal:portal herzustellen.

Dieser Bug bezieht sich auf ein Problem, das bereits bei JES 5, Bug 6472173 auftrat. Die Umgehung für Bug 6472173 ist im Sun Java Enterprise System 5-Installationshandbuch für Microsoft Windows auf http://docs.sun.com dokumentiert.

Lösung

Starten Sie die Derby-Datenbank über den folgenden Befehl:


JES-installation-dir\appserver\bin\asadmin start-database --dbhome JES-installation-dir\portal\data\derby

Sicherheit

In diesem Abschnitt werden die bekannten Probleme und ihre Lösungen von Sicherheitsfunktionen in Enterprise Server, Webanwendungen sowie Zertifikaten beschrieben.

OutofMemory-Fehler in SSL-Szenarien aufgrund hoher Belastung (JDK 6 Problem 23)

Beschreibung

Ein JDK-Bug (beachten Sie https://jdk6.dev.java.net/issues/show_bug.cgi?id=23) in JDK6 Sun PKCS11 Anbieter konnte einen OutOfMemoryError verursachen, wenn bestimmte SSL-Szenarien unter hoher Belastung ausgeführt wurden.

Lösung

Wenn dieses Problem auftritt, entfernen Sie densun.security.pkcs11.SunPKCS11-Anbieter in der Datei java.security in Ihrer JRE-Installation.

AIX: Der Test des dynamischen WSS-Verschlüsselungsschlüssels schlägt aufgrund eines serverseitigen Zertifizierungsvalidierungsfehlers fehl (6627379)

Beschreibung

Auf der AIX-Plattform schlägt die dynamische Verschlüsselung zum Ermitteln eines Verschlüsselungsschlüssels für eine Antwort fehl. Der Fehler tritt während der Validierung des Zertifikats auf der Serverseite auf.

Aufgrund des Fehlers werden die folgenden Fehlermeldungen in die Protokolldatei server.log des Servers geschrieben:


Unable to validate certificate

Error occurred while resolving key information
com.sun.xml.wss.impl.WssSoapFaultException: Certificate validation failed

Lösung

Installieren Sie Metro 1.1 auf Enterprise Server 2.1

AIX: @RunAs im EJB-Modul, Autorisierungstest fehlgeschlagen. AccessLocalException: Client nicht autorisiert (6627385)

Beschreibung

Eine Methode in einer Enterprise-Bean, deren Sicherheitsidentität (run-as oder propagiert) über die @RunAs-Annotation definiert ist, versucht, eine Methode in einer anderen Enterprise-Bean aufzurufen. Wenn in der Bereitstellungsbeschreibungsdatei sun-ejb-jar.xml kein run-as-Prinzipal definiert ist, kann er Versuch mit einer javax.ejb.AccessLocalException -Ausnahme fehlschlagen.


javax.ejb.AccessLocalException: Client not authorized for this invocation.

Lösung

Definieren Sie in der Bereitstellungsbeschreibungsdatei sun-ejb-jar.xml im Element principal-name den Principalnamen, für den die run-as-Rolle angegeben ist.

SSL-Beendigung funktioniert nicht (6269102)

Beschreibung

Die SSL-Beendigung funktioniert nicht; wenn Load Balancer (Hardware) für die SSL-Beendigung konfiguriert ist, ändert Enterprise Server das Protokoll während der Umleitung von https zu http.

Lösung

Fügen Sie zwischen dem Hardware-Lastausgleich und Enterprise Server einen Software-Lastausgleich hinzu.

Socket-Verbindungsleck mit SSL (6492477)

Beschreibung

Aufgrund eines JVM-Fehlers tritt bei einigen JDK-Versionen ein Leckproblem auf, wenn security-enabled für ein HTTP-Zielgerät auf true gesetzt ist. Im Folgenden sind die Schritte zum Reproduzieren dieses Fehlers aufgelistet:

  1. Setzen Sie security-enabled für das HTTP-Zielgerät auf true:


    <http-listener acceptor-threads="1" address="0.0.0.0" 
    blocking-enabled="false" default-virtual-server="server" enabled="true" 
    family="inet" id=" http-listener-1" port="8080" security-enabled="true" 
    server-name="" xpowered-by="true">
  2. Kommentieren Sie das Anhalten der Domäne am Ende von Quicklook-Tests heraus.

  3. Führen Sie Quicklook-Tests aus.

  4. Überprüfen Sie die Socket-Verwendung:


    netstat -an | grep 8080

    Die folgenden Elemente werden als verwendet angezeigt:


    *.8080               *.*                0      0 49152      0 LISTEN
    *.8080               *.*                0      0 49152      0 BOUND

Das Problem wird auf der GlassFish-Website dargestellt unter: https://glassfish.dev.java.net/issues/show_bug.cgi?id=849.

Lösung

Führen Sie ein Upgrade auf die aktuellste JDK-Version durch.

Aufrüsten

In diesem Abschnitt werden die bekannten Probleme beim Aufrüsten sowie ihre Lösungen beschrieben.

Auf einigen Linux-Systemen kann das Installationsprogramm für das In-Place-Upgrade das Uprade-Tool nicht starten, nachdem der Benutzer auf "Aktualisierungsassistent starten" klickt (6207337)

Beschreibung

Dieses Problem wurde bei verschiedenen Linux-Systemen beobachtet. Es tritt am häufigsten bei Java Desktop System 2 auf, wurde jedoch auch in Distributionen von Red Hat beobachtet.

Wenn Sie auf der letzten Seite des Installationsprogramms auf die Schaltfläche "Start Upgrade Tool" klicken, wird das Upgrade-Tool nicht gestartet und der Upgrade-Vorgang nicht abgeschlossen. Das Upgrade-Tool reagiert nicht mehr und gibt keine Eingabeaufforderung aus.

Lösung

Dieses Problem tritt nicht auf, wenn das In-Place-Upgrade im Befehlszeilen-Installationsmodus ausgeführt wird.

  1. Wenn Sie das In-Place-Upgrade im Benutzeroberflächenmodus ausführen und dieses Problem auftritt, beenden Sie das Installationsprogramm, indem Sie in dem Terminal-Fenster, von dem aus das Installationsprogramm gestartet wurde, STRG+C drücken.

  2. Starten Sie das Upgrade-Tool vom Terminal-Fenster aus, indem Sie folgenden Befehl eingeben:


    as-install/bin/asupgrade --source as-install/domains --target 
    as-install --adminuser adminuser --adminpassword adminpassword 
    --masterpassword changeit

    adminuser und adminpassword müssen mit den Werten übereinstimmen, die für die Installation verwendet werden, die aufgerüstet wird.

  3. Wenn das Upgrade-Tool den Upgrade-Prozess beendet hat, können Sie auch den Browser starten und den folgenden URL eingeben, um die Infoseite anzuzeigen:


    file://as-install/docs-ee/about.html

Wenn Sie auch noch die Installationsoption zum Registrieren des Produkts gewählt haben, folgen Sie dem Link der Registrierungsseite, der sich auf der Produktinfo-Seite befindet.

Selbst signiertes Zertifikat wird beim und nach dem Upgrade von 8.0 Platform Edition (PE) auf 8.1 Enterprise Edition (EE) UR2 als nicht vertrauenswürdig eingestuft (6296105)

Lösung

Entfernen Sie die folgenden Einträge aus der Zieldatei domain.xml (nach dem Upgrade) und starten Sie den Server neu:

<jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}
/config/keystore.jks</jvm-options>-
<jvm-options>Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}
/config/cacerts.jks</jvm-options>

(sbs-manual, sbs-installer) gibt in einem Fehler an, dass der Serverinstanz-Server nicht über einen System-Konnektor "null" verfügt (6545145)

Beschreibung

Bei der Aktualisierung von Enterprise Server 8.0PE auf 2.1 wird in einem Fehler angezeigt, dass der Server nicht über einen System-Konnektor null und ungültige Benutzerinformationen in sbs-manual verfügt. Selbst nach dem Ändern der hartcodierten Werte wird diese Fehlermeldung angezeigt.

Lösung

Dieser Bug tritt nur auf, wenn Sie einen Upgrade von 8.0 PE auf Enterprise Server ausführen. Die Umgehung besteht im Upgrade auf 8.1, 8.2 oder 9.0 und dem anschließenden Upgrade auf Enterprise Server.

Beim Upgrade gehen verschiedene Domänen verloren, wenn unterschiedliche Build-Kombinationen verwendet werden (6546130)

Beschreibung

Wenn beim Durchführen eines In-Place-Upgrades mehrere Domänen in der Quelle vorhanden sind, ruft das Installationsprogramm das Upgrade-Tool auf, obgleich der Prozess abgebrochen wird. Dieses Problem tritt auf, wenn der Aufruf im GUI-Modus erfolgt.

Lösung

  1. Führen Sie das In-Place-Upgrade im CLI-Modus durch, und beenden Sie den Vorgang, wenn Sie vom Installationsprogramm aufgefordert werden, am Ende des Installationsprozesses das Upgrade-Tool auszuwählen. Domänen, die im Domänenverzeichnis vorhanden sind, werden dabei nicht gelöscht. Das Upgrade-Tool sollte manuell über das Verzeichnis bin aufgerufen werden.

  2. Erstellen Sie beim In-Place-Upgrade im GUI-Modus eine Sicherung der Domänen im Domänen-Root-Verzeichnis, um den Verlust dieser Domänen im Installationsprozess zu verhindern. Beenden Sie den Vorgang am Ende des Installationsprozesses, wenn Sie vom Installationsprogramm zum Aufrufen des Upgrade-Tools aufgefordert werden. Kopieren Sie die gesicherten Domänen in das Domänenverzeichnis, wenn diese verloren gegangen sind. Starten Sie das Upgrade-Tool manuell, um die Aktualisierung durchzuführen.

Solaris: das vorab eingefügte Master-Passwort im Upgrade-Tool stammt aus AS 2.1, nicht AS8.2 (6565825)

Beschreibung

Beim Upgrade von AS 8.2 auf wird das Master-Passwort aus der 8.2-Installation in der -Installation nicht geerbt. Dies führt anschließend bei der nächsten Admin-Anmeldung zu einem Authentifizierungsfehler.

Lösung

Das standardmäßige Admin-Passwort in Enterprise Server 2.1 lautet changeit. Um nach dem Upgrade von 8.2 Probleme bei der Anmeldung in Enterprise Server zu vermeiden, führen Sie einen der drei folgenden Schritte aus:

Keine lokalisierte Online-Hilfe für asupgrade-GUI vorhanden (6610170)

Beschreibung

Beim Ausführen der asupgrade-GUI in einer anderen Sprache als Englisch ist keine lokalisierte Version der Online-Hilfe für die GUI vorhanden.

Lösung

Gegenwärtig ist keine Lösung verfügbar. Die Lokalisierung der Online-Hilfe ist für alle Zielsprachen neben Englisch geplant.

Upgrade-Tool hat das nodeagents-Verzeichnis beim Upgrade (in umgekehrter Reihenfolge) mit mehreren Domänen gelöscht (6636871)

Beschreibung

Nach dem Upgrade einer Konfiguration mit mehreren Domänen sind lediglich die Knotenagenten der zuletzt verarbeiteten Domäne vorhanden. Dieses Problem tritt auf, da das Upgrade-Tool das nodeagents-Verzeichnis auf dem Ziel jedes Mal entfernt und neu erstellt, wenn es eine Domäne verarbeitet.

ProcedureLösung: So behalten Sie alle Knotenagenten bei, wenn Sie ein paralleles Upgrade für mehrere Domänen durchführen

  1. Erstellen Sie nach der Verarbeitung jeder Domäne eine .zip-Datei des nodeagents-Verzeichnisses.

  2. Dekomprimieren Sie die erstellten .zip-Dateien, nachdem alle Domänen verarbeitet wurden.

    Nun sollten alle Knotenagenten vorhanden sein.

Webcontainer

In diesem Abschnitt werden die bekannten Probleme mit Webcontainern sowie ihre Lösungen beschrieben.

Unter Windows kann die Bereitstellung einer Anwendung über - -precompilejsp=true die JAR-Dateien in der Anwendung sperren, sodass eine spätere Aufhebung der Bereitstellung bzw. eine erneute Bereitstellung fehlschlägt (5004315)

Beschreibung

Wenn Sie beim Bereitstellen einer Anwendung unter Windows eine Vorkompilierung der JSPs anfordern, funktionieren spätere Versuche zum Aufheben der Bereitstellung dieser Anwendung oder zum erneuten Bereitstellen der Anwendung (oder einer anderen Anwendung mit derselben Modul-ID) nicht wie erwartet. Das Problem liegt darin begründet, dass durch die JSP-Vorkompilierung JAR-Dateien in Ihrer Anwendung geöffnet, jedoch nicht wieder geschlossen werden, und Windows verhindert, dass zur Aufhebung der Bereitstellung diese Dateien gelöscht oder zur erneuten Bereitstellung diese Dateien überschrieben werden.

Beachten Sie, dass das Aufheben der Bereitstellung erfolgreich durchgeführt wird, bis die Anwendung aus Application Server logisch entfernt wird. Außerdem gibt das asadmin-Programm keine Fehlermeldung aus, obwohl das Anwendungsverzeichnis und die gesperrten JAR-Dateien auf dem Server weiterhin vorhanden sind. Die Protokolldatei des Servers enthält jedoch Fehlermeldungen, die Sie über den fehlgeschlagenen Löschvorgang der Dateien und des Verzeichnisses der Anwendung informieren.

Die Versuche zum erneuten Bereitstellen der Anwendung nach der Aufhebung der Bereitstellung schlagen fehl, da der Server versucht, die vorhandenen Dateien und Verzeichnisse zu entfernen, was ebenfalls nicht möglich ist. Dieser Fehler tritt beispielsweise auf, wenn Sie versuchen, eine Anwendung mit der Modul-ID der ursprünglich bereitgestellten Anwendung bereitzustellen, da der Server die Modul-ID für die Auswahl eines Verzeichnisses für das Speichern der Dateien der Anwendung verwendet.

Aus demselben Grund schlägt auch der Versuch fehl, die Anwendung erneut bereitzustellen, ohne dass die Bereitstellung zuvor aufgehoben wurde.

Diagnose

Wenn Sie die Anwendung erneut bereitstellen möchten oder die Anwendung bereitstellen möchten, nachdem Sie die Bereitstellung der Anwendung zuvor aufgehoben haben, gibt das asadmin-Programm eine Fehlermeldung aus, die etwa der folgenden Meldung entspricht:


An exception occurred while running the command. The exception 
message is: CLI171 Command deploy failed : Deploying application in 
domain failed; Cannot deploy. Module directory is locked and can't 
be deleted.

Lösung

Wenn Sie bei der Bereitstellung einer Anwendung --precompilejsps=false (die Standardeinstellung) festlegen, tritt dieses Problem nicht auf. Beachten Sie, dass beim ersten Aufruf der Anwendung die JSP-Kompilierung ausgelöst wird, sodass die Antwortzeit für den ersten Aufruf länger ist als für folgende Aufrufe.

Beachten Sie weiterhin, dass Sie im Falle einer Vorkompilierung den Server stoppen und erneut starten müssen, bevor Sie die Bereitstellung der Anwendung aufheben oder die Anwendung erneut bereitstellen. Durch den Prozess des Herunterfahrens werden die gesperrten JAR-Dateien wieder freigegeben, sodass die Aufhebung der Bereitstellung oder die erneute Bereitstellung nach dem Neustart erfolgreich ist.

Keine Bereitstellung von WAR-Dateien mit Servlet 2.4-basierter web.xml-Datei möglich, die ein leeres <load-on-startup>-Element enthält (6172006)

Beschreibung

Das optionale load-on-startup servlet-Element in der Datei web.xml gibt an, dass das zugehörige Servlet als Teil des Startvorgangs der die Deklaration ausführenden Webanwendung geladen und initialisiert werden muss.

Für dieses Element kann optional eine ganze Zahl angegeben werden, mit der festgelegt wird, in welcher Reihenfolge das Servlet mit Bezug auf die anderen Servlets der Anwendung geladen und initialisiert werden soll. Wenn für <load-on-startup> kein Wert angegeben ist, wird keine bestimmte Reihenfolge berücksichtigt und es wird lediglich festgelegt, dass das Servlet beim Start der entsprechenden Webanwendungen geladen und initialisiert wird.

Das Servlet 2.4-Schema für web.xml unterstützt keine leere <load-on-startup> mehr; dies bedeutet, dass bei Verwendung einer Servlet 2.4-basierten web.xml eine Ganzzahl angegeben werden muss. Wenn eine leere <load-on-startup> angegeben wurde, wie in <load-on-startup/>, schlägt die Validierung von web.xml basierend auf dem Servlet 2.4-Schema für web.xml fehl, wodurch die Bereitstellung der Webanwendung fehlschlägt.

Rückwärtskompatibilität: Die Angabe eines leeren <load-on-startup>-Elements ist mit Servlet 2.3-basierten web.xml-Dateien nach wie vor möglich.

Lösung

Geben Sie <load-on-startup>0</load-on-startup> an, wenn Sie eine Servlet 2.4-basierte web.xml-Datei verwenden, um anzugeben, dass die Servlet-Lastenreihenfolge irrelevant ist.

Keine Kompilierung von JSP-Seite auf Servern mit eingeschränkten Ressourcen möglich (6184122)

Beschreibung

Der Zugriff auf die JSP-Seite erfolgt, aber die eigentliche Kompilierung wird durchgeführt und das Serverprotokoll enthält die Fehlermeldung "Unable to execute command" mit folgenden Stapelverlaufsinformationen:


at org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.
exec(Execute.java:655) at org.apache.tools.ant.taskdefs.Execute.
launch(Execute.java:416) 
at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:427) 
at org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.
executeExternalCompile(DefaultCompilerAdapter.java:448) 
at org.apache.tools.ant.taskdefs.compilers.JavacExternal.execute
(JavacExternal.java:81) 
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:842) 
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:682) 
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:396)

Lösung

Setzen Sie den Schalter für die JSP-Kompilierung fork auf false.

Wählen Sie eine der folgenden Vorgehensweisen:

Alle Einstellungen verhindern, dass ant einen neuen Prozess für die javac -Kompilierung erzeugt.

Enterprise Server bietet keine Unterstützung für das Web Server 6.1-Add-On auth-passthrough (6188932)

Beschreibung

Sun GlassFish Enterprise Server &; fügt Unterstützung für die über das auth-passthrough-Plug-In bereitgestellte Funktionalität hinzu, das mit Sun GlassFish Enterprise Server Enterprise Edition 2.1 verfügbar ist. In Enterprise Server &; ist die auth-passthrough-Plug-In-Funktion jedoch nicht identisch konfiguriert.

Die auth-passthrough-Plug-In-Funktion in Enterprise Server Enterprise Edition 7.1 war in zweistufigen Bereitstellungsszenarien nützlich, in denen Folgendes zutrifft:

In derartigen Netzwerkarchitekturen stellen Clients eine Verbindung mit einem Front-End-Webserver her, der mit der Plugin-Funktion service-passthrough konfiguriert wurde, und leiten HTTP-Anforderungen zum Verarbeiten an die Proxy-Instanz von Application Server weiter. Die Instanz von Application Server kann lediglich Anforderungen vom Proxy-Webserver erhalten. Direkte Anforderungen von Client-Hosts sind nicht möglich. Folglich erhalten alle auf der Proxy-Instanz von Application Server bereitgestellten Anwendungen, die Client-Informationen, wie z. B. die IP-Adresse des Clients, abfragen, die IP des Proxy-Hosts, da dies der tatsächliche Ursprungs-Host der weitergeleiteten Anforderung ist.

Lösung

In Application Server Enterprise Edition 7.1 konnte die auth-passthrough-Plug-In-Funktion in der Application Server-Proxy-Instanz konfiguriert werden, um die Informationen des Remote-Cients direkt für die auf dem Client bereitgestellten Anwendungen verfügbar zu machen (als hätte die Application Server-Proxy-Instanz die Anforderung direkt empfangen, und nicht über einen Webserver, auf dem das service-passthrough-Plug-In ausgeführt wird.

In Enterprise Server 2.1 kann die Funktion auth-passthrough aktiviert werden, indem die Eigenschaft authPassthroughEnabled des Elements <http-service> in der Datei domain.xml wie folgt auf TRUE gesetzt wird:


<property name="authPassthroughEnabled" value="true"/>

Die gleichen Sicherheitsaspekte der Plug-In-Funktion auth-passthrough in Application Server Enterprise Edition 7.1 gelten auch für die Eigenschaft authPassthroughEnabled Enterprise Server 2.1. Da authPassthroughEnabled er ermöglicht, Informationen zu überschreiben, die zur Authentifizierung verwendet werden (z. B. die IP-Adresse, von der die Anforderung stammt, oder das SSL-Client-Zertifikat), ist es sehr wichtig, dass nur vertrauenswürdige Clients und Server eine Verbindung zu einer Enterprise Server 2.1-Instanz herstellen können und authPassthroughEnabled auf TRUE festgelegt ist. Als Vorsichtsmaßnahme wird empfohlen, dass nur Server hinter der firmeneigenen Firewall mit dem auf TRUE gesetzten Befehl authPassthroughEnabled konfiguriert werden. Ein Server, der über das Internet aufgerufen werden kann, darf niemals mit dem auf TRUE gesetzten Befehl authPassthroughEnabled konfiguriert werden.

Beachten Sie, dass in dem Fall, wenn ein Proxy-Webserver mit dem Plug-In service-passthrough konfiguriert wurde und Anforderungen an eine Instanz von mit der auf TRUE gesetzten Eigenschaft authPassthroughEnabled weiterleitet, die SSL-Clientauthentifizierung auf dem Webserver-Proxy aktiviert und auf der Proxy-Instanz von Enterprise Server deaktiviert sein kann. In diesem Fall behandelt die Proxy-Instanz von die Enterprise Server Anforderung immer noch so, als wäre diese per SSL authentifiziert worden und stellt das SSL-Zertifikat des Clients allen bereitgestellten Anwendungen zur Verfügung, wenn diese es anfordern.

Web Server

AS 9.1 b50e.Linux. WS kann nach der AS LB-Installation nicht gestartet werden: libjvm.so:cannot open shared (6572654)

Beschreibung

Dieses Problem tritt nur bei Verwendung des Sun GlassFish-Webservers mit Enterprise Server und Lastenausgleich auf einem Linux-System auf. In diesem Fall kann Web Server nach der Installation von Enterprise Server und einer Lastenausgleichskomponente möglicherweise nicht gestartet werden, da ein Konflikt zwischen libicui18n.so.2 und libicuuc.so.2 vorliegt. Diese Bibliotheken sind sowohl in /opt/sun/private/lib als auch in /opt/sun/appserver/lib vorhanden.

Lösung

Die richtigen Bibliotheken, die verwendet werden sollten, befinden sich im Verzeichnis /opt/sun/appserver/lib , da lbplugin mit diesen Bibliotheken erstellt wird. Nachdem die beiden Bibliotheken aus /opt/sun/private/lib entfernt wurden, sollte Web Server ohne Probleme gestartet werden können.

Alternativ, wenn Sie die Bibliotheken nicht aus /opt/sun/private/lib löschen möchten, können Sie /opt/sun/appserver/lib vor /opt/sun/private/lib in LD_LIBRARY_PATH im Web Server-Skript startserv einfügen; Das heißt, Sie ersetzen Folgendes:


# Add instance-specific information to LD_LIBRARY_PATH for Solaris and Linux
LD_LIBRARY_PATH="${SERVER_LIB_PATH}:${SERVER_JVM_LIBPATH}:${LD_LIBRARY_PATH}:
/opt/sun/appserver/lib:/opt/sun/appserver/lbplugin/lib"; export LD_LIBRARY_PATH 

durch:


# Add instance-specific information to LD_LIBRARY_PATH for Solaris and Linux
LD_LIBRARY_PATH="/opt/sun/appserver/lib:/opt/sun/appserver/lbplugin/lib:
${SERVER_LIB_PATH}:${SERVER_JVM_LIBPATH}:${LD_LIBRARY_PATH}"; export LD_LIBRARY_PATH

Webdienste

In diesem Abschnitt werden die bekannten Probleme mit Webcontainern sowie ihre Lösungen beschrieben.

Ant-Aufgabe wsimport schlägt mit Java EE SDK b33d (unter Verwendung von JDK 1.6) mit Fehler NoClassDefFoundError fehl (6527842)

Beschreibung

Es kann ein Problem auftreten, wenn die JAX-WS-Tests mit dem JDK 1.6 ausgeführt werden, der in Java EE SDK b33d enthalten ist. Die Tests werden sofort abgebrochen, und es wird die folgende Meldung angezeigt:


[wsimport] Exception in thread "main" java.lang.NoClassDefFoundError: \
com/sun/tools/ws/WsImport

Dieser Fehler tritt auf, obwohl die webservices-tools.jar-Datei folgende Elemente enthält: com/sun/tools/ws/WsImport.class, com/sun/tools/ws/ant/WsImport.class und com/sun/tools/ws/ant/WsImport2.class. Darüber hinaus funktioniert derselbe Testarbeitsbereich unter Verwendung von 1.5.0-10 JDK problemlos.

Lösung

Kopieren Sie die Datei webservices-api.jar vor dem Ausführen der JAX-WS-Tests in das Verzeichnis $JAVA_HOME/jre/lib/endorsed .

publish-to-registry-Befehle schlagen in IFR EE-Builds fehl (6602046)

Beschreibung

JAXR verwendet SAAJ, um SOAP-Meldungen an die Registrierung zu senden. Wenn nicht IFR verwendet wird, befinden sich die SAAJ-Klassen impl unter lib/webservices-rt.jar . Bei Einsatz von IFR befinden sich die SAAJ-Klassen weiterhin unter lib/webservices-rt.jar . Darüber hinaus befindet sich saaj-impl.jar im Verzeichnis /usr/share/lib. Diese JAR-Datei wird von Enterprise Server verwendet und hat Vorrang vor Klassen aus webservices-rt.jar. Diese JAR-Datei verfügt nicht über die erforderlichen Sicherheitsberechtigungen, um SOAP-Meldungen an die Web Services-Registrierung zu senden. Das Paket sollte so geändert werden, dass den JAR-Dateien unter /usr/share/lib Berechtigungen zugewiesen werden oder dass keine Abhängigkeit von den JAR-Dateien in /usr/share/lib besteht.

Lösung

Fügen Sie der server.policy-Datei Folgendes hinzu:


grant codeBase "file:/usr/share/lib/saaj-impl.jar" {
   permission java.security.AllPermission;
};

wscompile schlägt mit Fehler "package javax.xml.rpc does not exist" in JDK6 u4 b3 fehl (6638567)

Beschreibung

Die Ant-Aufgabe wscompile schlägt für JDK 6 Update 4 fehl. Für jede JAX-RPC API-Klasse wird die folgende Meldung angezeigt:


package package-name does not exist

Lösung

Stellen Sie vor dem Ausführen der Ant-Aufgabe wscompile sicher, dass javaee.jar im Klassenpfad angegeben ist, nicht j2ee.jar.