Notas de la versión de Sun GlassFish Enterprise Server 2.1

Capítulo 3 Limitaciones y problemas conocidos

Este capítulo describe los problemas conocidos y las correspondientes soluciones temporales del software Sun GlassFish Enterprise Server 2.1. Si no se especifica una plataforma concreta para un problema, significa que éste se aplica a todas las plataformas.

Esta información se ha dividido como sigue:

Administración

Este apartado describe problemas conocidos relacionados con la administración, junto con las soluciones pertinentes.

A veces las instancias independientes obtienen archivos desde otras instancias (6698604).

Descripción

En algunas circunstancias, los archivos instalados en DAS para que se sincronicen con una instancia específica se envían a otras instancias.

Solución

No hay una solución conocida.

Los mensajes de inicio desde el comando start-cluster están demasiado detallados (6728317)

Descripción

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.

Solución

No hay una solución conocida. Se pueden ignorar estos mensajes (excepcionales).

No se ha podido implementar el adaptador de recursos genérico RA frente a IBM MQ (problema 6605)

Descripción

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";
      }

Solución

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";
 };

La secuencia de comandos package-appclient no funciona si domain1 no está presente (6171458)

Descripción

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 .

Solución

Lleve a cabo una de las siguientes acciones:

  1. Deje intacto domain1 y cree los demás dominios en torno a él.

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

No es posible iniciar el servidor con JMX Agent adicional (6200011)

Descripción

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.

Solución

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 más información, consulte la Sun GlassFish Enterprise Server 2.1 Administration Guide.

El archivo de configuración del equilibrador de la carga no se crea con la URL de punto final de ningún servicio web (6236544, 6275436)

Descripción

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.

Solución

  1. 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"/>
  2. 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 está descrito en la documentación de Enterprise Server (6315957)

Descripción

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.

Solución

Las instancias con clúster no se inician debido al tiempo de espera existente al acceder al agente de JMS (6523663)

Descripción

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.

Solución

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.


Nota –

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


ProcedureUtilización de la línea de comandos

Antes de empezar

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 .

  1. 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
  2. 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
  3. 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

ProcedureUtilización de la Interfaz de usuario de administración (Admin GUI)

  1. Vaya a Configuraciones->cluster-name-config->Java Message Service->JMS Hosts.

  2. Haga clic en Nuevo para crear un host JMS nuevo y asígnele el nombre dashost.

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

  4. Regrese hasta la ficha Java Message Service y cambie el tipo de servicio JMS a REMOTE (el predeterminado es LOCAL).

  5. Elija dashost de la lista desplegable default-jms-host .

  6. Guarde los cambios e inicie después el agente de nodo o el clúster.

No puede mostrarse el gráfico jmaki en los navegadores Netscape 8.1.3, Mozilla 1.7 y Safari 2.0.4 (6543014)

Descripción

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

Solución

Utilice alguno de los navegadores admitidos. Consulte Navegadores para ver una lista de los navegadores admitidos por Enterprise Server 2.1.

Se producen cambios en los puertos predeterminados con cada versión importante de AS (6566481)

Descripción

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:

Solución

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.

El comando create-domain falla con la contraseña maestra personalizada en AIX (6628170)

Descripción

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:

ProcedureSolución: (AIX) Cómo crear un dominio con una contraseña maestra personalizada


Nota –

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 el Sun GlassFish Enterprise Server 2.1 Reference Manual .


  1. 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
  2. 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.

  3. 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
    
  4. 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.

  5. Como respuesta al mensaje, escriba la nueva contraseña maestra.

  6. Para los dominios configurados para admitir clústeres cree e inicie un agente de nodo.

    1. Cree un agente de nodo para el dominio que ha creado en el Paso 2.


      asadmin create-node-agent --port portno --user admin-user
      
    2. 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.

    3. Como respuesta al mensaje, escriba la nueva contraseña maestra.

Véase también

Las siguientes páginas man de Enterprise Server:

AIX: 0403-027 El parámetro es demasiado largo (6625591)

Descripción

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.

Solución

Utilice una de estas soluciones:

Procedure(AIX) Cómo incrementar 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.


Nota –

Tras cambiar el valor de ncargs, no se necesita reiniciar ni actualizar los daemons.


  1. Determine el valor del atributo ncargs.


    lsattr -EH -l sys0 | grep ncargs
    
  2. Si el valor del atributo ncargs es menor a 16 bloques de 4 kilobytes, auméntelo a un valor de 16.


    chdev -l sys0 -a ncargs=16
    

Apache y el complemento del equilibrador de carga

En este apartado se describen los problemas conocidos relacionados con el complemento del equilibrador de carga y Apache Web Server, y las soluciones pertinentes.

El complemento del equilibrador de carga no captura la implementación de la aplicación de Java EE con EJB como servicio web (problema 685)

Descripción

Al implementar cualquier WAR (o EAR) con un servicio web basado en servlet, se actualiza el equilibrador de carga de HTTP con información sobre este servicio web. Al implementar un servicio web basado en EJB, la configuración del equilibrador de carga de HTTP no se actualiza para reflejar el objeto nuevo.

Solución

Agregue manualmente estas raíces de contexto al archivo de configuración de Load Balancer). Sin embargo, la reconfiguración dinámica de la configuración del equilibrador de carga (mediante la función de aplicación automática) daría lugar a la pérdida de las ediciones manuales anteriores.

Cierre la aplicación automática desde DAS y en su lugar utilice la función de exportación manual para editar y aplicar la configuración del equilibrador de carga en el servidor web.

La Guía de administración de la alta disponibilidad no contiene instrucciones sobre cómo utilizar un certificado para Apache 2.0 (6307976)

Para ejecutar la seguridad de Apache, debe usar un certificado. Para obtener instrucciones acerca del modo de obtener un certificado de una autoridad certificadora, consulte la información sobre certificados en la sección de preguntas frecuentes de modssl .

Es necesario iniciar Apache Web Server como usuario root (6308021) .

En Solaris, si Application Server se instaló como root, deberá usar Apache Web Server también como root. Las instalaciones de Java Enterprise System se realizan como root. En Apache 2.0, después de iniciarse como root, Apache cambia y se ejecuta como el usuario que se especifique. Especifique ese usuario en el archivo /conf/httpd.conf. Para realizar un inicio como root en varios sistemas, debe editar el archivo httpd.conf para especificar el grupo correcto. Sustituya la línea:

Group #-1

por

Group nobody

Encontrará más información sobre el uso de user/group en el archivo httpd.conf.

Cliente de la aplicación

Este apartado describe problemas conocidos relacionados con los clientes de la aplicación, junto con las soluciones pertinentes.

El JAR de biblioteca empaquetado en el Archivo de Application Client sobrescribe el archivo MANIFEST (6193556)

Descripción

Si cuenta con un archivo JAR de nivel superior en el cliente JAR (en este caso, reporter.jar), cuando implemente el cliente JAR, el archivo MANIFEST para dicho JAR sobrescribirá el archivo MANIFEST para el cliente JAR.

Solución

Ninguna por ahora.

ACC siempre intenta conectar con localhost:3700 (6527987)

Descripción

El cliente de la aplicación siempre intenta conectar con localhost:3700. El problema es que es necesario leer varias propiedades del sistema antes de que pueda invocarse el código del cliente.

Solución

Cambie las siguientes propiedades del sistema (-Den su JAVA_CMD). Pero no lo haga en su código de appclient:


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

No es posible iniciar el dominio, falta sunpkcs6571044.jar (6571044)

Descripción

Al ejecutarse en Linux de 64–bits, se produce la siguiente excepción al iniciar el dominio. El problema es que falta sunpkcs11.jar en jdk1.5.0_11/jre/lib/ext/.

Solución

Se sabe que se trata de un error de JDK con Linux de 64–bits, pero que se solucionará en JDK 1.5.0_13.

ASQuickStartup interrumpe SocketChannel.keyFor() , devolviendo un valor nulo en lugar de SelectionKey (Issue Tracker 3027)

Descripción

Cuando un SocketChannel se registra en varios selectores, haciendo socketChannel.keyFor(lastRegisteredSelector) devuelve un valor nulo en lugar de SelectionKey.

Solución

Esto está relacionado con el error de JDK 6562829, y se espera esté solucionado en la versión 6.0 U3. Se ha incluido una solución temporal en Enterprise Server 2.1, que desenvuelve el selector antes de que se invoque la API keyFor. Gracias a esta solución, keyFor podrá hacer su trabajo hasta que se solucione el error de JDK.

Controladores JDBC de Sun integrados

Este apartado describe problemas conocidos relacionados con los controladores JDBC de Sun, junto con las soluciones pertinentes.

Errores de PreparedStatement (6170432)

Descripción 1

Si una aplicación genera más de 3000 objetos PreparedStatement en una transacción, puede producirse el siguiente error en DB2:

[sunm][DB2 JDBC Driver] No hay más instrucciones disponibles. Vuelva a crear el paquete con un valor de dynamicSections más alto.

Solución 1

Agregue las siguientes propiedades a la definición del conjunto de conexiones para que el controlador vuelva a vincular los paquetes DB2 con un valor mayor de secciones dinámicas:

createDefaultPackage=true replacePackage=true dynamicSections=1000

Consulte la Sun GlassFish Enterprise Server 2.1 Administration Guide para obtener información sobre cómo configurar los conjuntos de conexiones.

Descripción 2

En relación con el error de PrepardStatement mencionado anteriormente, otro mensaje de error que se puede mostrar es:

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

Solución 2

Aumente el parámetro de configuración APPLHEAPSZ del servidor DB2 Un valor adecuado es 4096.

Descripción 3

Nivel de aislamiento TRANSACTION_SERIALIZABLE. Si una aplicación utiliza un nivel de aislamiento TRANSACTION_SERIALIZABLE y emplea uno de los parámetros sugeridos anteriormente, es posible que se bloquee cuando intente obtener la conexión.

Solución 3

Para definir el nivel deseado de aislamiento para una conexión, el conjunto de conexiones correspondiente debe crearse en el mismo nivel de aislamiento. Consulte la Sun GlassFish Enterprise Server 2.1 Administration Guide para obtener instrucciones.

Java DB no se inicia después del reinicio de la máquina o cuando se abre Server (6515124)

Descripción

La base de datos incluida en Java DB no se reinicia automáticamente después del reinicio de un host o de la zona de Solaris, o del inicio de Enterprise Server. Esto no es realmente un fallo, es el comportamiento que se espera de las aplicaciones "incluidas" (bundled)o de otro fabricante. El problema es que Java DB debe iniciarse antes que la instancia de Enterprise Server.

Solución

Después de reiniciar la máquina del host o la zona Solaris, asegúrese de iniciar Java DB antes de iniciar Enterprise Server; por ejemplo:


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

Consulte Administration Tools de Sun GlassFish Enterprise Server 2.1 Quick Start Guide en la Sun GlassFish Enterprise Server 2.1 Quick Start Guide para conseguir más información sobre las opciones del comando asadmin.

Implementación

A veces falla la implementación automática en un clúster (6610527)

Descripción

Los problemas de sincronización a veces hacen que falle la implementación automática en dominios configurados para dar apoyo a clústeres. El problema no se ha detectado en dominios que no admiten clústeres.

Solución

Utilice una de estas soluciones:

El ANT incluido produce el error java.lang.NoClassDefFoundError (6265624)

Descripción

La siguiente excepción se desencadena en un subproceso "principal" java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher.

Solución

No se recomienda el uso del ANT integrado para cuestiones externas a Enterprise Server.

La compilación de JSP no utiliza el cargador de clases específico de la aplicación (6693246)

Descripción

La compilación de JSP no utiliza el cargador de clases específico de la aplicación (applibs or --libraries). Como resultado, no se compilarán los JSP que hagan referencia a estos JAR.

Solución

No hay una solución conocida.

Documentación

Este apartado describe problemas conocidos relacionados con la documentación, junto con las soluciones pertinentes.

Incoherencias en Javadoc (varios ID)

Falta Javadoc o es incorrecto para varios métodos e interfaces AMX:

EJB

Resouce Injection no funciona con HandlerChain (6750245)

Descripción

Resouce Injection no funciona con HandlerChain por una orden de iniciación de EJB.

Solución

No hay una solución conocida.

Alta disponibilidad

En este apartado se describen los problemas conocidos relacionados con la base de datos de alta disponibilidad (HADB) y las soluciones asociadas.

La comprobación del estado del complemento del equilibrador de carga genera un gran número de conexiones y desconexiones en el fondo (carga) (6453946)

Descripción

La comprobación del estado del complemento del equilibrador de carga genera un gran número de conexiones y desconexiones en el fondo (carga). Para comprobaciones de estado, un subproceso runDaemonMonitor se conecta y se desconecta para cada receptor del servidor de aplicaciones. Esto puede derivar en una saturación de la conexión en Enterprise Server.

Solución

Se ha desarrollado un atributo nuevo, monitor-interval-in-seconds, para el archivo loadbalancer.xml. Este atributo se puede usar para introducir una pausa entre los eventos de conexión y desconexión en el caso de que cientos de receptores estén configurados para el complemento del equilibrador de carga. El valor predeterminado de pausa es 0.

Configuración HADB con redes dobles (sin ID)

La configuración de HADB con redes dobles en dos subredes funciona correctamente en Solaris SPARC. Sin embargo, debido a problemas en el sistema operativo o a los controladores de red en algunas plataformas de hardware, se ha observado que las plataformas Linux y Solaris x86 no siempre gestionan correctamente las redes dobles. Esto provoca los siguientes problemas con HADB:

Falla la creación de la base de datos HADB (sin ID)

Descripción

La creación de una base de datos nueva puede fallar con el siguiente error, que indica que hay muy pocos segmentos de memoria compartida disponibles:

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.

Solución

Compruebe que la memoria compartida esté configurada y que la configuración esté funcionando. En concreto, en Solaris 8, consulte el /etc/system, y compruebe que el valor de la variable shmsys: shminfo_shmseg sea, como mínimo, 6 veces el número de nodos por host.

hadbm set no comprueba la disponibilidad de los recursos (el espacio en disco y la memoria) (5091280)

Descripción

Al aumentar el tamaño de la memoria búfer o de los dispositivos usando hadbm set,, el sistema de administración comprueba la disponibilidad de los recursos cuando se crean bases de datos o se agregan nodos, pero no comprueba si hay recursos suficientes cuando se cambia el tamaño de la memoria búfer principal o del dispositivo.

Solución

Compruebe si hay espacio de disco o de memoria suficiente en todos los hosts antes de aumentar los atributos de configuración devicesize o buffersize.

No se admiten rutas heterogéneas para packagepath (5091349)

Descripción

No se puede registrar el mismo paquete de software con el mismo nombre en ubicaciones distintas y en hosts diferentes, por ejemplo:


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.

Solución

HADB no admite rutas heterogéneas en los nodos de un clúster de base de datos. Asegúrese de que el directorio de instalación de HADB (--packagepath) sea el mismo para todos los hosts.

hadbm createdomain puede fallar (6173886, 6253132)

Descripción

Si el agente de administración se está ejecutando en un host con varias interfaces de red, es posible que el comando createdomain presente errores si no están todas las interfaces de red en la misma subred:


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

Los agentes de administración, a menos que estén configurados de otra forma, usarán la "primera" interfaz para difusiones UDP (se entiende como "primera" interfaz el resultado de java.net.NetworkInterface.getNetworkInterfaces() ).

Solución

La mejor solución es indicarle al agente de administración qué subred debe utilizar (defina ma.server.mainternal.interfaces en el archivo de configuración, por ejemplo, ma.server.mainternal.interfaces=10.11.100.0). Otra opción es configurar el enrutador entre las subredes para que dirija los paquetes de difusión (el agente de administración utiliza la dirección de difusión 228.8.8.8).

Antes de volver a intentarlo con una configuración nueva de los agentes de administración, puede que deba limpiar el repositorio del agente de administración. Detenga todos los agentes del dominio y elimine todos los archivos y directorios del directorio del depósito (identificados por repository.dr.path en el archivo de configuración del agente de administración). Esta acción debe realizarse en todos los hosts antes de reiniciar los agentes con un nuevo archivo de configuración.

Pueden producirse fallos o bloqueos al iniciarse, detenerse o reconfigurarse HADB (6230792, 6230415)

Descripción

En Solaris 10 Opteron, el inicio, la detención o la reconfiguración de HADB usando el comando hadbm pueden fallar o generar bloqueos con alguno de los siguientes errores:


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.

Esto puede suceder si hay incoherencias al leer o escribir en un archivo (nomandevice) que esté utilizando el proceso clu_noman_srv. Este problema se puede detectar buscando los siguientes mensajes en los archivos del historial 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.

Solución

La siguiente solución no se ha probado, puesto que no se ha reproducido el problema manualmente. Sin embargo, la ejecución de este comando para el nodo afectado debería resolver el problema.


hadbm restartnode --level=clear nodeno dbname

Tenga en cuenta que se reiniciarán todos los dispositivos del nodo. También es posible que haya que detener el nodo antes de reiniciarlo.

El agente de administración termina con la excepción "IPV6_MULTICAST_IF failed" (6232140)

Descripción

Cuando se inicia en un host que ejecuta Solaris 8 con varias tarjetas NIC instaladas, si hay una mezcla de tarjetas con IPv6 e IPv4 habilitados, el agente de administración puede terminar con la excepción "IPV6_MULTICAST_IF failed.".

Solución

Defina la variable de entorno JAVA_OPTIONS en -Djava.net.preferIPv4Stack=true como, por ejemplo:


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

De lo contrario, use Solaris 9 o una versión posterior que no esté afectada por este problema.

clu_trans_srv no puede interrumpirse (6249685)

Descripción

Hay un error en la versión de 64 bits de Red Hat Enterprise Linux 3.0 que hace que el proceso clu_trans_srv finalice en un modo imposible de interrumpir al activar las E/S asíncronas. Esto significa que kill -9 no funciona y que se debe reiniciar el sistema operativo.

Solución

Use una versión de 32 bits de Red Hat Enterprise Linux 3.0.

hadbm no admite contraseñas con letras mayúsculas (6262824)

Descripción

Las letras mayúsculas en las contraseñas se convierten en minúsculas cuando la contraseña se almacena en hadb.

Solución

No use contraseñas que contengan letras mayúsculas.

Al pasar de la versión HADB 4.4.2.5 más moderna a la 4.4.1.7 más antigua, se producen distintos códigos de error en ma (6265419)

Descripción

Al retroceder en las versiones, el agente de administración puede fallar con distintos códigos de error.

Solución

Es posible retroceder en la versión de la base de datos de HADB, sin embargo, el agente de administración no podrá retroceder en su versión si se han hecho cambios en los objetos del repositorio. Después de retroceder en la versión, deberá usar el agente de administración de la última versión de HADB.

Instalación y eliminación de la preservación symlink (6271063)

Descripción

Con respecto a la instalación o eliminación del paquete de HADB (Solaris: SUNWhadbc, Linux: sun-hadb-c) versión <m.n.u-p>, el symlink /opt/SUNWhadb/<m> no se modifica una vez creado. En consecuencia, es posible que exista un symlink huérfano.

Solución

Elimine el symlink antes de la instalación o después de la desinstalación, a menos que esté en uso.

Los agentes de administración de las zonas globales y locales pueden interferir (6273681)

Descripción

En Solaris 10, al detener el agente de administración usando la secuencia de comandos ma-initd en una zona global, se detiene también el agente de administración en la zona local.

Solución

No instale el agente de administración en la zona global y la local.

hadbm/ma debería presentar un mensaje de error mejor cuando el objeto de una sesión haya expirado y se haya borrado de MA (6275103)

Descripción

En ocasiones, un problema de contención de recursos en el servidor puede hacer que un cliente de administración se desconecte. Al volverse a conectar, se puede mostrar un mensaje de error algo confuso "hadbm: Error 22184: A password is required to connect to the management agent".

Solución

En ocasiones, un problema de contención de recursos en el servidor puede hacer que un cliente de administración se desconecte. Al volverse a conectar, se puede mostrar un mensaje de error algo confuso "hadbm: Error 22184: A password is required to connect to the management agent".

Compruebe si hay algún problema con los recursos en el servidor, realice las acciones necesarias (por ejemplo, agregue más recursos) y vuelva a intentar la operación.

Los usuarios que no son "root" no pueden administrar HADB (6275319)

Descripción

La instalación de Java Enterprise System (como root) no permite que los usuarios que no sean root administren HADB.

Solución

Inicie sesión siempre como root para poder administrar HADB.

El agente de administración no debería utilizar interfaces de uso especial (6293912)

Descripción

Las interfaces de uso especial con direcciones IP similares a 0.0.0.0 no deberían registrarse como interfaces válidas para los nodos de HADB en el agente de administración. El registro de dichas interfaces podría provocar problemas si los nodos de HADB se configuran en estas interfaces mediante la ejecución del comando hadbm create por parte del usuario con nombres de host en lugar de con direcciones IP. Los nodos no podrán establecer comunicación, lo que provocara el bloqueo del comando create.

Solución

Al utilizar hadbm create en hosts con varias interfaces, especifique siempre explícitamente las direcciones IP con una notación DDN.

Errores de reensamblaje en Windows (6291562)

Descripción

En la plataforma Windows, con determinadas configuraciones y cargas, es posible que se produzca un gran número de errores de reensamblaje en el sistema operativo. Se ha detectado este problema con configuraciones de más de veinte nodos al ejecutar varios análisis de tabla (select *) en paralelo. Entre los síntomas detectados, se incluyen los siguientes: las transacciones se anulan frecuentemente, el proceso de reparación o recuperación tarda mucho tiempo en completarse, y se agota frecuentemente el tiempo de espera en diversas partes del sistema.

Solución

Para solucionar el problema, puede establecer la variable del registro de Windows HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters en un valor superior a 100 (valor predeterminado). Se recomienda que aumente este valor a 0x1000 ( 4096). Para obtener más información, consulte Artículo 811003 de las páginas de asistencia de Microsoft.

No se conserva el estado de la sesión cuando el navegador tiene otra cookie con la ruta / (6553415)

Descripción

<Check Alignment of PHs>Las cookies con una ruta igual a "/" interfieren con las cookies de una aplicación web altamente disponible que esté implementada en una raíz de contexto distinta a "/" y que utilice la replicación en memoria como su tipo de persistencia, lo que impide a la aplicación web altamente disponible conservar cualquier estado de sesión HTTP. Esto suele ocurrir cuando se utiliza el mismo navegador para acceder a la Interfaz Gráfica de Usuario de Admin (que está implementada en "/") y a la aplicación web altamente disponible.

Solución

Acceda a la aplicación web implementada en "/" desde un navegador distinto.

LB no funciona con IIS 6; SASL32.DLL y falta ZLIB.DLL en as-install/lib (6572184)

Descripción

SASL32.DLL y ZLIB.DLL son archivos necesarios para que el equilibrador de carga funcione con Windows IIS 6. Estos archivos ya no están disponibles en as-install/lib

Solución

Copie manualmente los dos archivos DLL en as-install/lib. También es posible descargar estos archivos de:


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

Donde OS representa la plataforma deseada, que puede ser uno de los siguientes valores:

Hay problemas en la creación y el inicio de DAS y en la propagación del paquete HA en la Zona global (6573511)

Descripción

Se producen dos problemas al instalar o desinstalar Enterprise Server con paquetes de alta disponibilidad en una zona global:

  1. Los paquetes de HA se instalan en todas las zonas, algo que puede no ser conveniente.

  2. Al desinstalarlos, los paquetes HA, MQ y JDK se eliminan de todas las zonas, algo que puede no ser conveniente.

Este problema no se produce si la instalación o desinstalación se realiza desde una zona local de raíz.

Solución

Realizar la instalación y la desinstalación desde una zona local de raíz y no desde una zona global.

Las aplicaciones web altamente disponibles de "/" no son capaces de reanudar las sesiones de HTTP replicadas en memoria (Issue Tracker 2972)

Descripción

Las aplicaciones web implementadas en "/" son incapaces de mantener cualquier sesión HTTP cuando utilizan la replicación en memoria como su tipo de persistencia.

Solución

Implementar en una raíz de contexto que no sea "/" aquellas aplicaciones web altamente disponibles que utilicen replicación en memoria como tipo de persistencia. Si desea que esa aplicación web esté disponible en "/", puede designarla como el módulo web predeterminado del servidor virtual en el que se haya implementado esa aplicación web.

El programa de instalación de AS LB no puso la ruta /usr/lib/mps en apachectl LD_LIBRARY_PATH. No es posible iniciar Apache SSL (6591878)

Descripción

Durante la instalación del equilibrador de la carga de Enterprise Server para Apache en Solaris, el instalador actualiza LD_LIBRARY_PATH en la secuencia de comandos de apachectl . Sin embargo, el instalador no escribe correctamente la ruta /usr/lib/mps. En Solaris, la instancia de seguridad Apache no se inicia si esta ruta no está en LD_LIBRARY_PATH.

Solución

Este problema sólo se produce en plataformas Solaris. Para solucionar este problema de forma temporal, agregue /opt/SUNWappserver/appserver/lib/lbplugin/lib a su LD_LIBRARY_PATH.

Al activar y desactivar LB para una instancia o un clúster debería mostrarse el estado correcto (6595113)

Descripción

El botón Activar equilibrio de carga siempre está activado en la página general del Clúster o Instancia, con independencia de lo que se guarde en domain.xml.

Solución

AS9.1 EE IFR b58f/JES5 UR1. No se puede instalar el servidor de registro porque se ha detectado que el HA está "incompleto". (6602508)

Descripción

(sólo en Solaris) Después de instalar Enterprise Server 2.1 en SPARC Solaris 10 con HADB, es posible que aparezca el siguiente error tras iniciar Enterprise Server e intentar después instalar JES 5 UR 1 con 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.

Solución

No es posible instalar Registry Server desde JES 1 UR2.1 con Enterprise Server 2.1 IFR en equipos con Solaris. Es necesario instalar los paquetes de Registry Server manualmente mediante el comando pkgadd del siguiente directorio de distribución JES5 UR:


path/OS/Products/registry-svr/Packages

Específico del navegador Internet Explorer 6.0/7.0: al exportar el archivo de configuración del equilibrador de carga se produce un error (6516068)

Descripción

(sólo en Internet Explorer 6 y 7) Al intentar exportar el archivo de configuración del equilibrador de carga (loadbalancer.xml) desde Internet Explorer 6 o 7, el navegador muestra un mensaje de error que informa de que no es posible localizar el archivo DTD sun-loadbalancer_1_2.dtd.

Solución

Para guardar el archivo, utilice la siguiente solución alternativa:

  1. Haga clic en Exportar en la página Equilibrador de la carga de Internet Explorer.

    Se muestra el mensaje "No es posible mostrar la página XML".

  2. Haga clic en el marco del error y después elija Archivo -> Guardar como de Internet Explorer.

  3. Guarde el archivo loadbalancer.xml en el directorio que prefiera.

Instalación

Este apartado describe problemas conocidos relacionados con la instalación, junto con las soluciones pertinentes.

El programa de instalación de Enterprise Server se bloquea en Linux (6739013)

Descripción

Este problema se ha observado en sistemas con Linux y una variable de entorno, MALLOC_CHECK_, establecida en 2.

Solución

Establezca la variable de entorno, MALLOC_CHECK_,en 0. Ejecute el comando export como se indica a continuación:


export MALLOC_CHECK_

El cierre de la instalación se bloquea en algunos sistemas Linux al pulsar en el botón "Finalizar" (5009728)

Descripción

Se ha observado que este problema se ha producido en varios sistemas Linux. Es más frecuente en Java Desktop System 2, pero también se ha observado en distribuciones Linux Red Hat.

Después de hacer clic en el botón "Finalizar" en la última pantalla, el instalador no consigue iniciar una ventana del explorador que contiene la página con información acerca del producto o la página de registro. El instalador se bloquea completamente y no permite volver a la línea de comandos.

Solución

Salga de instalador pulsando Ctrl+C en la ventana de terminal en la que se inició el instalador. Después de hacer esto, es posible que se muestre una ventana del explorador que contiene información acerca del producto o la pantalla de registro, de lo contrario, inicie el navegador y escriba la siguiente dirección URL para ver la información acerca del producto:


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

Si seleccionó la opción pertinente para registrar el producto, siga el enlace a la página de registro que se mostrará en la página de información sobre el producto.

En Windows, es necesario crear el directorioimq durante la instalación (6199697)

Descripción

En Windows, justo después de la instalación, el agente de Message Queue presenta errores durante el inicio y se muestra un mensaje en el que se indica que no existe el directorio drive:\as\domains\domain1\imq.

Tenga en cuenta que si el agente se ejecuta después de iniciar domain1, Application Server creará el directorio y no habrá ningún problema.

Solución

  1. Cree var_home_dir_location antes de crear el agente:


    $imqbrokerd -varhome var_home_dir_location
    

    Por ejemplo:


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

La desinstalación no actualiza el archivo productregistry correctamente; no es posible utilizar el modo silencioso en la instalación (6571598)

Descripción

<Check Alignment of PHs>Si el archivo productregistry de Enterprise Server contiene configuraciones de componentes compartidos, un procedimiento de desinstalación de Enterprise Server no actualizará el archivo productregistry correctamente, por lo que usted no podrá utilizar el modo silencioso en una instalación posterior a menos que cambie el nombre del archivo productregistry o lo elimine. Se dejan intactas las entradas de los componentes compartidos en el archivo productregistry por cuestiones de diseño, pero provoca confusiones con las posteriores instalaciones silenciosas.

Solución

Cuando los archivos de registro de la desinstalación le indiquen que la desinstalación se ha realizado correctamente, elimine el archivo productregistry antes de ejecutar la instalación posterior. Para comprobar que se ha realizado correctamente la desinstalación previa, busque el archivo appserv_uninstall.class en as-install. Este archivo no estará si la desinstalación se realizó correctamente.


Nota –

Si la desinstalación no se realizó correctamente, no borre productregistry.


El archivo productregistry se encuentra en /var/sadm/install en Solaris y en /var/tmp en Linux.

IFR. No pudo instalar AS en la escasa zona local, problema con los paquetes de MQ. (6555578)

Descripción

Al instalar Enterprise Server en una zona local escasa, la instalación falla si no se instala primero Message Queue (MQ). El instalador intenta instalar MQ y después falla la instalación entera.

Solución

Es necesario instalar MQ manualmente en la zona global antes de instalar Enterprise Server en una zona local escasa. Hay dos soluciones alternativas para este problema:

  1. Instalar MQ 2.1 manualmente en la zona global desde el mismo soporte en que se encuentre la instalación IFR de Enterprise Server 2.1 para obtener los paquetes de MQ más recientes.

    1. Utilice el instalador que se corresponda con su plataforma:


      mq4_1-installer-SunOS.zip
      mq4_1-installer-SunOS_X86.zip
      mq4_1-installer-Linux_X86.zip
      mq4_1-installer-WINNT.zip
    2. Descomprima los bits y ejecute el instalador.

      El instalador se encuentra en el directorio mq4_1-installer.

  2. Instale cualquier componente de la instalación IFR en la zona global. Con esta acción se comprueba la versión de MQ en GZ y, si es necesario, se actualizaría a la incluida en Enterprise Server 2.1 IFR. Sólo con seleccionar e instalar el componente de las aplicaciones de muestra se actualiza MQ a la versión IFR.

    1. Ejecute la instalación de Enterprise Server en la zona global, pero seleccione sólo los componentes de muestra.

      La instalación del componente de muestra también instala MQ y los componentes compartidos de Enterprise Server en todas las zonas.

    2. Vuelva a ejecutar la instalación de Enterprise Server, pero esta vez en la zona local escasa.

      La instalación debería realizarse sin problemas.

Es necesario eliminar el mensaje de -console de la instalación IFR: "¿Desea actualizar la aplicación previa?" ( (6592454)

Descripción

Al ejecutar el instalador IFR de Enterprise Server2.1; con la opción —console (en modo línea de comandos), aparecerá el siguiente mensaje:


Do you want to upgrade from previous Application Server version?

Desgraciadamente, el instalador IFR no admite estas actualizaciones, por lo que este mensaje es erróneo. Si responde afirmativamente al mensaje, la instalación continuará normalmente, pero no se indicará que se ha realizado una instalación completa en lugar de una actualización.

Solución

Utilice la herramienta de actualización cuando quiera actualizar su instalación de Enterprise Server.

Tras la actualización, aparecen las excepciones siguientes en el registro cuando se inicia un dominio. (6774663)

Descripción

Puede que aparezcan las siguientes excepciones:

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

Solución

Después de finalizar la actualización y de iniciar el dominio actualizado, estas excepciones se pueden ignorar.

Tutorial de Java EE

Cuando utilice la consola de administración para crear un recurso, use la ficha Targets (Destinos) para especificar el servidor como el destino. Si utiliza la línea de comandos o un destino asant, el servidor es el destino predeterminado y no es necesario realizar ninguna acción adicional.

Persistencia Java

TopLink espera que mi campo o propiedad Collection sea clonable (Issue Tracker 556)

Descripción

Si se utiliza el API java.util.Arrays.asList() para convertir un Object[] en Collection, JDK devuelve una implementación de java.util.ArrayList que no es clonable. Esto produce la siguiente excepción:


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

El problema está registrado en https://glassfish.dev.java.net/issues/show_bug.cgi?id=556.

Solución

Crear otra colección utilizando su constructor; por ejemplo:


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

GenerationType.IDENTITY y DataDirect Driver con SyBase (Issue Tracker 2431)

Descripción

Si intenta insertar una entidad que utiliza GenerationType.IDENTITY se produce un error si se usa el controlador DataDirect con SyBase. El intento falla porque el controlador DataDirect crea un procedimiento almacenado para cada declaración preparada con parámetros.

Solución

En el archivo domain.xml establezca la propiedad PrepareMethod=direct en la fuente de datos correspondiente.

Gestión del ciclo de vida

En esta sección, se describen problemas conocidos relacionados con la administración del ciclo de vida, junto con las soluciones pertinentes.

Ajustar la propiedad ejb-timer-service hace que falle el comando set (6193449)

Descripción

<Check Alignment of PHs>Tras ajustar la propiedad ejb-timer-service de minimum-delivery-interval a 9000, el intento de establecer la propiedad ejb-timer-service redelivery-interval-in-mills en 7000 provoca que el comando set sufra el siguiente error:


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

El problema es que la lógica que relaciona la propiedad de intervalo de reentrega con la propiedad de entrega mínima es incorrecta e impide que se utilice la GUI o la CLI para definir valores en los que el intervalo de entrega mínimo sea superior al intervalo de reentrega.

minimum-delivery-interval-in-millis debe ser igual o mayor que la propiedad redelivery-interval-in-millis de ejb-timer-service.. El problema es que se produce una comprobación de validación errónea en el servidor al verificar que el valor de redelivery-interval-in-millis es superior al valor de minimum-delivery-interval-in-millis.

Solución

Use los valores predeterminados para estas propiedades, tal y como se indica a continuación:


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

Si utiliza valores que no sean los predeterminados, se generará un error.

Se genera un error al listar los destinos físicos de JMS en configuraciones no DAS (6532532)

Descripción

Si intenta ver los destinos físicos de JMS con default-config, aparecerá un mensaje de error.

Solución

Este comportamiento es el esperado. En Enterprise Server 2.1, default-config es una plantilla de información de configuración y por ello las operaciones JMS (como list y create) no pueden ejecutarse para el default-config. Sin embargo, estas operaciones sí pueden ejecutarse para las configuraciones de su clúster o instancias independientes.

Sólo Win2003: Pérdida de memoria en conjuntos no paginados, derribo de la pila tcp y prueba de acceso variado (6575349)

Descripción

(sólo Windows 2003) Se producen pérdidas de memoria en los sistemas de Windows 2003 al realizar funciones de acceso variados. Este problema se produce porque el conjunto no paginado de Win32 sigue creciendo y acaba por derribar la pila TCP/IP entera. Una vez producido el fallo, la pila TCP/IP se queda en un estado recuperable; la única manera de restaurarlo es reiniciando el sistema Windows 2003.

Solución provisional

Existen dos soluciones para este problema:

Registro

Este apartado describe problemas conocidos relacionados con el registro, junto con las soluciones pertinentes.

Al establecer instrucciones de depuración para access,failure, se produce un bloqueo al iniciar el servidor (6180095)

Descripción

Si establece la opción java.security.debug para JVM, la instancia del servidor se bloqueará irreversiblemente al iniciarse; por ejemplo, si establece domain.xml en los siguientes valores, se producirá este problema:


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

Solución

Ninguna por ahora. Evite configurar este indicador.

Información de resolución de problemas de

Este apartado describe problemas conocidos relacionados con Java Message Queue, junto con las soluciones pertinentes.

Enterprise Server no se inicia si MQ Broker no está iniciado (6740797)

Descripción

Si configura JMS en REMOTO, Enterprise Server no se inicia si MQ broker no está iniciado.

Solución

No hay una solución conocida. Configure JMS para trabajar en modo INCORPORADO.

La reconexión de JMS no se completa correctamente en determinados casos que dependen de temporizadores (6173308, 6189645, 6198481, 6199510, 6208728)

Descripción

Los errores al volverse a conectar en situaciones que dependen de temporizadores pueden estar causados por diversos problemas.

Solución

Puede solucionarlos de esta forma:

El agente de MQ no se inicia con el perfil del clúster en Linux (6524871)

Descripción

Después de crear un dominio con un perfil de clúster en un sistema Linux, es posible que encuentre un error en java.lang.OutOfMemoryError: Java heap space y que la instancia del servidor no se inicie porque el agente no MQ no se ha iniciado. El sistema nunca se recupera tras esta condición. El problema reside en un archivo /etc/hosts mal configurado; en concreto, el nombre del host del servidor apunta a la dirección de bucle invertido 127.0.0.1.

Solución

Por diseño, un clúster de agente MQ no puede iniciarse cuando el dispositivo de red está configurado para apuntar a la dirección de bucle invertido. Esto no es un fallo. La solución consiste en asegurarse de que el archivo /etc/hostsdel host Enterprise Server no señale a 127.0.0.1.

Se produce una falta de coincidencia de las clases antiguas y las nuevas cuando se carga imqjmsra.jar antes de la actualización (6740794)

Descripción

Al iniciar el servidor, éste comprueba la versión de la cola de mensajes. Si la versión de Message Queue no es correcta, entonces el servidor se actualiza utilizando imqjmsra.jar. Esto actualiza JAR y sus clases no estarán disponibles para el servidor hasta el siguiente reinicio. Esta situación sólo tiene lugar si Message Queue se actualiza solo o si Application Server se distribuye solo. Una consecuencia de esta situación es que a veces el servidor no se inicia.

Solución

Tanto Message Queue como Enterprise Server necesitan mantenerse en el mismo nivel de distribución o reiniciar el servidor.

Supervisión

Este apartado describe problemas conocidos relacionados con la supervisión, junto con las soluciones pertinentes.

Algunas estadísticas de control del servicio HTTP no ofrecen información útil y deberían ignorarse (6174518)

Descripción

Al visualizar las estadísticas de vigilancia de algunos elementos del servicio HTTP, algunos valores presentados no corresponden con los valores actuales o siempre son 0. En concreto, las siguientes estadísticas del servicio HTTP no presentan información aplicable a Enterprise Server, y se deberían ignorar:

Solución

Estos elementos de supervisión se eliminarán en versiones futuras y se sustituirán por información más adecuada.

Al abrir el navegador JNDI desde la interfaz de usuario de administración se añade una enorme cantidad de excepciones en server.log (6591734)

Descripción

Muchas de las excepciones se generan cuando el navegador JNDI se abre desde la Interfaz de usuario de administración.

Solución

Ninguna por ahora.

Paquetes

En esta sección, se describen los problemas conocidos y sus soluciones asociadas en relación con los paquetes de código de software de Enterprise Server 2.1.

AIX: el comando monitor no funciona en AIX. (6655731)

Descripción

El comando monitor no se puede ejecutar en el sistema operativo AIX debido a que no se ha incluido en el paquete de Enterprise Server 2.1; el archivo de biblioteca libcliutil.so.

ProcedureSolución: para instalar el archivo de biblioteca libcliutil.so que falta

  1. Descargue el archivo JAR desde.

  2. Acceda al directorio en el que ha descargado el archivo appserv-native-9.1.1-b16a.jar file.


    prompt% cd destination-dir
    
  3. Extraiga el contenido del archivo appserv-native-9.1.1-b16a.jar.


    prompt% jar xf appserv-native-9.1.1-b16a.jar
    
  4. Copie el archivo libcliutil.so en el directorio as-install /lib.


    prompt% cp libcliutil.so as-install/lib
    

Ejemplos

En esta sección, se describen problemas conocidos y sus soluciones asociadas en relación con el código de ejemplo incluido en el producto Enterprise Server 2.1.

Después de la actualización, las muestras de Enterprise Server y del portal JES5 compiten por el puerto de derby 1527 (6574563)

Descripción

En Windows, después de actualizar a Enterprise Server 2.1;, las muestras y las muestras del portal JES 5 compiten por el puerto Derby 1527. En concreto, Enterprise Server 2.1; inicia automáticamente JavaDB en el puerto 0.0.0.0:1527 con APP:APP, sin embargo el JES5 Portal JavaDB pretende enlazar a hostnameIP:1527 con portal:portal.

Este error describe un problema que ya se ha dado en JES 5, error 6472173. La solución alternativa para el error 6472173 está documentada en la guía de instalación de Sun Java Enterprise System 5 para Microsoft Windows en http://docs.sun.com.

Solución

Iniciar la base de datos Derby con el siguiente comando:


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

Seguridad

Este apartado describe problemas conocidos relacionados con los certificados y la seguridad de las aplicaciones web y &ProductName, junto con las soluciones pertinentes.

Error OutofMemory en escenarios SSL durante un fuerte estrés (JDK 6 Issue 23)

Descripción

Un error de JDK (consultar: https://jdk6.dev.java.net/issues/show_bug.cgi?id=23) en el proveedor JDK6 Sun PKCS11 puede provocar un OutOfMemoryError al ejecutar algunos escenarios SSL con un fuerte estrés.

Solución

Si se encuentra con este problema, elimine el proveedor sun.security.pkcs11.SunPKCS11 desde el archivo java.security en la instalación de JRE.

AIX: Ha fallado la prueba de clave de cifrado dinámica WSS debido a un error de validación de certificados de parte del servidor (6627379)

Descripción

En la plataforma AIX, el cifrado dinámico para la determinación de una clave de cifrado para una respuesta falla El fallo ocurre durante la validación del certificado de parte del servidor.

En respuesta al fallo, los siguientes mensajes de error se escriben en el archivo de registro del servidor server.log:


Unable to validate certificate

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

Solución

Instale Metro 1.1 en Enterprise Server2.1

AIX: @RunAs la prueba de autorización ha fallado en el módulo EJB AccessLocalException: El cliente no está autorizado (6627385)

Descripción

Un método en un bean empresarial cuya identidad de seguridad run-as o de propagación se define por medio de la anotación @RunAs intenta invocar un método en otro bean empresarial. Si no se define ningún run-as principal en el archivo descriptor de implementación sun-ejb-jar.xml, el intento puede fallar con un error de tipo javax.ejb.AccessLocalException .


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

Solución

En el archivo descriptor de implementación sun-ejb-jar.xml defina el nombre principal en el nombre principal-name el nombre principal para el que se ha especificado la función run-as.

La finalización de SSL no funciona (6269102)

Descripción

El proceso de finalización de SSL no funciona; cuando se configura el equilibrador de carga (hardware) para la finalización de SSL, Enterprise Server cambia el protocolo https por http durante la redirección.

Solución

Agregue un equilibrador de carga de software entre el equilibrador de carga de hardware y Enterprise Server.

Pérdida de la conexión del socket con SSL (6492477)

Descripción

A causa de un error de JVM, se produce un problema de pérdida con algunas versiones de JDK cuando security-enabled se establece en true en una escucha HTTP. Los pasos concretos para reproducir el error son los siguientes:

  1. Establezca security-enabled en true en la escucha 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. Delimitar con comentarios el dominio de detención al final de las pruebas de quicklook.

  3. Ejecutar las pruebas de quicklook.

  4. Comprobar el uso del socket:


    netstat -an | grep 8080

    Los siguientes están en uso:


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

Este problema está registrado en el sitio de GlassFish en https://glassfish.dev.java.net/issues/show_bug.cgi?id=849.

Solución

Actualizar a la versión más reciente de JDK.

Utilidad de actualización

En esta sección, se describen problemas conocidos relacionados con la utilidad de actualización, junto con las soluciones pertinentes.

El algunos sistemas Linux, el instalador que ejecuta las "actualizaciones in situ" no inicia la herramienta de actualización después de hacer clic en el botón "Iniciar asistente de actualización". (6207337)

Descripción

Este problema se ha observado en varios sistemas Linux y es más frecuente en Java Desktop System 2, pero también se ha detectado en distribuciones Red Hat.

Después de hacer clic en el botón que permite iniciar la herramienta de actualización en la pantalla final del instalador, éste no logra iniciarla para completar el proceso y se bloquea de forma indefinida, por lo que no consigue volver a la línea de comandos.

Solución

Este problema no se produce si se utiliza el modo de instalación mediante línea de comandos para llevar a cabo la actualización "in situ".

  1. Si realiza dicha actualización en modo de GUI y se encuentra con este problema, salga del instalador pulsando Ctrl+C en la ventana de terminal en la que se inició el instalador.

  2. Inicie la herramienta de actualización desde la ventana de terminal usando los siguientes comandos:


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

    adminuser y adminpassword deben coincidir con los valores usados para la instalación que esté actualizando.

  3. Cuando la herramienta de actualización complete el proceso, podrá iniciar también el explorador y especificar la siguiente URL para visualizar la página que muestra información acerca del producto:


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

Si seleccionó la opción pertinente para registrar el producto, siga el enlace a la página de registro que se mostrará en la página de información sobre el producto.

No se confía en el certificado autofirmado durante y después de la actualización de 8.0 Platform Edition (PE) a 8.1 Enterprise Edition (EE) UR2 (6296105)

Solución

Elimine las siguientes entradas del destino domain.xml (después de la actualización) y reinicie el servidor:

<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) genera un error avisando que el servidor de la instancia de servidor no tiene un conector de sistema llamado "null" (6545145)

Descripción

Al actualizar Enterprise Server 8.0PE a 2.1, se genera un error avisando que el servidor no tiene ningún conector de sistema llamado null, y muestra información del usuario no válida que aparece en sbs-manual. Incluso después de cambiar los valores codificados, sigue apareciendo el mismo mensaje de error.

Solución

Sólo puede encontrar este error al actualizar desde un 8.0 PE a Enterprise Server. La solución alternativa es actualizar a 8.1, 8.2 o 9.0 y, a continuación, a Enterprise Server.

Se pierden los distintos dominios cuando se utilizan combinaciones de versiones diferentes (6546130)

Descripción

Al realizar una actualización "in situ" cuando hay varios dominios en la fuente, el instalador invoca la herramienta de actualización aunque se aborte el proceso. Esto sucede cuando se invoca en el modo GUI.

Solución

  1. Instale la actualización in situ en el modo CLI y salga cuando el instalador le pida que seleccione la herramienta de actualización al final del proceso de instalación. Si hace lo indicado, no se eliminará ninguno de los dominios presentes en el directorio de dominios. La herramienta de actualización debería invocarse manualmente desde el directorio bin.

  2. Si instala la actualización in situ en el modo GUI, haga una copia de seguridad de los dominios que se encuentren en la raíz de dominios para evitar perder alguno en el proceso. Al final del proceso de instalación, salga cuando el instalador le pida que invoque la herramienta de actualización. Copie en el directorio de dominios las copias de seguridad de los dominios que se hayan perdido. Inicie la herramienta de actualización manualmente para hacer una actualización.

Solaris: la contraseña maestra ya introducida en la herramienta de actualización procede de Enterprise Server 2.1 y no de AS8.2 (6565825)

Descripción

Al actualizar de AS 8.2, la contraseña maestra de la instalación 8.2 no se hereda en la instalación de destino. Por ello se produce un error de autenticación en el siguiente inicio de sesión del administrador.

Solución

La contraseña administrativa predeterminada de Enterprise Server 2.1 sigue siendo changeit. Para evitar problemas al iniciar la sesión en Enterprise Server tras actualizar desde 8.2, siga alguna de las instrucciones que se indican a continuación:

No existe ayuda en línea traducida de la interfaz de usuario de asupgrade (6610170)

Descripción

Al ejecutar la interfaz de usuario de asupgrade en un idioma que no sea el inglés, la ayuda en línea de la interfaz de usuario no está traducida al idioma seleccionado.

Solución

Ninguna por el momento. Se planea traducir la ayuda en línea a todos los idiomas meta distintos al inglés.

La Herramienta de actualización borró el directorio nodeagents al actualizar (solicitud inversa) con múltiples dominios (6636871)

Descripción

Tras una actualización codo a codo de una configuración que contiene varios dominios, sólo los agentes de nodo del último dominio procesado están presentes. Esto es debido a que la Herramienta de actualización elimina y vuelve a crear el directorio nodeagents en el objetivo cada vez que la Herramienta de actualización procesa un dominio.

ProcedureSolución: Preservar todos los agentes de nodo en una actualización codo a codo de varios dominios

  1. Tras procesar el dominio, cree un archivo comprimido del directorio nodeagents.

  2. Cuando haya procesado todos los dominios, descomprima los archivos creados.

    Ahora todos los agentes de nodo deberían estar presentes.

Contenedor web

En esta sección, se describen problemas conocidos relacionados con el contenedor web, junto con las soluciones pertinentes.

En Windows, al implementar una aplicación con --precompilejsp=true pueden bloquearse los archivos JAR de esa aplicación, haciendo que la desimplementación y la reimplementación posteriores fallen (5004315)

Descripción

Si solicita una precompilación de JSP cuando implemente una aplicación en Windows, los siguientes intentos para anular la implementación o para volver a implementarla (o alguna aplicación con el mismo ID de módulo) no funcionarán tal y como se esperaba. El problema es que la precompilación de JSP abre archivos JAR en la aplicación, pero luego no los cierra y Windows impide que se anule la implementación porque no se pueden eliminar los archivos e impide que se puedan volver a implementar, puesto que no se pueden sobrescribir.

Tenga en cuenta que la anulación de la implementación es correcta hasta un punto en el que la aplicación se elimina lógicamente de Application Server. Tenga en cuenta también que la utilidad asadmin no muestra ningún mensaje de error, a pesar de que los archivos JAR bloqueados y el directorio de la aplicación siguen estando en el servidor. El archivo de registro del servidor contiene mensajes en los que se indica que no se han podido eliminar los archivos ni el directorio de la aplicación.

Los intentos de volver a implementar la aplicación después de que ésta se haya anulado fallan porque el servidor trata de eliminar los archivos existentes y el directorio, pero estos intentos fallan. Esto puede suceder si intenta implementar una aplicación que utilice el mismo ID de módulo que la aplicación que se implementó originalmente porque el servidor utiliza dicho ID de módulo cuando elige el nombre del directorio para conservar los archivos de la aplicación.

Si intenta reimplementar la aplicación sin anular su implementación primero, se producirán fallos por las mismas razones.

Diagnóstico

Si intenta volver a implementar la aplicación o implementarla después de haberla eliminado, la utilidad asadmin devuelve un error semejante al siguiente.


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.

Solución

No se producirá este problema, si especifica --precompilejsps=false (la configuración predeterminada) al implementar una aplicación. Tenga en cuenta que el primer uso que haga de la aplicación desencadenará la compilación JSP, por lo que el tiempo de respuesta para la primera solicitud será superior al de las solicitudes posteriores.

Debe saber también que si realiza una compilación previa, deberá detener y reiniciar el servidor antes de anular la implementación de la aplicación o de volver a implementarla. Al cerrar, se liberan los archivos JAR bloqueados por lo que la anulación de la implementación o el proceso para volver a implementar se realizarán correctamente.

No es posible implementar WAR con el archivo web.xml basado en Servlet 2.4 que contiene un elemento><load-on-startup> (6172006)

Descripción

El elemento opcional load-on-startup servlet en web.xml indica que el servlet asociado se debe cargar e iniciar cuando se inicie la aplicación web de la que forma parte.

El contenido opcional de este elemento es un entero que indica el orden en el que se debe cargar e iniciar el servlet con respecto a los demás servlets de la aplicación web. Si <load-on-startup> está vacío, indica que el orden no es relevante, siempre y cuando el servlet se cargue e inicie durante el inicio de la aplicación web que lo contiene.

<Check Alignment of PHs>El esquema de Servlet 2.4 de web.xml ya no admite un elemento <load-on-startup> vacío. Esto implica que debe especificarse un entero al utilizar un archivo web.xml basado en Servlet 2.4. <Check Alignment of PHs>Si se especifica un elemento <load-on-startup> vacío, como en <load-on-startup/>, el archivo web.xml no podrá realizar la validación en el esquema de Servlet 2.4 para web.xml, por lo que fallará la implementación de la aplicación web.

Problema de compatibilidad con versiones anteriores En el caso de web.xml basado en Servlet 2.3, sí se puede dejar vacío <load-on-startup>.

Solución

Especifique <load-on-startup>0</load-on-startup> al utilizar un archivo web.xml basado en Servlet 2.4 para indicar que el orden de carga del servlet es irrelevante.

No es posible compilar la página JSP en servidores con recursos limitados (6184122)

Descripción

Se puede acceder a la página JSP, pero se producen fallos al compilar y el registro del servidor contiene el mensaje de error "Unable to execute command", es decir, que no se puede ejecutar el comando con este seguimiento de pila:


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)

Solución

Defina el conmutador de compilación "fork" de JSP en "false".

Esta acción puede realizarse de dos formas:

Cualquiera de estos ajustes evitará que ant genere un nuevo proceso de compilación javac .

Enterprise Server no admite el complemento auth-passthrough de Web Server 6.1 (6188932)

Descripción

Sun GlassFish Enterprise Server 2.1; es compatible con la funcionalidad proporcionada por la función del plugin auth-passthrough disponible con Sun GlassFish Enterprise Server Enterprise Edition 2.1. Sin embargo, en Enterprise Server 2.1;, la función plugin de auth-passthrough se configura de forma distinta.

La función plugin de auth-passthrough en Enterprise Server Enterprise Edition 7.1 ha sido útil en escenarios de dos niveles, cuando:

En arquitecturas de red de este tipo, un cliente se conecta a un servidor web de principal (front-end) que se haya configurado con la función del complemento service-passthrough y reenvía solicitudes HTTP a la instancia de Application Server que actúa de proxy para que las procese. La instancia de Application Server sólo puede recibir solicitudes desde el proxy del servidor web, pero nunca directamente de los hosts clientes. En consecuencia, ninguna aplicación implementada en la instancia de Application Server que actúa de proxy que solicite información del cliente (como pueda ser la dirección IP del cliente) recibirá la IP de host del proxy, puesto que éste es el host que origina la solicitud remitida.

Solución

En Application Server Enterprise Edition 7.1, la función complemento de auth-passthrough podría configurarse en la instancia de Application Server con proxy para hacer que la información del cliente remoto esté disponible directamente con cualquier aplicación implementada en ella, como si la instancia de Application Server con proxy hubiera recibido la solicitud directamente, en lugar de a través del servidor web que ejecuta el complemento service-passthrough.

En Enterprise Server 2.1;, la función auth-passthrough puede activarse estableciendo la propiedad authPassthroughEnabled del elemento <http-service> en domain.xml en TRUE (verdadero), de la siguiente manera:


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

Las mismas consideraciones de seguridad de la función del complemento auth-passthrough en Application Server Enterprise Edition 7.1 también se aplican a la propiedad de authPassthroughEnabled en Enterprise Server 2.1. Ya que authPassthroughEnabled hace posible ignorar información que se puede utilizar con objetivos de autenticación (como la dirección IP desde la que se solicitó o el certificado de cliente de SSL), es esencial que sólo se permita la conexión a los clientes o servidores de confianza a una instancia Enterprise Server 2.1 con authPassthroughEnabled establecido en TRUE. Como medida de precaución, se recomienda que sólo los servidores que estén detrás de un servidor de seguridad corporativo se configuren con authPassthroughEnabled establecido en TRUE. Un servidor que esté accesible a través de Internet nunca debe configurarse con authPassthroughEnabled definido en TRUE.

Tenga en cuenta que en una situación en la que el servidor web proxy se haya configurado con el complemento service-passthrough y éste reenvíe solicitudes a una instancia de Enterprise Server con authPassthroughEnabled definido como TRUE (verdadero), la autenticación SSL de cliente puede habilitarse en el servidor web proxy y deshabilitarse en la instancia para la que actúa de proxy. En este caso, Enterprise Server se seguirá considerando la solicitud como si estuviera autenticada a través de SSL y proporcionará el certificado SSL de cliente a cualquier aplicación implementada que lo solicite.

Web Server

AS 9.1 b50e.Linux. No puede iniciar WS tras la instalación de AS LB: libjvm.so:cannot open shared (6572654)

Descripción

Este problema sólo se produce al utilizar el servidor web de Sun GlassFish con Enterprise Server y el equilibrador de la carga en un sistema Linux. En este caso, después de instalar Enterprise Server y el equilibrador de la carga, el inicio de Web Server puede fallar debido al conflicto entre libicui18n.so.2 y libicuuc.so.2. Estas bibliotecas se encuentran en /opt/sun/private/lib y en /opt/sun/appserver/lib.

Solución

Las bibliotecas que hay que utilizar son las de /opt/sun/appserver/lib porque la construcción de lbplugin es contraria a esas bibliotecas. Una vez eliminadas las dos bibliotecas de /opt/sun/private/lib, Web Server debería iniciarse sin errores.

<Check Alignment of PHs>Si no desea eliminar las bibliotecas de /opt/sun/private/lib , también puede poner /opt/sun/appserver/lib antes de /opt/sun/private/lib en LD_LIBRARY_PATH de la secuencia de comandos de Web Server startserv; es decir, sustituir:


# 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 

por:


# 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

Servicios web

En esta sección, se describen problemas conocidos relacionados con el contenedor web, junto con las soluciones pertinentes.

La tarea de ant wsimport falla con Java EE SDK b33d (utilizando JDK 1.6) con NoClassDefFoundError (6527842)

Descripción

Puede que existan problemas al ejecutar las pruebas de JAX—WS con JDK 1.6 incluido con Java EE SDK b33d. Las pruebas se interrumpen inmediatamente con el siguiente mensaje:


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

Este error se produce incluso cuando webservices-tools.jar contiene com/sun/tools/ws/WsImport.class, com/sun/tools/ws/ant/WsImport.class y com/sun/tools/ws/ant/WsImport2.class. Además, el mismo espacio de trabajo de las pruebas funciona sin problemas con 1.5.0-10 JDK.

Solución

Copie el webservices-api.jar a $JAVA_HOME/jre/lib/endorsed antes de ejecutar las pruebas de JAX-WS.

Los comandos publish-to-registry fallan en la construcción IFR EE (6602046)

Descripción

JAXR utiliza SAAJ para enviar mensajes soap al registro. En el caso "no-IFR", las clases SAAJ impl se encuentran en lib/webservices-rt.jar. En el caso IFR, las clases SAAJ todavía están en lib/webservices-rt.jar. Además, saaj-impl.jar se encuentra en el directorio /usr/share/lib. Este archivo jar ha sido elegido por Enterprise Server y tiene prioridad sobre las clases de webservices-rt.jar. Este archivo jar no tiene los permisos de seguridad necesarios para enviar mensajes soap al registro de los servicios web. <Check Alignment of PHs>El empaquetado debería modificarse para conceder permisos a los jars del directorio /usr/share/lib o para no depender de los jars de /usr/share/lib.

Solución

Agregue lo siguiente al archivo server.policy:


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

wscompile falla con error "el paquete javax.xml.rpc no existe" en JDK6 u4 b3 (6638567)

Descripción

La tarea de ant wscompile falla con JDK 6 Update 4. Para cada clase de JAX-RPC API, aparece el siguiente mensaje de error:


package package-name does not exist

Solución

Antes de ejecutar la tarea ant wscompile asegúrese de que se especifica javaee.jar en la ruta de clase, y no j2ee.jar.

Globalización

--

-

--

Descripción

asadmin no funciona después de ejecutar la instalación en el entorno regional español (error 7937)

Solución

Instalar GlassFish en un entorno inglés. Más adelante se puede pasar a español. El error se corregirá en la siguiente versión del parche, en torno a junio del 2009