Notes de version de Sun GlassFish Enterprise Server 2.1

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