Este apartado describe problemas conocidos relacionados con la administración, junto con las soluciones pertinentes.
Cuando se crea un clúster, Enterprise Server asigna aleatoriamente un puerto heartbeat entre 1026 y 45556. Para un clúster predeterminado, creado por una instalación de Enterprise Server, un número aleatorio entre 0 y 45556. El proceso de creación del clúster no detecta con precisión si el puerto heartbeat ya lo está usando otro servicio.
Si la configuración automatizada de creación de clústeres selecciona un puerto heartbeat que se encuentra en conflicto con otro servicio que ya está utilizando dicho puerto, actualice el puerto heartbeat del clúster a un puerto que no esté usando el sistema.
Para cambiar el puerto heartbeat de un clúster, utilice el siguiente comando asadmin :
asadmin set cluster-name.heartbeat-port= newportnumber
El comando asadmin create-domain puede fallar al intentar crear un dominio en un sistema de archivos montados en NFS, con el servidor NFS ejecutándose en Linux de 64 bits.
No hay una solución conocida.
Cuando se gira un archivo de registro de gran tamaño, se observa un ligero aumento en el tiempo de respuesta.
La degradación del rendimiento se puede reducir modificando los valores del límite de rotación del archivo y del límite temporal de rotación del archivo en la configuración de registro. Los valores de estas propiedades dependerán de la aplicación y el entorno.
La implementación del adaptador genérico RA contra el producto IBM Message Queue falla. Los permisos concedidos en el archivo server.policy son los siguientes.
grant { permission java.util.logging.LoggingPermission "control"; permission java.util.PropertyPermission "*", "read,write"; } |
Cambie los permisos en el archivo server.policy como se explica a continuación:
grant codeBase "file:${com.sun.aas.installRoot}/lib/install/applications/adminapp/-" { permission java.util.logging.LoggingPermission "control"; }; |
En algunas circunstancias, los archivos instalados en DAS para que se sincronicen con una instancia específica se envían a otras instancias.
No hay una solución conocida.
El comando asadmin start-cluster muestra demasiados mensajes incluso cuando los componentes no críticos dan errores en el inicio. Observe la siguiente salida del comando de ejemplo cuando los elementos no críticos (relacionados con las instancias del clúster) fallan:
./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. |
No hay una solución conocida. Se pueden ignorar estos mensajes (excepcionales).
La implementación del adaptador genérico RA contra el producto IBM Message Queue falla. Los permisos concedidos en el archivo server.policy son los siguientes.
grant { permission java.util.logging.LoggingPermission "control"; permission java.util.PropertyPermission "*", "read,write"; } |
Cambie los permisos en el archivo server.policy como se explica a continuación:
grant codeBase "file:${com.sun.aas.installRoot}/lib/install/applications/adminapp/-" { permission java.util.logging.LoggingPermission "control"; }; |
De forma predeterminada, hay un valor codificado en as-install/lib/package-appclient.xml para la variable AS_ACC_CONFIG de domain1 al que señala asenv.conf. Si domain1 se elimina y se crea un nuevo dominio, la variable AS_ACC_CONFIG no se actualiza con el nombre del dominio nuevo, lo que provoca que falle la secuencia de comandos package-appclient .
Lleve a cabo una de las siguientes acciones:
Deje intacto domain1 y cree los demás dominios en torno a él.
<Check Alignment of PHs>Elimine domain1 y sustituya el valor codificado de domain1 en as-install/lib/package-appclient.xml por el nuevo nombre de dominio.
Deberá llevar a cabo este procedimiento cada vez que cree un dominio nuevo si domain1 no está presente.
J2SE 1.4.x, 5.0 y las versiones posteriores se pueden configurar en el servidor. Una función integral de la plataforma J2SE 5.0 es la capacidad para iniciar un agente JMX. Esta función se activa definiendo explícitamente propiedades de sistema al iniciar el servidor.
Entre los valores de ejemplo se incluyen:
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" |
Después de configurar las propiedades JMX e iniciar el servidor, un nuevo servidor jmx-connector se inicia en la máquina virtual. Un efecto colateral no deseable es que las funciones de administración se ven afectadas negativamente y la consola de administración y la interfaz de línea de comandos pueden generar resultados inesperados. <Check Alignment of PHs>El problema es que se producen algunos conflictos entre el servidor integrado jmx-connector y el nuevo servidor jmx-connector.
Si utiliza jconsole (o cualquier otro cliente compatible con JMX), puede reutilizar el servidor estándar JMX Connector Server que se ejecuta al iniciar el servidor.
Al iniciar el servidor, se muestra una línea parecida a la que aparece más abajo en el registro del servidor. Puede conectarse a la dirección URL de JMXService especificada ahí y realizar las mismas operaciones de configuración y administración después de que se proporcionen correctamente las credenciales, por ejemplo:
[#|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.|#] |
Para obtener más información, consulte Sun GlassFish Enterprise Server v2.1.1 Administration Guide.
Al configurar el equilibrador de carga con una aplicación que tenga un módulo EJB que exporte una URL de servicio web, la raíz del contexto para el nuevo servicio web no se encuentra en el archivo loadbalancer.xml resultante.
Edite el archivo loadbalancer.xml para agregar los módulos web que falten de la siguiente forma:
<web-module context-root="context-root-name" disable-timeout-in-minutes="30" enabled="true"/> |
Sustituya el valor de context-root-name con el nombre root del contexto del servicio web que se expuso como EJB.
El archivo .asadmintruststore no se describe en la documentación de Enterprise Server. Si el archivo no se encuentra en el directorio home del administrador del servidor, es posible que se produzcan errores graves al actualizar determinadas aplicaciones alojadas en el servidor.
Si el posible, el usuario que instaló el servidor debería ejecutar el comando asadmin start-domain domain1.
<Check Alignment of PHs>Si, por el contrario, no es posible, .asadmintruststore debería moverse o copiarse del directorio home del usuario que ha efectuado la instalación al directorio home del usuario que está ejecutando el servidor.
<Check Alignment of PHs>Tenga en cuenta que si se mueve (no se copia) el archivo del directorio home del usuario de instalación al directorio home del usuario de ejecución, es posible que se produzcan problemas con la actualización de la aplicación, como se describe en los errores 6309079, 6310428 y 6312869, ya que el usuario de instalación/actualización (normalmente root en Java ES) ya no dispondrá del archivo .asadminstruststore en su directorio principal.
El modo de integración predeterminado de MQ para una Enterprise Server instancia de clúster es LOCAL. Cuando se instala Enterprise Server en una ubicación (PATH) larga (es decir "not short"), imqbrokerscv.exe se bloquea al iniciarse la instancia del clúster. El problema reside en la asignación de memoria de imqbrokersvc.
El tipo de servicio de JMS para la instancia del clúster debe cambiarse del predeterminado LOCAL a REMOTE. En esta configuración, todas las instancias apuntan al agente DAS. Siga las instrucciones de más abajo para configurar un clúster en el modo REMOTE.
Al utilizar el modo REMOTE, todas las instancias usan un agente (DAS) y por ello, no se crea ningún clúster de agente cuando se inicia el clúster de Enterprise Server. Consulte “Auto-clustering” en la sección 4.1, apartado iii de la página http://www.glassfishwiki.org/gfwiki/attach/OnePagersOrFunctionalSpecs/as-mq-integration-gfv2.txt para obtener más información. Las funciones antes mencionadas no estarán disponibles
Modifique el puerto y el archivo de la contraseña según su entorno. Tenga en cuenta que en las instrucciones de abajo, el nombre del clúster es racluster, el puerto de administración DAS es 5858, y el puerto JMS de DAS es 7676 .
Cambie el tipo de JMS a REMOTE para modificar la configuración del clúster.
as-install/bin/asadmin.bat set --port 5858 --user admin --passwordfile \ as-install/bin/password_file racluster.jms-service.type=REMOTE |
Cree un host JMS que corresponda con el host JMS de 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 |
Cambie el host JMS predeterminado al host DAS JMS que creó en el paso anterior.
as-install/bin/asadmin.bat set --port 5858 --user admin --passwordfile \ as-install/bin/password_file racluster.jms-service.default-jms-host=dashost |
Vaya a Configuraciones->cluster-name-config->Java Message Service->JMS Hosts.
Haga clic en Nuevo para crear un host JMS nuevo y asígnele el nombre dashost.
Introduzca los ajustes de configuración correspondientes al servicio de JMS para el DAS; los valores predeterminados son los siguientes:
Nombre del host: host local
Puerto: 7676
Usuario admin.: admin
Password: admin
Modifique estos ajustes del servicio DAS JMS de la forma apropiada.
Regrese hasta la ficha Java Message Service y cambie el tipo de servicio JMS a REMOTE (el predeterminado es LOCAL).
Elija dashost de la lista desplegable default-jms-host .
Guarde los cambios e inicie después el agente de nodo o el clúster.
Al intentar mostrar un gráfico de la página "Control de las estadísticas de registro" con navegadores no admitidos, puede producirse el siguiente error:
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 |
Utilice alguno de los navegadores admitidos. Consulte Navegadores para ver una lista de los navegadores admitidos por Enterprise Server v. 2.1.1.
El puerto administrativo predeterminado ha cambiado en las principales tres versiones anteriores de Enterprise Server. <Check Alignment of PHs>En concreto, los puertos administrativos predeterminados en 7.x, 8. x y 9.x son los siguientes:
AS 7.x: 4848
AS 8.x: 4849
AS 9.x: 4848
No se trata de un fallo, pero es necesario tenerlo en cuenta. El puerto administrativo predeterminado sólo es una recomendación. Se prevé que las futuras versiones de Enterprise Server conservarán el puerto 4848.
En el sistema operativo AIX si se intenta crear un dominio con una contraseña maestra personalizada, falla y da el siguiente error:
keytool error (likely untranslated): java.lang.NullPointerException Enter keystore password: New keystore password: |
En el siguiente procedimiento, sólo se ofrecen las opciones necesarias en cada paso. Si requiere opciones adicionales para un comando, especifíquelas en el comando. Para obtener información sobre los comandos de Enterprise Server, consulte Sun GlassFish Enterprise Server v2.1.1 Reference Manual .
Cree una secuencia de comandos que contenga las siguientes líneas de código:
#!/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
Cree un dominio, especificando la contraseña maestra predeterminada.
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]:> |
La contraseña maestra predeterminada es changeit.
Cambie la contraseña maestra del dominio que acaba de crear.
Para cambiar la contraseña maestra, ejecute la secuencia de comandos creada en el Paso 1.
script-name domain-path old-password new-password |
Inicie el dominio que ha creado en el Paso 2.
asadmin start-domain domain-name |
Como el dominio tiene una contraseña maestra personalizada, se le pedirá la contraseña maestra.
Como respuesta al mensaje, escriba la nueva contraseña maestra.
Para los dominios configurados para admitir clústeres cree e inicie un agente de nodo.
Cree un agente de nodo para el dominio que ha creado en el Paso 2.
asadmin create-node-agent --port portno --user admin-user |
Inicie el agente de nodo que ha creado en el Paso a.
asadmin start-node-agent |
Como el dominio tiene una contraseña maestra personalizada, se le pedirá la contraseña maestra.
Como respuesta al mensaje, escriba la nueva contraseña maestra.
Las siguientes páginas man de Enterprise Server:
En el sistema operativo AIX algunas operaciones relacionadas con el sistema operativo pueden fallar y dar el error siguiente:
0403-027 The parameter list is too long |
Ejemplos de operaciones relacionadas con el sistema operativo son la implementación de aplicaciones o ejecutar el contenedor del cliente de aplicación.
Este problema está causado normalmente por rutas de archivo largas en la variable de entorno CLASSPATH.
Utilice una de estas soluciones:
Incremente la longitud máxima de la línea de comandos. Para obtener más información, consulte (AIX) Cómo incrementar la longitud máxima de la línea de comandos.
Utilice el comando xargs para construir la lista de argumentos e iniciar el comando. El comando xargs permite a los comandos exceder la longitud máxima de la línea de comandos.
El atributo ncargs determina la longitud máxima de la línea de comandos, incluidas las variables de entorno. En el sistema operativo AIX, el valor predeterminado del atributo ncargs es de cuatro bloques de 4 kilobytes. Para garantizar que los comandos de Enterprise Server no superen la longitud máxima de la línea de comandos, aumente este valor a 16 bloques de 4 kilobytes.
Tras cambiar el valor de ncargs, no se necesita reiniciar ni actualizar los daemons.