Notes de version de Sun GlassFish Enterprise Server 2.1

Chapitre 3 Problèmes connus et restrictions

Ce chapitre décrit les problèmes connus relatifs au logiciel Sun GlassFish Enterprise Server 2.1 et présente les solutions associées. Si aucune plate-forme particulière n'est spécifiée, le problème s'applique à toutes les plates-formes.

Voici les sujets abordés :

Administration

Cette section traite des problèmes connus liés à l'administration et les solutions associées.

Des instances autonomes obtiennent parfois des fichiers de la part d'autres instances (6698604)

Description

Dans certains cas, les fichiers installés sur le DAS devant être synchronisés avec une instance spécifique sont en fait envoyés à d'autres instances.

Solution

Aucune solution connue.

Le message de démarrage de la commande start-cluster est trop détaillé (6728317)

Description

La commande asadmin start-cluster indique trop de messages même en cas de défaillance de composants non essentiels au démarrage. Consultez l'exemple suivant de sortie de commandes en cas de défaillance d'éléments non essentiels (par rapport aux instances du cluster) :


./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.

Solution

Aucune solution connue. Ces messages (exceptions) peuvent être ignorés.

Échec du déploiement d'adaptateur de ressources RA contre IBM MQ (problème 6605)

Description

Déploiement d'un adaptateur RA générique contre les défaillances produit d'IBM Message Queue. Les autorisations accordées dans le fichier server.policy sont les suivantes.


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

Solution

Modifiez les autorisations du fichier server.policy comme suit :


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

Le script package-appclient ne fonctionne pas si le fichier domain1 est manquant (6171458)

Description

Par défaut, as-install/lib/package-appclient.xml comporte une valeur codée en dur pour la variable AS_ACC_CONFIG de domain1, pointée par asenv.conf. Si domain1 est supprimé et qu'un autre domaine est créé, la variable AS_ACC_CONFIG n'est pas mise à jour avec le nouveau nom de domaine, ce qui provoque l'échec du script package-appclient .

Solution

Effectuez l'une des opérations suivantes :

  1. Laissez domain1 intact et créez vos propres domaines en tenant compte de celui-ci.

  2. Supprimez domain1 et remplacez la valeur codée en dur de domain1 dans as-install/lib/package-appclient.xml par le nouveau nom de domaine.

Cette procédure devra être effectuée à chaque création d'un nouveau domaine si domain1 n'est pas présent.

Le démarrage du serveur avec un agent JMX supplémentaire n'est pas pris en charge (6200011)

Description

J2SE 1.4.x, 5.0, ou une version ultérieure peut être configurée sur le serveur. La fonction de démarrage d'un agent JMX est intégrée à la plate-forme J2SE 5.0. Un agent est activé lorsque vous définissez explicitement les propriétés système lors du démarrage du serveur.

Voici quelques exemples de valeurs:


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"

Une fois les propriétés JMX configurées et le serveur démarré, un nouveau serveur jmx-connector est démarré dans la machine virtuelle. L'un des effets secondaires non désirés de cette opération est que celle-ci nuit aux fonctions d'administration ; la console d'administration et l'interface de ligne de commande peuvent alors produire des résultats inattendus. Le problème provient du fait qu'il existe des conflits entre le serveur jmx connector intégré et le nouveau serveur jmx-connector.

Solution

Si vous utilisez la console jconsole (ou tout autre client compatible JMX), vous pouvez réutiliser le serveur JMX Connector Server lancé au démarrage du serveur.

Lorsque le serveur démarre, une ligne similaire à celle indiquée ci-dessous s'affiche dans le journal du serveur. Vous pouvez vous connecter à l'URL JMXService spécifié et exécutez les mêmes opérations de configuration/gestion après avoir fourni des données d'authentification correctes ; par exemple :


[#|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.|#]

Pour obtenir plus d'informations, reportez-vous au manuel Sun GlassFish Enterprise Server 2.1 Administration Guide .

Le fichier de configuration de l'équilibreur de charge n'est pas créé avec l'URL d'extrémité d'un service Web (6236544, 6275436)

Description

Lors de la configuration de l'équilibreur de charge avec une application dotée d'un module EJB qui exporte l'URL d'un service Web, la racine du contexte du service Web ne figure pas dans le fichier loadbalancer.xml en résultant.

Solution

  1. Modifiez le fichier loadbalancer.xml de manière à ajouter le module Web manquant comme suit :


    <web-module context-root="context-root-name"
    disable-timeout-in-minutes="30" enabled="true"/>
  2. Remplacez la valeur context-root-name par le nom de la racine de contexte du service Web présenté comme EJB.

Le fichier .asadmintruststore n'est pas décrit dans la documentation d'Enterprise Server (6315957)

Description

Le fichier .asadmintruststore n'est pas présenté dans la documentation d'Enterprise Server. Si ce fichier n'existe pas dans le répertoire home de l'administrateur, vous pouvez rencontrer de graves bogues lors de la mise à niveau d'applications hébergées sur le serveur.

Solution

Échec du démarrage des instances clusterisées suite à l'expiration du délai d'accès au courtier JMS (6523663)

Description

Le mode d'intégration MQ par défaut d'une instance clusterisée d'Enterprise Server est LOCAL. Lorsqu'Enterprise Server est installé dans un emplacement (PATH) long (c'est-à-dire « non court »), imqbrokerscv.exe s'arrête brutalement au démarrage de l'instance clusterisée. Le problème provient d'une allocation de mémoire incorrecte dans imqbrokersvc.

Solution

Il est nécessaire de modifier le type de service JMS pour l'instance clusterisée, de la valeur par défaut LOCAL sur REMOTE. Avec cette configuration, toutes les instances pointent vers le courtier DAS. Suivez les instructions ci-dessous pour configurer un cluster en mode REMOTE.


Remarque –

Avec le mode REMOTE, toutes les instances n'utilisent qu'un seul courtier (DAS), par conséquent aucun cluster de courtier n'est créé au démarrage du cluster d'Enterprise Server. Consultez “Clustering automatique” à la section 4.1, division iii de la page http://www.glassfishwiki.org/gfwiki/attach/OnePagersOrFunctionalSpecs/as-mq-integration-gfv2.txt pour obtenir plus d'informations. La fonctionnalité susmentionnée ne sera pas disponible.


ProcedureUtilisation de la ligne de commande

Avant de commencer

Modifiez le port et le fichier de mots de passe selon votre environnement. Notez que dans les instructions ci-dessous, le nom du cluster est racluster, le port d'administration DAS est 5858 et le port JMS DAS 7676 .

  1. Modifiez la configuration du cluster, en changeant le type JMS sur REMOTE .


    as-install/bin/asadmin.bat set --port 5858 --user admin --passwordfile \
    as-install/bin/password_file racluster.jms-service.type=REMOTE
  2. Créez un hôte JMS correspondant à l'hôte JMS DAS.


    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. Définissez l'hôte JMS DAS créé à l'étape précédente comme le nouvel hôte JMS par défaut.


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

ProcedureUtilisation de l'IG d'administration

  1. Accédez à Configurations->cluster-name-config->Java Message Service->Hôtes JMS.

  2. Cliquez sur Nouveau pour créer un nouvel hôte JMS ; nommez-le dashost.

  3. Entrez les paramètres de configuration correspondant au service JMS pour le DAS ; les valeurs par défaut sont les suivantes :

    • Nom d'hôte : hôtelocal

    • Port : 7676

    • Utilisateur administrateur : admin

    • Password: admin

    Modifiez ces paramètres au besoin pour votre service JMS DAS.

  4. Retournez à l'onglet Java Message Service, puis modifiez le type de service JMS sur REMOTE (défini sur LOCAL par défaut).

  5. Choisissez dashost à partir de la liste déroulante default-jms-host.

  6. Enregistrez vos modifications, puis démarrez votre agent de nœud ou votre cluster.

Impossible d'afficher le diagramme jmaki sous les navigateurs Netscape 8.1.3, Mozilla 1.7 et Safari 2.0.4 (6543014)

Description

Lorsque vous essayez d'afficher un diagramme de la page de contrôle des statistiques de journalisation à l'aide d'un navigateur non pris en charge, le message d'erreur suivant peut s'afficher :


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

Solution

Utilisez un navigateur pris en charge. Reportez-vous à la section Navigateurs pour obtenir la liste des navigateurs pris en charge par Enterprise Server 2.1.

Changements des ports par défaut dans chaque version principale d'AS (6566481)

Description

Dans les trois dernières versions principales d'Enterprise Server, le port d'administration par défaut a été modifié. De manière plus spécifique, les ports d'administration par défaut dans 7.x, 8. x et 9.x sont les suivants :

Solution

Il ne s'agit pas d'un bogue mais d'un fait à prendre en compte. Le port d'administration par défaut est simplement une recommandation. Nous pensons d'ailleurs que les prochaines versions d'Enterprise Server conserveront le port 4848.

La commande create-domain échoue avec le mot de passe principal personnalisé sous AIX (6628170)

Description

Sous le système d'exploitation AIX, toute tentative de création de domaine avec un mot de passe principal personnalisé échoue avec l'erreur suivante :


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

ProcedureSolution : (AIX) Créer un domaine avec un mot de passe principal personnalisé


Remarque –

Dans la procédure suivante, seules les options requises pour chaque étape sont présentées. Si vous avez besoin d'options supplémentaires pour une commande, spécifiez ces options directement dans la commande. Pour obtenir plus d'informations sur les commandes de Enterprise Server, reportez-vous au manuel de référence Sun GlassFish Enterprise Server 2.1 Reference Manual.


  1. Créez un script shell comportant les lignes de code suivantes :

    #!/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. Créez un domaine en spécifiant le mot de passe principal par défaut.


    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]:>

    Le mot de passe principal par défaut est changeit.

  3. Modifiez le mot de passe principal du domaine tout juste créé.

    Pour ce faire, exécutez le script créé à l'Étape 1.


    script-name domain-path old-password new-password
    
  4. Démarrez le domaine créé à l'Étape 2.


    asadmin start-domain domain-name
    

    Étant donné que le domaine comporte un mot de passe principal personnalisé, vous êtes invité à saisir le mot de passe principal.

  5. À l'invite correspondante, entrez votre nouveau mot de passe principal.

  6. Pour les domaines configurés pour prendre les clusters en charge, créez et démarrez un agent de nœud.

    1. Créez un agent de noeud pour le domaine réalisé à l' Étape 2.


      asadmin create-node-agent --port portno --user admin-user
      
    2. Démarrez l'agent de noeud créé à l' Étape a.


      asadmin start-node-agent
      

      Étant donné que le domaine comporte un mot de passe principal personnalisé, vous êtes invité à saisir le mot de passe principal.

    3. À l'invite correspondante, entrez votre nouveau mot de passe principal.

Voir aussi

Les principales pages d'Enterprise Server :

AIX : 0403-027 The parameter list is too long (la liste des paramètres est trop longue) (6625591)

Description

Sous le système d'exploitation AIX, certaines opérations liées au SE risquent d'échouer avec le message d'erreur suivant :


0403-027 The parameter list is too long

Ce type d'opérations comprend par exemple le déploiement d'applications ou l'exécution du conteneur client de l'application.

Ce problème survient généralement en présence de longs chemins de fichier dans la variable d'environnement CLASSPATH.

Solution

Utilisez l'une des solutions suivantes :

Procedure(AIX) Augmenter la taille maximale de la ligne de commande

L'attribut ncargs détermine la longueur maximale de la ligne de commande, notamment des variables d'environnement. Sous le système d'exploitation AIX, la valeur par défaut de l'attribut ncargs est de 4 blocs de 4 Ko. Pour vous assurer que les commandes d'Enterprise Server ne dépassent pas la longueur maximale de la ligne de commande, augmentez cette valeur sur 16 blocs de 4 Ko.


Remarque –

Après avoir modifié la valeur de l'attribut ncargs, il n'est pas nécessaire de redémarrer ou de réinitialiser les démons.


  1. Déterminez la valeur de l'attribut ncargs.


    lsattr -EH -l sys0 | grep ncargs
    
  2. Si la valeur de l'attribut ncargs est inférieure à 16 blocs de 4 Ko, augmentez cette valeur sur 16.


    chdev -l sys0 -a ncargs=16
    

Serveur Apache et plug-in de l'équilibreur de charge

Cette section décrit les problèmes connus relatifs au serveur Web Apache et au plug-in de l'équilibreur de charge et présente les solutions associées.

Le déploiement de l'application Java EE avec EJB comme service Web n'est pas capturé par le plug-in d'équilibrage de charge (problème 685)

Description

Lorsque vous déployez un WAR (ou EAR) avec un service Web basé sur servlet, l'équilibreur de charge HTTP est mis à jour avec des informations relatives au service Web. Lorsqu'un service Web basé sur EJB est déployé, la configuration de l'équilibreur de charge HTTP n'est pas mis à jour pour refléter le nouvel objet.

Solution

Ajoutez ces racines de contexte manuellement au fichier de configuration de l'équilibreur de charge (loadbalancer.xml). Cependant, une reconfiguration dynamique de la configuration de l'équilibreur de charge (à l'aide de la fonction d'application automatique) entraînerait la perte des modifications manuelles antérieures.

Désactivez la fonction d'application automatique au niveau du DAS et utilisez plutôt la fonction d'exportation manuelle pour modifier et appliquer la configuration de l'équilibreur de charge au serveur Web.

Le manuel High-Availability Administration Guide ne comporte aucune instruction relative à l'utilisation d'un certificat pour Apache 2.0 (6307976)

Pour exécuter la sécurité Apache, vous devez utiliser un certificat. Pour obtenir des instructions sur l'obtention d'un certificat de la part d'une autorité de certification, consultez les informations sur les certificats dans la FAQ modssl FAQ.

Le serveur Web Apache doit être démarré par un utilisateur root (6308021)

Sous Solaris, si Application Server a été installé par un utilisateur root, vous devez démarrer le serveur Web Apache en vous connectant en tant qu'utilisateur root. Les installations Java Enterprise System sont effectuées par des utilisateurs root. Avec Apache 2.0, après avoir démarré sous une connexion d'utilisateur root, il bascule et s'exécute sous la connexion utilisateur que vous avez définie. Vous pouvez définir cet utilisateur dans le fichier /conf/httpd.conf. Pour démarrer le serveur en tant qu'utilisateur root, sur la plupart des systèmes, vous devez modifier le fichier httpd.conf afin de définir le groupe approprié. Remplacez la ligne :

Group #-1

par

Group nobody

Vous trouverez d'autres informations sur les utilisateurs et les groupes dans le fichier httpd.conf.

Client d'application

Cette section décrit les problèmes connus des clients d'application et les solutions associées.

Le JAR de bibliothèque contenu dans l'archive de clients d'application écrase le fichier MANIFEST (6193556)

Description

Si vous possédez un fichier JAR de niveau supérieur dans votre JAR client (dans notre cas, reporter.jar), le fichier manifeste de ce JAR écrase celui du JAR client lorsque vous déployez ce dernier.

Solution

Aucune pour l'instant.

Le CCA essaie toujours de se connecter à localhost:3700 (6527987)

Description

Le client d'application essaie toujours de se connecter à localhost:3700. Le problème vient du fait que plusieurs propriétés système doivent être lues avant que le code client ne soit invoqué.

Solution

Définissez les éléments suivants en tant que propriétés système (-D dans votre JAVA_CMD). Ne les définissez pas dans votre code client d'application :


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

Impossible de démarrer un domaine, sunpkcs11.jar manquant (6571044)

Description

Sous Linux 64 bits, l'exception suivante est générée au démarrage d'un domaine. sunpkcs11.jar est manquant sous jdk1.5.0_11/jre/lib/ext/.

Solution

Il s'agit d'un bogue JDK connu avec Linux 64 bits ; celui-ci sera corrigé dans JDK 1.5.0_13.

ASQuickStartup rompt SocketChannel.keyFor(), retournant une valeur null au lieu de SelectionKey (Issue Tracker 3027)

Description

Lorsqu'un SocketChannel est enregistré sur plusieurs sélecteurs, socketChannel.keyFor(lastRegisteredSelector) retourne une valeur null au lieu de SelectionKey.

Solution

Ce problème est associé au bogue JDK 6562829 et devrait être résolu dans 6.0 U3. Une solution a été incluse dans Enterprise Server 2.1, pour que le sélecteur soit déployé avant que l'API keyFor ne soit appelée. Cela permet à keyFor de fonctionner jusqu'à ce que le bogue JDK soit résolu.

Pilotes Sun JDBC intégrés

Cette section décrit les problèmes connus du pilote Sun JDBC intégré et les solutions associées.

Erreurs PreparedStatement (6170432)

Description 1

Si une application génère plus de 3000 objets PreparedStatement dans une transaction, l'erreur suivante peut se produire avec DB2 :

[sunm][DB2 JDBC Driver] Plus d'instruction disponible. Veuillez recréer votre package avec une valeur dynamicSections supérieure.

Solution 1

Ajoutez les propriétés suivantes à la définition de pool de connexions afin que le pilote puisse rééditer les liens des packages DB2 avec une valeur dynamicSections supérieure :

createDefaultPackage=true replacePackage=true dynamicSections=1000

Reportez-vous au manuel Sun GlassFish Enterprise Server 2.1 Administration Guide pour obtenir des détails sur la configuration des pools de connexion.

Description 2

En liaison avec l'erreur PrepardStatement mentionnée ci-dessus, le message d'erreur suivant peut également être généré :

[sunm][DB2 JDBC Driver][DB2]Virtual storage or database resource is not available.

Solution 2

Augmentez la valeur du paramètre de configuration APPLHEAPSZ pour le serveur DB2. 4096 constitue une valeur correcte.

Description 3

Niveau d'isolement TRANSACTION_SERIALIZABLE. Si votre application utilise le niveau d'isolement TRANSACTION_SERIALIZABLE avec l'un des paramètres indiqués ci-dessus, elle peut rester bloquée en tentant d'obtenir la connexion.

Solution 3

Pour définir le niveau d'isolement d'une connexion, le pool de connexions correspondant doit être créé sur le même niveau d'isolement. Reportez-vous au manuel Sun GlassFish Enterprise Server 2.1 Administration Guide pour obtenir des instructions.

Java DB n'est pas démarrée après le redémarrage de la machine ou le démarrage du serveur (6515124)

Description

La base de données Java DB intégrée n'est pas automatiquement redémarrée après le redémarrage d'un système hôte ou d'une zone Solaris, ou le démarrage d'Enterprise Server. Il ne s'agit pas d'un bogue mais du comportement attendu pour toute application tiers ou intégrée. Le problème réside dans le fait que Java DB doit être démarrée avant l'instance d'Enterprise Server.

Solution

Après le redémarrage de la machine hôte ou de la zone Solaris, assurez-vous de démarrer Java DB avant Enterprise Server ; par exemple :


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

Reportez-vous à la section Administration Tools du Sun GlassFish Enterprise Server 2.1 Quick Start Guide dans le Sun GlassFish Enterprise Server 2.1 Quick Start Guide pour obtenir de plus amples informations sur les options de la commande asadmin .

Déploiement

Le déploiement automatique échoue parfois sur un cluster (6610527)

Description

Les problèmes de temporisation peuvent provoquer l'échec du déploiement automatique dans les domaines configurés pour prendre les clusters en charge. Ce problème ne survient pas dans les domaines ne prenant pas les clusters en charge.

Solution

Utilisez l'une des solutions suivantes :

L'outil ANT intégré génère l'exception java.lang.NoClassDefFoundError (6265624)

Description

L'exception suivante est générée dans le thread principal "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher.

Solution

Il est conseillé de ne pas utiliser l'outil ANT intégré ailleurs que dans Enterprise Server.

Classloader spécifique à l'application non utilisé par la compilation JSP (6693246)

Description

Le classloader spécifique à l'application (applibs ou --libraries) n'est pas utilisé par la compilation JSP. En conséquence, les JSP associés à ces JAR ne seront pas compilés.

Solution

Aucune solution connue.

Documentation

Cette section décrit les problèmes détectés dans la documentation et les solutions associées.

Incohérences Javadoc (plusieurs ID)

Une documentation Javadoc est absente ou incorrecte pour plusieurs interfaces et méthodes AMX :

EJB

Resource Injection ne fonctionne pas avec HandlerChain (6750245)

Description

Resouce Injection ne fonctionne pas avec HandlerChain à cause de l'ordre d'initialisation d'EJB.

Solution

Aucune solution connue.

Haute disponibilité

Cette section décrit les problèmes connus de base de données haute disponibilité (HADB) et les solutions associées.

Le contrôle de l'extension de l'équilibreur de charge génère un certain nombre de connexions/déconnexions à l'arrière-plan (charge) (6453946)

Description

Le contrôle du plug-in de l'équilibreur de charge génère un certain nombre de connexions/déconnexions à l'arrière-plan (charge). Une unité d'exécution runDaemonMonitor effectue des contrôles de maintenance en exécutant une opération de connexion/déconnexion pour chaque listener du serveur d'application. Ceci peut entraîner une saturation de la connexion sur Enterprise Server.

Solution

Un nouvel attribut, monitor-interval-in-seconds, a été développé pour le fichier loadbalancer.xml. Cet attribut peut être utilisé pour insérer une pause entre les connexions/déconnexions au cas où des centaines de listeners sont configurés pour le plug-in de l'équilibreur de charge. La valeur de la pause par défaut est de 0.

Configuration HADB à double réseau (aucun ID)

Sous Solaris SPARC, les bases de données HADB configurées avec double réseau fonctionnent parfaitement sur deux sous-réseaux. Cependant, du fait de problèmes au niveau du système d'exploitation ou des pilotes réseau sur certaines plates-formes matérielles, les plates-formes Solaris x86 et Linux ne gèrent pas toujours correctement les doubles réseaux. Cela crée les problèmes suivants pour la base de données HADB:

Échec de la création de la base de données HADB (pas d'ID)

Description

La création d'une base de données risque d'échouer en générant l'erreur suivante, indiquant que le nombre de segments de mémoire partagée disponibles est insuffisant :

HADB-E-21054: System resource is unavailable: HADB-S-05512: Attaching shared memory segment with key "xxxxx" failed, OS status=24 OS error message: Too many open files.

Solution

Vérifiez que la mémoire partagée est correctement configurée. En particulier, sous Solaris 8, inspectez le fichier /etc/system et assurez-vous que la valeur de la variable shmsys: shminfo_shmseg est au moins six fois supérieure au nombre de nœuds par hôte.

hadbm set ne vérifie pas la disponibilité des ressources (espace disque et mémoire) (5091280)

Description

Lorsque vous augmentez la taille des périphériques ou du tampon à l'aide de la commande hadbm set, le système de gestion vérifie la disponibilité des ressources lors de la création des bases de données ou de l'ajout de nœuds. Cependant, il ne vérifie pas si un nombre suffisant de ressources est disponible lors de la modification de la taille des périphériques ou du tampon de la mémoire principale.

Solution

Vérifiez qu'il y a suffisamment d'espace disque ou de mémoire disponible sur tous les hôtes avant d'augmenter les attributs de configuration devicesize ou buffersize.

Les chemins hétérogènes pour packagepath ne sont pas pris en charge (5091349)

Description

Il est impossible d'enregistrer le même package avec le même nom à différents emplacements et sur différents hôtes ; par exemple :


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.

Solution

La base de données HADB ne prend pas en charge les chemins hétérogènes sur plusieurs nœuds d'un cluster de base de données. Assurez-vous que le répertoire d'installation du serveur HADB (--packagepath) est le même pour tous les hôtes concernés.

Risque d'échec de hadbm createdomain (6173886, 6253132)

Description

Si l'agent de gestion est exécuté sur un hôte avec plusieurs interfaces réseau, la commande createdomain risque d'échouer si toutes les interfaces réseau ne se trouvent pas sur le même sous-réseau :


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

Les agents de gestion utiliseront (s'ils n'ont pas été configurés autrement), la "première" interface de multidiffusions UDP (la "première" étant déterminée par le résultat de java.net.NetworkInterface.getNetworkInterfaces() ).

Solution

La meilleure solution consiste à indiquer à l'agent de gestion quel sous-réseau utiliser (en définissant ma.server.mainternal.interfaces dans le fichier de configuration, par exemple ma.server.mainternal.interfaces=10.11.100.0). Une autre solution consiste à configurer le routeur entre les sous-réseaux de manière à acheminer les paquets multidiffusions. (L'agent de gestion utilise l'adresse multidiffusion 228.8.8.8.)

Avant de réessayer avec une nouvelle configuration des agents de gestion, vous devrez peut-être nettoyer le référentiel des agents de gestion. Arrêtez tous les agents du domaine et supprimez tous les fichiers et répertoires du répertoire du référentiel (identifié par repository.dr.path dans le fichier de configuration de l'agent de gestion). Cette opération doit être effectuée sur tous les hôtes avant de redémarrer les agents avec le nouveau fichier de configuration.

Risque d'échec du démarrage, de l'arrêt ou de la reconfiguration de HADB (6230792, 6230415)

Description

Sous Solaris 10 Opteron, le démarrage, l'arrêt ou la reconfiguration de HADB à l'aide de la commande hadbm risque d'échouer ou de se bloquer, en générant l'une des erreurs suivantes :


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.

Cette erreur peut se produire s'il existe des incohérences lors de l'écriture ou de la lecture d'un fichier nomandevice) utilisé par le processus clu_noman_srv. Vous pouvez détecter ce problème en recherchant l'un des messages suivants dans les fichiers de l'historique de HADB :


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.

Solution

La solution suivante n'a pas été vérifiée, car le problème n'a pas été reproduit manuellement. Cependant, l'exécution de cette commande pour le nœud affecté devrait résoudre le problème.


hadbm restartnode --level=clear nodeno dbname

Notez que tous les périphériques associés au nœud seront réinitialisés. Vous devrez peut-être arrêter le nœud avant de le réinitialiser.

L'agent de gestion s'arrête et génère l'exception "IPV6_MULTICAST_IF failed" (6232140)

Description

Si vous démarrez l'agent de gestion sur un hôte exécutant Solaris 8 et sur lequel plusieurs cartes réseau sont installées et que IPv6 et IPv4 sont activés simultanément, l'agent de gestion s'arrête et génère l'exception "IPV6_MULTICAST_IF failed".

Solution

Paramétrez la variable d'environnement JAVA_OPTIONS sur -Djava.net.preferIPv4Stack=true ; par exemple :


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

Une autre solution consiste à utiliser Solaris 9 ou ultérieur, qui ne présente pas ce problème.

clu_trans_srv ne peut pas être interrompu (6249685)

Description

Un bogue dans la version 64 bits de Red Hat Enterprise Linux 3.0 met fin au processus clu_trans_srv à un mode sans interruption en exécutant des E/S asynchrones. Ceci signifie que kill -9 ne fonctionne pas et que le système d'exploitation doit être redémarré.

Solution

Utilisez la version 32 bits de Red Hat Enterprise Linux 3.0.

hadbm ne prend pas en charge les mots de passe contenant des majuscules (6262824)

Description

Les lettres en majuscules sont converties en minuscules lorsqu'un mot de passe est stocké dans hadb.

Solution

N'utilisez pas de mots de passe contenant des lettres en majuscules.

La mise à niveau inférieur de HADB Version 4.4.2.5 vers HADB Version 4.4.1.7 provoque l'échec de l'agent de gestion avec différents codes d'erreur (6265419)

Description

Lors d'une mise à niveau inférieur d'une version HADB, l'agent de gestion peut échouer avec différents codes d'erreur.

Solution

Il est possible de mettre la base de données HADB à un niveau inférieur, mais ce n'est pas le cas pour l'agent de gestion si des modifications ont été apportées à des objets du référentiel. Une fois la mise à niveau inférieur effectuée, vous devez continuer à utiliser l'agent de gestion provenant de la version HADB la plus récente.

Installation/suppression et conservation de symlink(6271063)

Description

Lors de l'installation/de la suppression du package c HADB (Solaris : SUNWhadbc, Linux : sun-hadb-c) version <m.n.u-p>, le lien symbolique symlink /opt/SUNWhadb/<m> existant n'est jamais affecté. Il est donc possible qu'un lien symbolique orphelin symlink existe.

Solution

Supprimez le lien symbolique symlink avant l'installation ou après la désinstallation, sauf s'il est en cours d'utilisation.

Les agents de gestion des zones globale et locale peuvent s'interférer (6273681)

Description

Sous Solaris 10, l'arrêt d'un agent de gestion par le biais du script ma-initd dans une zone globale provoque également l'arrêt de l'agent de gestion de la zone locale.

Solution

N'installez l'agent de gestion que dans une de ces zones.

hadbm/ma doit générer un message d'erreur plus clair après l'expiration et la suppression d'un objet de session sur l'agent de gestion (6275103)

Description

Il peut arriver qu'un problème de conflit d'utilisation des ressources sur un serveur entraîne la déconnexion d'un client de gestion. Lors de la reconnexion, un message d'erreur trompeur, "hadbm: Error 22184: A password is required to connect to the management agent", peut être renvoyé.

Solution

Il peut arriver qu'un problème de conflit d'utilisation des ressources sur un serveur entraîne la déconnexion d'un client de gestion. Lors de la reconnexion, un message d'erreur trompeur, "hadbm: Error 22184: A password is required to connect to the management agent", peut être renvoyé.

Vérifiez s'il y a un problème de ressources sur le serveur, prenez les mesures nécessaires (par exemple, ajoutez des ressources) et relancez l'opération.

Les utilisateurs non root ne peuvent pas gérer la base de données HADB (6275319)

Description

Une installation par le biais de Java Enterprise System (en tant que root) ne permet pas aux utilisateurs non root de gérer la base de données HADB.

Solution

Connectez-vous toujours en tant que root pour pouvoir gérer la base de données HADB.

L'agent de gestion ne doit pas utiliser d'interfaces spécialisées (6293912)

Description

Les interfaces spécialisées portant des adresses IP comme 0.0.0.0 ne doivent pas être enregistrées comme des interfaces pouvant être utilisées pour des nœuds HADB dans l'agent de gestion. L'enregistrement de telles interfaces peut entraîner des problèmes si des nœuds HADB sont définis sur ces interfaces via une commande utilisateur hadbm create utilisant des noms d'hôtes à la place d'adresses IP. Les nœuds ne pourront plus communiquer, interrompant ainsi la commande create.

Solution

Lorsque vous utilisez hadbm create sur des hôtes à plusieurs interfaces, spécifiez toujours les adresses IP à l'aide d'une notation DDN.

Échecs de réassemblage sous Windows (6291562)

Description

Sous Windows, avec certaines configurations et charges, un grand nombre d'échecs de réassemblage peut se produire dans le système d'exploitation. Le problème a été observé avec des configurations de plusieurs vingtaines de nœuds lors de l'exécution de plusieurs analyses parallèles de tables (select *). Les signes peuvent être tels que les transactions sont fréquemment abandonnées, la réparation ou la récupération peut prendre du temps et des délais d'expiration fréquents peuvent se produire dans différentes parties du système.

Solution

Pour résoudre le problème, la variable du registre Windows HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters peut être définie sur une valeur supérieure à celle par défaut de 100. Il est recommandé d'augmenter cette valeur à 0x1000 ( 4096). Pour plus d'informations, consultez l' article 811003 tiré des pages de support de Microsoft.

L'état de session n'est pas conservé si le navigateur contient un autre cookie avec un chemin / (6553415)

Description

Les cookies comportant un chemin équivalent à “/” interfèrent avec les cookies d'une application Web hautement disponible déployée sur une racine contexte autre que “/” et utilisant la réplication en mémoire comme type de persistance, ce qui empêche ainsi l'application Web de conserver tout état de session HTTP. Ce problème peut par exemple survenir lorsque vous utilisez le même navigateur pour accéder à l'IG d'administration (déployée sur « / » ) et à l'application Web hautement disponible.

Solution

Accédez à l'application Web déployée sur « / » à partir d'un autre navigateur.

L'équilibreur de charge ne fonctionne pas avec IIS 6 ; SASL32.DLL et ZLIB.DLL étant non disponibles sous as-install/lib (6572184)

Description

Les fichiers SASL32.DLL et ZLIB.DLL sont nécessaires au fonctionnement de l'équilibreur de charge avec Windows IIS 6. Ces fichiers ne sont actuellement pas disponibles sous as-install/lib.

Solution

Copiez les deux fichiers DLL manuellement vers as-install/lib. Vous pouvez les télécharger à partir de :


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

OS correspond à la plate-forme choisie parmi les valeurs suivantes :

Problèmes lors de la création/du démarrage de DAS et de la propagation des packages HA dans la zone globale (6573511)

Description

Deux problèmes surviennent lors de l'installation ou de la désinstallation d'Enterprise Server avec des packages haute disponibilité dans une zone globale :

  1. ceux-ci sont installés dans toutes les zones, ce qui peut ne pas être souhaitable.

  2. Lors de la désinstallation, les packages HA, MQ et JDK sont supprimés de toutes les zones, ce qui peut ne pas être souhaitable.

Ce problème ne survient pas lors des opérations d'installation ou de désinstallation à partir d'une zone racine locale.

Solution

Effectuez les opérations d'installation et de désinstallation à partir d'une zone racine locale plutôt que d'une zone globale.

Les applications Web hautement disponibles déployées sur « / » ne parviennent pas à reprendre les sessions HTTP répliquées en mémoire (Issue Tracker 2972)

Description

Les applications Web hautement disponibles déployées sur « / » ne peuvent pas conserver de sessions HTTP lorsqu'elles utilisent la réplication en mémoire comme type de persistance.

Solution

Déployez les applications Web hautement disponibles, utilisant la réplication en mémoire comme type de persistance, vers une racine contexte autre que « / ». Si vous souhaitez qu'une telle application Web soit disponible sur « / », vous pouvez désigner ce dernier en tant que module Web par défaut du serveur virtuel vers lequel l'application Web a été déployée.

Étant donné que le programme d'installation de l'équilibreur de charge n'a pas inséré le chemin /usr/lib/mps dans apachectl LD_LIBRARY_PATH, il est impossible de démarrer Apache SSL (6591878)

Description

Lors de l'installation de l'équilibreur de charge d'Enterprise Server pour Apache sous Solaris, le programme d'installation met à jour le chemin LD_LIBRARY_PATH dans le script apachectl . Cependant, le programme d'installation n'écrit pas correctement le chemin /usr/lib/mps. Sous Solaris, l'instance de sécurité Apache ne pourra pas démarrer sans ce chemin dans LD_LIBRARY_PATH.

Solution

Ce problème est particulier aux plates-formes Solaris. Pour le contourner, ajoutez /opt/SUNWappserver/appserver/lib/lbplugin/lib à votre chemin LD_LIBRARY_PATH.

L'activation/la désactivation de l'équilibreur de charge pour une instance/un cluster doit afficher un état correct (6595113)

Description

Le bouton Activer l'équilibreur de charge est toujours activé sur la page principale relative à l'instance/au cluster, quel que soit le contenu de domain.xml.

Solution

AS9.1 EE IFR b58f/JES5 UR1. Impossible d'installer Registry Server, en raison d'un HA “incomplet” détecté. (6602508)

Description

(Solaris uniquement) Une fois Enterprise Server 2.1 installé sous SPARC Solaris 10 avec HADB, vous pouvez recevoir l'erreur suivante après le démarrage de Enterprise Server et la tentative d'installation de JES 5 UR1 avec Registry Server :


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.

Solution

Vous ne pouvez pas installer Registry Server à partir de JES 1 UR1 avec avec l'IFR Enterprise Server 2.1 sur des machines Solaris. Vous devez installer manuellement les packages de Registry Server à l'aide de la commande pkgadd à partir du répertoire de distribution JES5 UR1 suivant :


path/OS/Products/registry-svr/Packages

Spécifique au navigateur Internet Explorer 6.0/7.0 : l'exportation du fichier de configuration de l'équilibreur de charge génère une erreur (6516068)

Description

(Internet Explorer 6 et 7 uniquement) Lors de la tentative d'exportation du fichier de configuration de l'équilibreur de charge (loadbalancer.xml) à partir d'Internet Explorer 6 ou 7, le navigateur affiche un message d'erreur indiquant que le fichier DTD sun-loadbalancer_1_2.dtd est introuvable.

Solution

Pour enregistrer le fichier, procédez comme suit :

  1. Cliquez sur Exporter sur la page de l'équilibreur de charge sous Internet Explorer.

    Le message « La page XML ne peut pas être affichée » s'affiche.

  2. Cliquez sur ce message, puis choisissez Fichier->Enregistrer sous à partir d'Internet Explorer.

  3. Enregistrez le fichier loadbalancer.xml dans le répertoire de votre choix.

Installation

Cette section décrit les problèmes connus liés à l'installation et les solutions associées.

Le programme d'installation de Enterprise Server provoque une panne système sous Linux (6739013)

Description

Ce problème a été observé sur des systèmes exécutés sous Linux avec la variable d'environnement, MALLOC_CHECK_, défini à 2.

Solution

Définissez la variable d'environnement, MALLOC_CHECK_ à 0. Exécutez la commande export comme suit :


export MALLOC_CHECK_

Blocage de la fermeture du programme d'installation sur certains systèmes Linux après l'activation du bouton Terminer (5009728)

Description

Ce problème se produit sur plusieurs systèmes Linux. Il apparaît le plus souvent sur Java Desktop System 2, mais il a également été observé sur les distributions Linux Red Hat.

Lorsque vous cliquez sur le bouton Terminer du dernier écran, le programme d'installation ne parvient pas à ouvrir de fenêtre de navigation dans laquelle est affichée la page À propos de ou celle concernant l'enregistrement du produit. Il se bloque alors pour une période indéterminée, sans renvoyer d'invite de commande.

Solution

Quittez le programme d'installation en appuyant sur les touches Ctrl+C dans la fenêtre du terminal dans laquelle le programme d'installation a été démarré. Ceci devrait lancer l'affichage de la page À propos de ou de la page concernant l'enregistrement du produit dans la fenêtre du navigateur. Si ce n'est pas le cas, lancez le navigateur et saisissez l'URL suivant afin de vérifier la page À propos de :


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

Si vous avez également sélectionné l'option d'enregistrement du produit lors de l'installation, suivez le lien vers la page d'enregistrement disponible sur la page À propos de.

Sous Windows, le répertoire imq doit être créé à l'installation (6199697)

Description

Sous Windows, dès l'installation, le courtier Message Queue échoue au démarrage et un message indiquant que le répertoire drive:\as\domains\domain1\imq n'existe pas apparaît.

Notez que le problème ne se produit pas si le courtier est démarré après domain1, car le répertoire est créé par Application Server.

Solution

  1. Créez l'emplacement var_home_dir_location avant de créer le courtier :


    $imqbrokerd -varhome var_home_dir_location
    

    Exemple :


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

Le processus de désinstallation ne met pas correctement à jour le fichier productregistry ; le mode silencieux est indisponible pour l'installation (6571598)

Description

Si le fichier productregistry de Enterprise Server contient des configurations de composant partagé, le processus de désinstallation de Enterprise Server ne met pas à jour le fichier productregistry correctement, vous ne serez donc pas en mesure d'utiliser le mode silencieux pour une installation ultérieure à moins que productregistry ne soit renommé ou supprimé. Par défaut, les entrées des composants partagés sont conservées en l'état dans le fichier productregistry, mais cela entraîne une confusion lors d'installations silencieuses ultérieures.

Solution

Après avoir vérifié la réussite de la désinstallation via les fichiers journaux correspondants, supprimez le fichier productregistry avant d'exécuter une nouvelle installation. Pour constater la réussite d'un processus de désinstallation antérieur, consultez le fichier appserv_uninstall.class dans as-install. Vous ne trouverez pas ce fichier en cas d'échec de la désinstallation.


Remarque –

Si tel est le cas, ne supprimez pas le fichier productregistry.


Le fichier productregistry se trouve dans /var/sadm/install sous Solaris et dans /var/tmp sous Linux.

IFR. Impossible d'installer AS dans la zone locale fragmentée suite à des problèmes issus des packages MQ. (6555578)

Description

Lors de l'installation d'Enterprise Server dans une zone locale fragmentée, le processus échoue si Message Queue (MQ) n'a pas été installé en premier. Le programme d'installation essaie d'installer MQ, ce qui provoque l'échec de l'ensemble du processus.

Solution

Il est nécessaire d'installer manuellement MQ dans la zone globale avant d'installer Enterprise Server dans une zone locale fragmentée. Deux solutions vous sont proposées :

  1. Installez MQ 4.1 manuellement dans la zone globale à partir du même média sur lequel l'installation IFR de Enterprise Server 2.1 a été effectuée afin d'obtenir les derniers packages MQ.

    1. Utilisez le programme d'installation correspondant à votre plate-forme :


      mq4_1-installer-SunOS.zip
      mq4_1-installer-SunOS_X86.zip
      mq4_1-installer-Linux_X86.zip
      mq4_1-installer-WINNT.zip
    2. Décompressez les fichiers et exécutez le programme d'installation.

      Ce dernier sera stocké dans le répertoire mq4_1-installer.

  2. Installez tous les composants de l'installation IFR dans la zone globale. Cette opération permet de vérifier la version de MQ dans GZ et, si nécessaire, de la mettre à niveau vers la version intégrée à l'IFR Enterprise Server 2.1. La sélection et l'installation du composant d'exemples d'application permettent de mettre à niveau MQ vers la version IFR.

    1. Exécutez l'installation d'Enterprise Server dans la zone globale mais sélectionnez uniquement les exemples de composant.

      L'installation des exemples de composant permet également d'installer MQ et les composants partagés d'Enterprise Server dans toutes les zones.

    2. Exécutez à nouveau l'installation d'Enterprise Server, cette fois-ci dans la zone locale fragmentée.

      L'installation doit se dérouler sans aucun problème.

L'invite -console de l'installation IFR doit être supprimée : « Do you want to upgrade from previous Application? » (6592454)

Description

Lorsque vous exécutez le programme d'installation IFR d'Enterprise Server 2.1 avec l'option —console (en mode ligne de commande), vous recevez l'invite suivante :


Do you want to upgrade from previous Application Server version?

Malheureusement, le programme d'installation IFR ne prend pas en charge de telles mises à niveau, cette invite est donc erronée. Si vous répondez oui à cette invite, l'installation se poursuit normalement mais vous ne recevez aucune confirmation de la réussite de l'installation, ni de la mise à niveau.

Solution

Utilisez l'outil de mise à niveau si vous souhaitez mettre à niveau votre installation d'Enterprise Server.

Après la mise à niveau, les exceptions suivantes apparaissent dans le journal lors du démarrage d'un domaine. (6774663)

Description

Les exceptions suivantes peuvent se produire :

#|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..... .....

Solution

Une fois la mise à niveau effectuée et le domaine mis à niveau démarré, ces exceptions peuvent être ignorées si elles se produisent.

Didacticiel de Java EE

Lorsque vous créez des ressources à l'aide de la console d'administration, utilisez l'onglet Cibles pour indiquer que le serveur est la cible. Si vous utilisez la ligne de commande ou une cible asant, le serveur représente la cible par défaut et aucune autre action n'est requise.

Java Persistence

TopLink suppose que la propriété/le champ myCollection est clonable (Issue Tracker 556)

Description

Si l'API java.util.Arrays.asList() est utilisée pour convertir un Object[] en une Collection, JDK retourne une implémentation de java.util.ArrayList non clonable. L'exception suivante est alors générée :


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

Ce problème fait l'objet d'un suivi sur https://glassfish.dev.java.net/issues/show_bug.cgi?id=556.

Solution

Créez une autre collection à l'aide de son constructeur ; par exemple :


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

GenerationType.IDENTITY et DataDirect avec SyBase (Issue Tracker 2431)

Description

La tentative d'insertion d'une entité utilisant GenerationType.IDENTITY échoue lorsque le pilote DataDirect est utilisé avec SyBase. Cette tentative échoue car le pilote DataDirect crée une procédure stockée pour chaque instruction préparée et paramétrée.

Solution

Dans le fichier domain.xml, définissez la propriété PrepareMethod=direct sur la source de données correspondante.

Gestion du cycle de vie

Cette section décrit les problèmes connus de gestion du cycle de vie et les solutions associées.

La définition de la propriété ejb-timer-service entraîne l'échec de la commande set (6193449)

Description

Après avoir défini minimum-delivery-interval de la propriété ejb-timer-service sur 9000, la tentative de définition de redelivery-interval-in-mills de la propriété ejb-timer-service sur 7000 entraîne l'échec de la commande set avec l'erreur suivante :


[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.

La relation entre la propriété de l'intervalle de redistribution et celle de l'intervalle de livraison minimal n'étant pas logique, il vous est impossible d'utiliser l'interface graphique (IG) ou l'interface de ligne de commande (CLI) pour définir un intervalle de livraison minimal supérieur à celui de redistribution.

minimum-delivery-interval-in-millis doit toujours être égal ou supérieur à redelivery-interval-in-millis pour la propriété ejb-timer-service. Le problème est le suivant : lorsqu'il s'agit de vérifier que la valeur redelivery-interval-in-millis est supérieure à la valeur de minimum-delivery-interval-in-millis, la vérification de validation dans le serveur est erronée.

Solution

Utilisez les valeurs par défaut suivantes :


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

Toute autre valeur provoquera une erreur.

Erreur générée lors de l'affichage des destinations physiques JMS dans la configuration non DAS (6532532)

Description

Si vous essayez d'afficher les destinations physiques JMS à l'aide de default-config, un message d'erreur apparaîtra.

Solution

Ce comportement est normal. Dans Enterprise Server 2.1, default-config est un modèle d'informations de configuration, par conséquent, les opérations JMS (telles que list et create) ne peuvent pas être exécutées pour default-config. En revanche, ces opérations peuvent être exécutées pour la configuration de vos instances autonomes ou clusterisées.

Win2003 uniquement : fuite de mémoire du pool non paginé, arrêt de la pile TCP et test richaccess (6575349)

Description

(Windows 2003 uniquement) Des fuites de mémoire se produisent sur les systèmes Windows 2003 lors de l'exécution de fonctions richaccess. Ce problème est dû à la croissance continue du pool non paginé Win32, qui peut provoquer une panne de la pile TCP/IP complète. Une fois l'erreur générée, la pile TCP/IP demeure dans un état récupérable, et la seule manière de la restaurer est de redémarrer le système Windows 2003.

Solution

Il existe deux solutions à ce problème.

Enregistrement

Cette section décrit les problèmes connus de consignation et les solutions.

La définition de l'instruction de débogage access,failure interrompt le démarrage du serveur (6180095)

Description

Le paramétrage de l'option java.security.debug pour JVM entraîne un blocage du démarrage de l'instance du serveur. Ce problème se produit, par exemple, lorsque vous définissez les paramètres ci-dessous dans le fichier domain.xml.


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

Solution

Aucune pour l'instant. Évitez de paramétrer cet indicateur.

Message Queue

Cette section décrit les problèmes connus liés aux files d'attente des messages Java et les solutions associées.

Enterprise Server ne démarre pas si le courtier MQ n'est pas démarré (6740797)

Description

Si vous configurez JMS de façon à être DISTANT, Enterprise Server échoue au démarrage si le courtier MQ n'est pas démarré.

Solution

Aucune solution connue. Configurez JMS de façon à ce qu'il fonctionne au mode IMBRIQUE.

La reconnexion de JMS n'est pas complète dans certains cas dépendant des délais d'expiration (6173308, 6189645, 6198481, 6199510, 6208728)

Description

Dans des scénarios faisant appel à la synchronisation, plusieurs causes peuvent être à l'origine de ce problème.

Solution

Pour contourner ces problèmes :

Le courtier MQ ne parvient pas à démarrer avec un profil de cluster sous Linux (6524871)

Description

Après avoir créé un domaine avec un profil de cluster sur un système Linux, il se peut que vous rencontriez une erreur java.lang.OutOfMemoryError: Java heap space et que l'instance du serveur ne parvienne pas à redémarrer suite au blocage du démarrage du courtier MQ. Il est impossible de récupérer le système après cette condition. Ce problème provient d'une configuration incorrecte du fichier /etc/hosts ; de manière plus spécifique, le nom d'hôte du serveur pointe vers l'adresse de loopback 127.0.0.1.

Solution

Un cluster du courtier MQ ne peut pas démarrer lorsque le périphérique réseau est configuré pour pointer vers l'adresse de loopback. Il ne s'agit pas d'un bogue. La solution est de vous assurer que le fichier /etc/hosts de l'hôte d'Enterprise Server ne pointe pas vers 127.0.0.1.

Une incompatibilité entre les anciennes et les nouvelles classes est créé lorsque imqjmsra.jar est chargé avant la mise à niveau (6740794)

Description

Lors du démarrage du serveur, ce dernier vérifie la version de Message Queue. Si la version Message Queue est incorrecte, le serveur effectue alors sa mise à niveau à l'aide de imqjmsra.jar. Ceci met JAR à niveau et ses classes ne seront pas accessibles au serveur avant le prochain redémarrage. Cette situation se produit uniquement si Message Queue est mis à niveau seul, ou si l'on applique un patch au serveur d'application seul. Cette situation peut parfois entraîner l'effet secondaire suivant : le serveur ne démarre pas.

Solution

Message Queue et Enterprise Server doivent être maintenus au même niveau de patch, ou bien il faut redémarrer le serveur.

Contrôle

Cette section décrit les problèmes connus liés au contrôle et les solutions associées.

Certaines statistiques de contrôle du service HTTP ne présentent aucune information utile et doivent être ignorées (6174518)

Description

Lorsqu'on affiche les statistiques de contrôle de certains éléments du service HTTP, certaines valeurs présentées ne correspondent pas aux valeurs actuelles ou sont toujours à 0. En particulier, les statistiques du service HTTP suivant ne présente pas d'information applicable au Enterprise Server, et doivent être ignorées :

Solution

Ces contrôles seront supprimés dans les versions ultérieures et remplacés par des informations mieux adaptées.

L'ouverture de la navigation JNDI à partir de l'IG d'administration génère plusieurs exceptions dans le fichier server.log (6591734)

Description

De nombreuses exceptions sont générées lorsque le navigateur JNDI est ouvert à partir de l'IG d'administration.

Solution

Aucune pour l'instant.

Mise en package

Cette section décrit les problèmes connus liés à la mise en package du code logiciel pour Enterprise Server 2.1, ainsi que les solutions associées.

AIX : la commande monitor ne fonctionne pas sous AIX (6655731)

Description

Impossible d'exécuter la commande monitor sous le système d'exploitation AIX car le fichier de bibliothèque libcliutil.so n'est pas conditionné dans Enterprise Server2.1.

ProcedureSolution : installez le fichier de bibliothèque libcliutil.so manquant.

  1. Téléchargez le fichier JAR sur.

  2. Accédez au répertoire dans lequel vous avez téléchargé le fichier appserv-native-9.1.1-b16a.jar.


    prompt% cd destination-dir
    
  3. Procédez à l'extraction du contenu du fichier appserv-native-9.1.1-b16a.jar.


    prompt% jar xf appserv-native-9.1.1-b16a.jar
    
  4. Copiez le fichier libcliutil.so vers le répertoire as-install /lib.


    prompt% cp libcliutil.so as-install/lib
    

Exemples

Cette section décrit les problèmes connus liés au code de l'exemple compris dans le produit Enterprise Server 2.1, ainsi que les solutions associées.

Après la mise à niveau de Enterprise Server les exemples de base et ceux du portail JES5 entrent en conflit sur le port Derby 1527 (6574563)

Description

Sous Windows, après la mise à niveau de Enterprise Server 2.1, les exemples de base et ceux du portail JES 5 entrent en conflit sur le port Derby 1527. D'une manière plus spécifique, Enterprise Server 2.1 lance automatiquement JavaDB sur le port 0.0.0.0:1527 avec APP:APP, cependant JavaDB du portail JES5 cherche également à s'associer au hostnameIP:1527 avec portal:portal.

Ce bogue décrit un problème déjà observé pour JES 5, Bogue 6472173. La solution au bogue 6472173 est expliquée dans le Guide d'installation de Sun Java Enterprise System 5 pour Microsoft Windows sur http://docs.sun.com.

Solution

Démarrez la base de données Derby à l'aide de la commande suivante :


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

Sécurité

Cette section décrit les problèmes connus liés aux certificats et à la sécurité des applications Web sous Enterprise Server ainsi que les solutions associées.

Erreur de mémoire saturée dans les scénarios SSL lors d'un stress important (JDK 6 Problème 23)

Description

Un bogue JDK (Voir : https://jdk6.dev.java.net/issues/show_bug.cgi?id=23) dans JDK6 Sun PKCS11 Provider pourrait entraîner une erreur de mémoire saturée (OutOfMemoryError) lors de l'exécution de certains scénarios SSL en situation de stress important.

Solution

Si vous rencontrez ce problème, supprimez le fournisseur sun.security.pkcs11.SunPKCS11 du fichier java.security dans votre installation JRE.

AIX : échec du test de la clé de chiffrement dynamique WSS suite à une erreur de validation de certification côté serveur (6627379)

Description

Sur la plate-forme AIX, le chiffrement dynamique destiné à la détermination d'une clé de chiffrement pour une réponse échoue. Cet échec survient lors de la validation du certificat côté serveur.

En réponse à cet échec, les messages d'erreur suivants sont écrits dans le fichier journal du serveur server.log :


Unable to validate certificate

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

Solution

Installez Metro 1.1 sur Enterprise Server 2.1

AIX : @RunAs échec du test d'autorisation au niveau du module EJB AccessLocalException: Client not authorized (6627385)

Description

Une méthode, dans un bean entreprise pour lequel l'identité de sécurité run-as ou propagée est définie à l'aide de l'annotation @RunAs, tente d'invoquer une méthode dans un autre bean entreprise. Si aucune identité principale run-as n'est définie dans le fichier du descripteur de déploiement sun-ejb-jar.xml, la tentative risque d'échouer avec une exception javax.ejb.AccessLocalException .


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

Solution

Dans le fichier du descripteur de déploiement sun-ejb-jar.xml, définissez dans l'élément principal-name le nom principal pour lequel le rôle run-as a été spécifié.

La terminaison SSL ne fonctionne pas (6269102)

Description

La terminaison SSL ne fonctionne pas ; lorsque l'équilibreur de charge (matériel) est configuré pour la terminaison SSL, Enterprise Server passe du protocole https à http au cours de la redirection.

Solution

Ajoutez un équilibreur de charge logiciel entre l'équilibreur de charge matériel et Enterprise Server.

Fuites sur la connexion du socket avec SSL (6492477)

Description

À cause d'un bogue JVM, un problème de fuite survient avec certaines versions JDK lorsque security-enabled est défini sur true sur un listener HTTP. Les étapes de reproduction de ce bogue sont les suivantes :

  1. Définissez security-enabled sur true sur le listener HTTP :


    <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. Commentez l'arrêt du domaine à la fin des tests quicklook.

  3. Exécutez les tests quicklook.

  4. Vérifiez l'utilisation du socket :


    netstat -an | grep 8080

    Les éléments suivants doivent être utilisés :


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

Ce problème fait l'objet d'un suivi sur le site GlassFish https://glassfish.dev.java.net/issues/show_bug.cgi?id=849.

Solution

Procédez à une mise à niveau vers la dernière version de JDK.

Utilitaire de mise à niveau

Cette section décrit les problèmes connus de l'utilitaire de mise à niveau et les solutions associées.

Sur certains systèmes Linux, le programme d'installation exécutant une mise à niveau en place ne parvient pas à lancer l'outil de mise à niveau après que vous ayez cliqué sur le bouton de démarrage de l'assistant de mise à niveau (6207337)

Description

Ce problème a été observé sur plusieurs systèmes Linux, en particulier sur Java Desktop System 2, mais également sur les distributions Red Hat.

Après avoir cliqué sur le bouton Start Upgrade Tool (Démarrer l'outil de mise à niveau) qui se trouve sur l'écran final du programme d'installation, l'outil de mise à niveau n'est pas lancé et le programme d'installation se bloque pendant une période indéterminée, sans renvoyer d'invite de commande.

Solution

Ce problème ne survient pas lorsque le mode d'installation en ligne de commande est utilisé pour procéder à la mise à niveau à son emplacement.

  1. Si vous effectuez la mise à niveau à son emplacement en mode d'interface graphique (IG) et que le problème se produit, quittez le programme d'installation en appuyant sur les touches Ctrl+C dans la fenêtre du terminal dans laquelle le programme d'installation a été démarré.

  2. Démarrez l'outil de mise à niveau à partir de la fenêtre du terminal en utilisant la commande suivante:


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

    Les valeurs adminuser et adminpassword doivent correspondre à celles utilisées pour l'installation que vous mettez à niveau.

  3. Une fois le processus de mise à niveau terminé, vous pouvez également démarrer votre navigateur Web et saisir l'URL suivant afin d'afficher la page À propos de :


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

Si vous avez également sélectionné l'option d'enregistrement du produit lors de l'installation, suivez le lien vers la page d'enregistrement disponible sur la page À propos de.

Le certificat autosigné n'est pas approuvé au cours de et après la mise à niveau de 8.0 Platform Edition (PE) vers 8.1 Enterprise Edition (EE) UR2 (6296105)

Solution

Supprimez les entrées suivantes de la cible domain.xml (après la mise à niveau) et redémarrez le serveur :

<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) génère une erreur à l'instance de serveur indiquant que ce dernier ne dispose pas d'un connecteur système appelé null (6545145)

Description

Lors de la mise à niveau de Enterprise Server 8.0PE vers 2.1, une erreur est générée signalant que le serveur ne dispose pas d'un connecteur système appelé null, et des informations utilisateur incorrectes s'affichent dans sbs-manual. Même si les valeurs codées en dur sont modifiées, ce message d'erreur s'affiche.

Solution

Vous pouvez rencontrer ce bogue uniquement lors de la mise à niveau de 8.0 PE vers Enterprise Server. La solution consiste à effectuer une mise à niveau vers la version 8.1, 8.2 ou 9.0, puis à effectuer une mise à niveau vers Enterprise Server.

Plusieurs domaines sont perdus lors du processus de mise à niveau lorsque différentes combinaisons de version sont utilisées (6546130)

Description

Lorsque vous exécutez une mise à niveau en place, au cas où la source contienne plusieurs domaines, le programme d'installation invoque l'outil de mise à niveau bien que le processus soit interrompu. Cela se produit lorsque l'outil est invoqué en mode IG.

Solution

  1. Procédez à une installation en place en mode CLI, puis quittez le programme d'installation lorsque vous êtes invité à sélectionner l'outil de mise à niveau à la fin du processus. Aucun des domaines contenus dans le répertoire des domaines n'est alors supprimé. L'outil de mise à niveau doit être invoqué manuellement à partir du répertoire bin.

  2. Lors de votre installation en place en mode IG, sauvegardez les domaines se trouvant dans la racine des domaines afin de ne pas en perdre au cours du processus. À la fin du processus d'installation, quittez le programme lorsque vous êtes invité à invoquer l'outil de mise à niveau. Copiez les domaines sauvegardés dans le répertoire des domaines si ceux-ci ont été supprimés. Lancez ensuite manuellement l'outil de mise à niveau pour terminer le processus.

Solaris : le mot de passe principal prédéfini provient de Enterprise Server 2.1 et non d'AS8.2 (6565825)

Description

Lors de la mise à niveau à partir d'AS 8.2, le mot de passe principal de l'installation 8.2 n'est pas hérité dans l'installation cible. Cela crée, par conséquent, une erreur d'authentification à la prochaine connexion de l'administrateur.

Solution

Le mot de passe administrateur par défaut dans Enterprise Server 2.1 est changeit. Pour éviter tout problème lors de la connexion au the Enterprise Server après la mise à niveau de 8.2, optez pour l'une des trois solutions suivantes :

L'aide en ligne localisée pour l'IG asupgrade n'existe pas (6610170)

Description

Lors de l'exécution de l'IG asupgrade dans une langue autre que l'anglais, l'aide en ligne correspondante n'est pas localisée pour la langue sélectionnée.

Solution

Aucune pour l'instant. Il est prévu que l'aide en ligne soit localisée dans toutes les langues cibles non anglaises.

L'outil de mise à niveau a supprimé le répertoire nodeagents lors du processus de mise à niveau (en ordre inverse) sur plusieurs domaines (6636871)

Description

Après une mise à niveau côte à côte d'une configuration contenant plusieurs domaines, seuls les agents de nœud du dernier domaine traité sont conservés. Ce problème survient car l'outil de mise à niveau supprime et re-crée le répertoire nodeagents dans la cible correspondante à chaque traitement de domaine.

ProcedureSolution : Conserver tous les agents de nœud dans une mise à niveau côte à côté de plusieurs domaines

  1. Après le traitement de chaque domaine, créez un fichier zip du répertoire nodeagents .

  2. Une fois tous les domaines traités, dézippez les fichiers créés.

    Tous les agents de nœud seront alors conservés.

Conteneur Web

Cette section décrit les problèmes connus liés au conteneur Web et les solutions associées.

Sous Windows, le déploiement d'une application à l'aide de --precompilejsp=true risque de verrouiller les fichiers JAR de celle-ci, eintraînant ainsi l'échec de l'annulation du déploiement ou du redéploiement ultérieur (5004315)

Description

Si vous devez effectuer une précompilation des pages JSP lors du déploiement d’une application sous Windows, les tentatives ultérieures de redéploiement ou d’annulation de déploiement de cette application (ou de toute autre application contenant le même ID de module) ne fonctionneront pas comme prévu. L’origine de ce problème provient du fait que la précompilation des pages JSP ouvre les fichiers JAR dans votre application, mais ne les referme pas. Windows empêche alors que le processus d’annulation du déploiement ne supprime ces fichiers ou que le processus de redéploiement ne les écrase.

Il est à noter que l’annulation du déploiement réussit partiellement dans la mesure où l’application est supprimée d’Application Server. Notez aussi qu'aucun message d'erreur n'est retourné par l'utilitaire asadmin, mais que le répertoire de l'application et les fichiers jar verrouillés ne sont pas supprimés du serveur. Le fichier journal du serveur contient les messages décrivant l'échec de la suppression des fichiers et du répertoire de l'application.

Toute tentative de redéploiement de l’application suite à l’annulation du déploiement échoue, car le serveur essaie en vain de supprimer le répertoire et les fichiers existants. Cela peut se produire si vous essayez de déployer une application qui utilise le même ID de module que celui de l'application initialement déployée. En effet, le serveur utilise cet ID de module lors de la sélection d'un répertoire destiné à contenir les fichiers de l'application.

Les tentatives de redéploiement de l'application sans annulation préalable du déploiement échouent pour les mêmes raisons.

Diagnostics

Si vous essayez de redéployer l’application ou de la déployer après avoir annulé son déploiement, l’utilitaire asadmin renvoie une erreur similaire à l'erreur ci-dessous.


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.

Solution

Ce problème ne se produit pas si vous définissez le paramètre par défaut --precompilejsps=false lors du déploiement d’une application. Lors de sa première utilisation, l'application déclenche la compilation des pages JSP. C'est pour cette raison que le temps de réponse de la première requête est supérieur à celui des requêtes suivantes.

Notez également qu’en cas de précompilation, vous devez arrêter et redémarrer le serveur avant d’annuler le déploiement de l’application ou de redéployer cette dernière. L’arrêt du serveur permet de libérer les fichiers JAR qui étaient verrouillés et d’effectuer correctement les opérations d’annulation du déploiement ou de redéploiement de l’application après le redémarrage.

Impossible de déployer les archives WAR avec le fichier web.xml basé sur Servlet 2.4, contenant un élément <load-on-startup> vide (6172006)

Description

L’élément facultatif load-on-startup inclus dans le fichier web.xml indique que le servlet correspondant doit être chargé et initialisé au démarrage de l'application Web à laquelle il appartient.

Le contenu facultatif de cet élément est un nombre entier précisant en quelle position le servlet doit être chargé et initialisé par rapport aux autres servlets de l'application Web. Lorsque l'élément <load-on-startup> est vide, l'ordre de démarrage du servlet est inutile tant que celui-ci est chargé et initialisé au cours du démarrage de l'application Web dont il dépend.

Le schéma Servlet 2.4 du fichier web.xml ne prend plus en charge les éléments <load-on-startup> vides, ce qui signifie que vous devez obligatoirement indiquer un nombre entier lorsque vous utilisez un fichier web.xml basé sur le composant Servlet 2.4. Si vous laissez l’élément <load-on-startup> vide, tel que <load-on-startup/>, le fichier web.xml ne parvient pas à valider le schéma Servlet 2.4 pour web.xml, provoquant l’échec du déploiement de l’application Web.

Problème de compatibilité ascendante : Vous pouvez néanmoins laisser l'élément <load-on-startup> vide pour un fichier web.xml basé sur le composant Servlet 2.3.

Solution

Définissez la valeur <load-on-startup>0</load-on-startup> lors de l'utilisation d'un fichier web.xml basé sur Servlet 2.4 afin d'indiquer que l'ordre de chargement du servlet n'est pas important.

Impossible de compiler la page JSP sur des serveurs limités en ressources (6184122)

Description

La page JSP est accessible mais ne peut pas être compilée. Le journal du serveur contient le message d’erreur "Impossible d'exécuter la commande" avec le suivi de pile suivant :


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)

Solution

Définissez le commutateur de compilation JSP fork sur false.

Vous pouvez effectuer cette opération de l'une des deux manières suivantes:

Les deux paramétrages empêcheront ant de générer un nouveau processus pour la compilation javac .

Enterprise Server ne prend pas en charge l'add-on auth-passthrough de Web Server 6.1 (6188932)

Description

Sun GlassFish Enterprise Server 2.1 propose la prise en charge de la fonctionnalité fournie par la fonction du plug-in auth-passthrough disponible sous Sun GlassFish Enterprise Server Enterprise Edition 7.1. Cependant, dans Enterprise Server 2.1, la fonction du plug-in auth-passthrough est configurée différemment.

La fonction du plug-in auth-passthrough, sous Enterprise Server Enterprise Edition 7.1, était couramment utilisée pour les scénarios de déploiement à deux niveaux, où :

Dans de telles architectures réseau, un client se connecte à un serveur Web frontal préalablement configuré pour fonctionner avec la fonction de plug-in service-passthrough et transfère les requêtes HTTP à l'instance d' Application Server pour traitement via un proxy. Cette instance d'Application Server ne peut recevoir de requêtes que via le proxy du serveur Web mais ne peut pas en recevoir directement de la part d'hôtes clients. Par conséquent, toute application déployée sur l'instance d'Application Server qui envoie par proxy des requêtes pour obtenir des informations clientes (l'adresse IP du client par exemple) reçoit l'IP proxy de l'hôte par lequel la requête est relayée.

Solution

Sous Application Server Enterprise Edition 7.1, la fonction du plug-in auth-passthrough pouvait être configurée sur l'instance proxy d'Application Server afin de rendre les informations du client distant directement disponibles à toutes les applications déployées ; comme si l'instance avait directement reçu la requête au lieu de passer par un serveur Web intermédiaire avec l'exécution du plug-in service-passthrough.

Sous Enterprise Server 2.1, la fonction de auth-passthrough peut être activée en définissant la propriété authPassthroughEnabled de l'élément <http-service> dans domain.xml sur TRUE, comme suit :


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

Les mêmes considérations de sécurité de la fonction du plug-in auth-passthrough dans Application Server Enterprise Edition 7.1 s'appliquent à la propriété authPassthroughEnabled dans Enterprise Server 2.1. Comme authPassthroughEnabled permet d'écraser des informations pouvant être utilisées à des fins d'authentification (telle que l'adresse IP à partir de laquelle la requête a été lancée, ou le certificat client SSL), il est essentiel que seuls les clients ou serveurs de confiance soient autorisés à se connecter à une instance de Enterprise Server 2.1 avec authPassthroughEnabled défini sur TRUE. Par mesure de précaution, il est recommandé de ne définir la propriété authPassthroughEnabled sur TRUE que pour des serveurs protégés par le pare-feu d'entreprise. Un serveur accessible via Internet ne doit jamais être configuré avec authPassthroughEnabled défini sur TRUE.

Notez que dans le cas où le plug-in service-passthrough a été configuré sur un serveur Web proxy qui relaie les requêtes vers une instance de Enterprise Server pour laquelle la propriété authPassthroughEnabled a été définie sur TRUE, l'authentification cliente SSL peut être activée sur le proxy du serveur Web et désactivée sur celui de l'instance de Enterprise Server. Dans ce cas, l'instance de Enterprise Server utilisant un proxy continue de traiter les requêtes comme si elles étaient authentifiées via SSL et fournit un certificat SSL client aux applications déployées lorsque nécessaire.

Web Server

AS 9.1 b50e.Linux. Impossible de démarrer WS après l'installation de l'équilibreur de charge d'AS : libjvm.so:cannot open shared (6572654)

Description

Ce problème survient uniquement lorsque vous utilisez Sun GlassFish Web Server avec Enterprise Server et l'équilibreur de charge sur un système Linux. Dans ce cas, après avoir installé Enterprise Server et un équilibreur de charge, Web Server risque de ne pas démarrer car libicui18n.so.2 et libicuuc.so.2 sont en conflit. Ces bibliothèques se trouvent dans les répertoires /opt/sun/private/lib et /opt/sun/appserver/lib.

Solution

Les bibliothèques à utiliser sont celles stockées dans /opt/sun/appserver/lib car lbplugin en dépend. Une fois les deux bibliothèques supprimées de /opt/sun/private/lib, Web Server devrait démarrer sans aucun problème.

Sinon, si vous ne voulez pas supprimer les bibliothèques de /opt/sun/private/lib , vous pouvez ajouter /opt/sun/appserver/lib avant /opt/sun/private/lib dans le chemin LD_LIBRARY_PATH du script startserv de Web Server ; c'est-à-dire, remplacez :


# 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 

par :


# 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

Services Web

Cette section décrit les problèmes connus liés au conteneur Web et les solutions associées.

Échec de la tâche ant wsimport sur Java EE SDK b33d (utilisant JDK 1.6) avec l'erreur NoClassDefFoundError (6527842)

Description

Il se peut qu'un problème survienne lors de l'exécution des tests JAX—WS avec le JDK 1.6 fourni avec le Java EE SDK b33d. Les tests sont immédiatement abandonnés et le message suivant apparaît :


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

Cette erreur se produit même si le fichier webservices-tools.jar contient les classes com/sun/tools/ws/WsImport.class, com/sun/tools/ws/ant/WsImport.class et com/sun/tools/ws/ant/WsImport2.class. En outre, cet espace de travail test fonctionne normalement avec 1.5.0-10 JDK.

Solution

Copiez le fichier webservices-api.jar vers $JAVA_HOME/jre/lib/endorsed avant d'exécuter les tests JAX-WS.

Échec des commandes publish-to-registry sous les versions IFR EE (6602046)

Description

JAXR utilise SAAJ pour envoyer des messages soap au registre. Sans IFR, les classes impl SAAJ se trouvent dans lib/webservices-rt.jar . Avec IFR, les classes SAAJ se trouvent toujours dans lib/webservices-rt.jar . En outre, le fichier saaj-impl.jar est stocké dans le répertoire /usr/share/lib. Ce fichier jar est récupéré par Enterprise Server et est prioritaire par rapport aux classes de webservices-rt.jar . Il ne dispose pas des autorisations de sécurité nécessaires pour envoyer des messages soap au registre des services Web. Le package doit être modifié afin que les fichiers jar disposent des autorisations nécessaires sous le répertoire /usr/share/lib ou que ceux-ci ne dépendent pas des fichiers jar de /usr/share/lib.

Solution

Ajoutez les éléments suivants au fichier server.policy :


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

Échec de la commande wscompile avec l'erreur "package javax.xml.rpc does not exist" sous JDK6 u4 b3 (6638567)

Description

La tâche ant wscompile échoue pour JDK 6 Mise à jour 4. Pour chaque classe JAX-RPC API, le message d'erreur suivant s'affiche :


package package-name does not exist

Solution

Avant d'exécuter la tâche ant wscompile, assurez-vous que javaee.jar est spécifié dans le chemin de classe, et non pas j2ee.jar.