Notas de la versión de Sun Java System Application Server Enterprise Edition 8.1 2005Q2

Capítulo 3 Limitaciones y problemas conocidos

En este capítulo se describen los problemas conocidos y las soluciones asociadas para el software de Sun Java System Application Server Edición Enterprise 8.1 2005Q2. 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.

ID del error 

Resumen 

6171458 

La secuencia de comandos package-appclient no funciona si domain1 no está presente.

De forma predeterminada, hay un valor codificado en $INSTALL/lib/package-appclient.xml para la variable AS_ACC_CONFIG de domain1 a la 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. Elimine domain1 y sustituya el valor codificado de domain1 en $INSTALL/lib/package-appclient.xml con el nuevo nombre de dominio.

Deberá llevar a cabo este procedimiento cada vez que cree un dominio nuevo si domain1 no está presente.

6196993 

No se puede restaurar con otro nombre un dominio del que se haya hecho una copia de seguridad. 

No es posible duplicar un dominio en la misma instalación de Application Server utilizando los comandos backup-domain y restore-domain porque el dominio no puede restaurarse con un nombre distinto del original, aunque el comando asadmin restore-domain ofrezca la opción de cambiar el nombre del dominio. Parece que el cambio de nombre del dominio del que se ha hecho una copia de seguridad es correcto, pero al intentar iniciar el dominio en cuestión se producen errores porque las entradas de la configuración del dominio no se han cambiado, startserv y stopserv usan el nombre del dominio original para definir las rutas.

Solución

El nombre de dominio utilizado para restore-domain debe ser el mismo que se usó para el comando original backup-domain. Los comandos backup-domain y restore-domain sólo funcionan en Application Server 8.1 para hacer copias de seguridad y restaurar el mismo dominio en la misma máquina.

6200011 

No se admite el inicio de Application Server con un agente JMX adicional. 

J2SE 1.4.x, 5.0 y las versiones posteriores se pueden configurar en Application Server. 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 de Application Server. Un efecto colateral no deseable es que las funciones de administración se ven afectadas negativamente y la consola de administración de Application Server y la interfaz de línea de comandos pueden generar resultados inesperados. El problema es que hay algunos conflictos entre la construcción en jmx-connector y el nuevo servidor de 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 Application Server.

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 la Administration Guide.

6206176 

En UNIX, los permisos de ejecución excesimavemente restrictivos de Application Server inician y detienen las secuencias de comandos. 

Si ejecuta el comando asadmin restore-domain cuando haya iniciado una sesión como usuario "A", las secuencias de comandos se finalizarán con permisos 744 (rwxr--r-- ). Si, posteriormente, intenta iniciar o detener un dominio utilizando el usuario "B" (incluso aunque "B" sea root), se producirá un error, ya que las secuencias de comandos sólo podrán ser ejecutadas por el usuario "A".

Solución

Cambie los permisos de las secuencias de comandos:  


chmod 755 appserv/domains/domain-name/bin/*

6236544, 6275436 

El archivo de configuración del equilibrador de carga no se crea con la dirección URL de punto final de ningún servicio Web. 

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.

6288893 

Si se reinicia Application Server mediante sun-appserv-admin, se genera un error LoginException.

Solución

  1. Cambie el nombre de la secuencia de comandos <as_install> /bin/asant existente por asant.bak.

  2. Copie el archivo asant.template ubicado en <as_install> /lib/install/templates/ee (para la versión SE/EE version) en el directorio <as_install>/bin/ y cambie el nombre del archivo asant.

  3. Edite la secuencia de comandos <as_install> /bin/asant que acaba de copiar sustituyendo el token %CONFIG_HOME% por <as_install>/config.

  4. Si se ha efectuado algún cambio manual en el archivo asant.bak original, combínelo con la nueva secuencia de comandos asant.

6315957 

El archivo .asadmintruststore no se describe en la documentación de Application 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

  • Si el posible, el usuario que instaló el servidor debería ejecutar el comando asadmin start-domain domain1.

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

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

6407140 

Las instancias del servidor iniciadas con start-node-agent no presentan el contenido de sincronización más reciente.

El comando asadmin start-node-agent inicia automáticamente las instancias del servidor remoto sin sincronizarlas con DAS.

Solución:

Si está iniciando una instancia del servidor remoto sincronizada con el depósito central administrado por DAS, especifique la opción --startinstances=false con el comando asadmin start-node-agent. A continuación, utilice el comando asadmin start-instance para iniciar la instancia del servidor remoto.

6654726 

La función de la Consola de administración que permite seleccionar conjuntos de cifrados no funciona correctamente. Al seleccionar la opción "Admitir todos los conjuntos de cifrados" de las escuchas HTTP, se desactivan las casillas de verificación, pero se vuelven a activar una vez actualizada la página, incluso aunque se haya marcado la casilla "Admitirtodos...". Aunque parezca que existe un problema, una vez introducido el alias del certificado y después de hacer clic en "Guardar", los cambios se escribirán en la configuración.  

Solución:

No se necesita ninguna acción. Los cambios se han guardado. 

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.

ID del error 

Resumen 

6306784 

La guía de administración de alta disponibilidad contiene instrucciones incorrectas para usar openssl con Apache.

Solución

Cuando compile y cree openssl, ejecute los siguientes comandos:

cd openssl-0.9.7e

config

make

Además, para Apache 1.3, el nombre del directorio del origen mod_ssl variará en función de la versión de Apache que se use. Por ejemplo, para Apache 1.3.33, el nombre es mod_ssl-2.8.22-1.3.33.

6307976 

La guía de administración de alta disponibilidad no contiene instrucciones para usar un certificado de Apache 2.0. 

Solución

Para ejecutar la seguridad de Apache, debe usar un certificado. Para conocer cómo se obtiene un certificado de una entidad emisora de certificados, consulte la información sobre los certificados que figura en modssl FAQ.

6308021 

Debe iniciar Apache Web Server como root. 

Solución

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.

6308043 

Adición a las instrucciones de uso de openssl con Apache Web Server 2.0 en Solaris.

Después de instalar Apache 2.0 y el complemento del equilibrador de carga, edite ssl.conf and sll-std.conf de la siguiente forma:

Sustituya la línea: 

<VirtualHost _default_:9191>

por 

<VirtualHost machine_name:9191>

donde machine_name es el nombre de su equipo y 9191 es el número del puerto de seguridad.

Cliente de la aplicación

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

ID del error 

Resumen 

6193556 

La biblioteca JAR incluida en el archivo del cliente de aplicación sobrescribe el archivo MANIFEST. 

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. 

6373043 

Ya no se admiten las tecnologías de contenido dinámico como, por ejemplo, CGI-bin y SHTML. 

Solución:

En su lugar, utilice las tecnologías de servicios web y JSP. 

Controladores JDBC de Sun integrados

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

ID del error 

Resumen 

6165970 

Es posible que se bloqueen las aplicaciones que utilizan el nivel de aislamiento TRANSACTION_SERIALIZABLE con el controlador de Sun integrado para Microsoft SQL Server cuando se utiliza una instrucción preparada para actualizar, en caso de que se estén llevando a cabo dos transacciones paralelas y una de ellas se deshaga.

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 guía de administración para obtener información sobre cómo configurar los conjuntos de conexiones. 

Solución

Ninguna por ahora. 

6170432 

Errores de PreparedStatement.

Descripción nº 1

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

[sunm][DB2 JDBC Driver] No more available statements.. Please recreate your package with a larger dynamicSections value.

Solución 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 Administration Guide para obtener información sobre cómo configurar los conjuntos de conexiones.

Descripción 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 nº 2

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

Descripción 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 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 Administration Guide para obtener más instrucciones.

6189199 

Surgen problemas al establecer el nivel de aislamiento con el controlador de Sun integrado para Sybase Adaptive Server. 

  • Es posible que se bloqueen las aplicaciones que utilizan el nivel de aislamiento TRANSACTION_SERIALIZABLE con el controlador de Sun integrado para Sybase Adaptive Server cuando se utiliza una instrucción preparada para actualizar, en caso de que se estén llevando a cabo dos transacciones paralelas y una de ellas se deshaga. El proceso para deshacer la conexión falla y se muestra el siguiente mensaje. Las conexiones deshechas no se pueden utilizar nunca más:

    java.sql.SQLException: [sunm][Sybase JDBC Driver]Request cannot be submitted due to wire contention

  • Sybase Adaptive Server no es compatible con el nivel de aislamiento TRANSACTION_REPEATABLE_READ . No obstante, al realizar una consulta en DatabaseMetaData, el controlador integrado de Sun indica que dicho nivel de aislamiento sí es compatible con la base de datos. Las aplicaciones que utilizan este nivel de aislamiento fallarán.

  • Las aplicaciones que usan el controlador integrado de Sun no pueden establecer el nivel de aislamiento TRANSACTION_READ_UNCOMMITTED. La aplicación desencadena la siguiente excepción en el primer acceso de DataBaseMetaData:

    java.sql.SQLException: [sunm][Sybase JDBC Driver][Sybase]The optimizer could not find a unique index which it could use to perform an isolation level 0 scan on table 'sybsystemprocs.dbo.spt_server_info'.

Solución

Ninguna por ahora. 

6247468 

En Solaris 10 y Enterprise Linux 3.0, el controlador Oracle JDBC integrado en Sun no permite la creación de una conexión. 

Solución

Defina la siguiente propiedad en el conjunto de conexiones de JDBC cuando use el origen de datos de Oracle SUN JDBC (com.sun.sql.jdbcx.oracle.OracleDataSource):

<property name="serverType" value="dedicated"/>

El valor de la propiedad depende del modo en que esté configurado el módulo de escucha del servidor Oracle. Si está configurado en el modo "compartido", el valor de arriba deberá cambiarse a "dedicado". 

6554602 

A partir de la versión 10.2 de los controladores JDBC, si se tienen varios archivos jar de JDBC en CLASSPATH, es posible que se produzca una excepción, java.lang.SecurityException: Sealing violation exception.

Se proporciona información detallada en el siguiente Id. de documento de Oracle: 

Nota: 405446
Asunto: el controlador JDBC 10.2 utiliza archivos JAR sellados y puede provocar 
una excepción de seguridad
relacionada con una infracción de sellado.

Solución:

(Recomendación de Oracle) Asegúrese de que CLASSPATH incluya sólo el archivo JAR del controlador JDBC.

Conectores

En este apartado se describen los problemas conocidos relacionados con la arquitectura del conector J2EE y las soluciones asociadas.

ID del error 

Resumen 

6188343 

Después de reiniciar la instancia DAS, la anulación de la implementación del módulo del conector falla cuando la opción de cascada está definida en false. 

En esta situación, un módulo de conector independiente o integrado está implementado en DAS y los conjuntos de conexiones del conector y los recursos se crean para el módulo implementado. Después de reiniciar la instancia DAS, la anulación de la implementación del módulo del conector falla cuando la cascada se establece como false con la siguiente excepción: 

[#|2004-10-31T19:52:23.049-0800|INFO|sun-appserver-ee8.1|javax.enterprise.system .core|_ThreadID=14;|CORE5023: Error while unloading application [foo]|#].

Solución

Use la anulación de implementación en cascada (establezca la opción cascade en true) para anular la implementación de los conectores integrados e independientes después de reiniciar la instancia DAS. 

Documentación

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

ID del error 

Resumen 

Varios ID 

Incoherencias de Javadoc. 

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

  • Los métodos Getter para las estadísticas NumConnAcquired y NumConnReleased no están incluidos en ConnectorConnectionPoolStats y AltJDBCConnectionPoolStats. Dichos métodos se agregarán en una próxima versión con los nombres getNumConnAcquired() y getNumConnReleased().

  • Si intenta ejecutar los siguientes métodos en EJBCacheStats, se desencadenará una excepción: getPassivationSuccesses(), getExpiredSessionsRemoved(), getPassivationErrors()y getPassivations(). Este error se solucionará en una futura versión.

  • AMX MBeans necesitan varios segundos después de que se inicie el servidor para registrarse y estar disponibles para su uso. En una versión futura será posible determinar si los AMX MBeans están totalmente cargados.

  • La constante XTypes.CONNNECTOR_CONNECTION_POOL_MONITOR está mal escrito ("NNN"). Este error se solucionará en una futura versión.

6265624 

ANT integrado desencadena java.lang.NoClassDefFoundError.

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 Application Server.  

6486123 

La documentación sobre cómo obtener una conexión física desde una conexión ajustada ya no es correcta. 

A consecuencia de otros errores (posiblemente 6295215), el código proporcionado en la sección Obtaining a Physical Connection from a Wrapped Connection de Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Developer’s Guide del Capítulo 11, Using the JDBC API for Database Access de Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Developer’s Guide no es correcto. En concreto, la línea siguiente:


Connection drivercon = ds.getConnection(con);

debería indicar:  


Connection drivercon = ((com.sun.gjc.spi.DataSource)ds).getConnection(con);

Alta disponibilidad

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

ID del error 

Resumen 

Sin ID 

Configuración de HADB con redes dobles. 

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: 

  • En Linux, algunos de los procesos de HADB se bloquean al enviar mensajes. Esto hace que el nodo de HADB se reinicie y se produzcan particiones en la red.

  • En Solaris x86, pueden surgir algunos problemas después de un fallo de red que impidan cambiar a otras interfaces de red. Esto no sucede siempre, por lo que sigue siendo mejor tener dos redes que una sola. Estos problemas se han resuelto parcialmente en Solaris 10.

  • No se admite el truncamiento.

  • HADB no admite el uso de redes dobles en Windows 2003 (ID 5103186).

Sin ID 

Falla la creación de la base de datos HADB. 

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.

5052548 

Hay segmentos de memoria compartida bloqueados y no se pueden eliminar. 

HADB 4.3-0.16 y posterior se configura para utilizar la memoria compartida privada al crearse y adjuntarse a sus segmentos de memoria compartida (utiliza el indicador SHM_SHARE_MMU ). El uso de este indicador básicamente bloquea los segmentos de memoria compartida en la memoria física e impide que se eliminen. Esto puede fácilmente provocar problemas con instalaciones en equipos finales lentos.

Por tanto, si un programador tiene un equipo con 512 MB de memoria y mucho espacio de intercambio disponible al utilizar Application Server7.0 EE y, a continuación, instala 7.1 EE o posterior, tendrá problemas al configurar el clúster predeterminado clsetup, que crea dos nodos HADB, cada uno con un tamaño, devicesize, de 512, que da lugar a que no haya suficiente RAM física para soportar la memoria compartida que ambos nodos necesitan.

Solución:

Asegúrese de que dispone de la cantidad recomendada de memoria al ubicar de forma conjunta Application Server y HADB. Consulte Requisitos de HADB y plataformas compatibles para obtener más información.

5091280 

hadbm set no comprueba la disponibilidad de los recursos (espacio de memoria y disco).

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.

5091349 

No se admiten las rutas heterogéneas para packagepath.

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.

6173886, 6253132 

createdomain puede que falle.

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 repositorio (se identifican mediante 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.

6190878 

Es necesario limpiar los directorios tras la eliminación de una instancia de HADB. 

Una vez eliminada una instancia de HADB, fallarán los intentos siguientes de crear nuevas instancias con el comando configure-ha-cluster. El problema es que los antiguos directorios permanecen en la instancia de HADB original en ha_install_dir/rep/* y ha_install_dir/config/hadb/instance_name .

Solución:

Asegúrese de que elimina manualmente estos directorios tras eliminar una instancia de HADB. 

6230792, 6230415 

El inicio, la detención y la reconfiguración de HADB pueden fallar o generar bloqueos. 

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. 

6232140 

El agente de administración termina con la excepción "IPV6_MULTICAST_IF failed".

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. 

6249685 

clu_trans_srv no se puede interrumpir.

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 termine en modo sin interrupción cuando se realiza una E/S asíncrona. Esto significa que kill -9 no funciona y el sistema operativo debe reiniciarse.

Solución

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

6262824 

hadbm no admite contraseñas que contengan letras mayúsculas.

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. 

6265419 

Retroceder en las versiones de HADB 4.4.2.5 a HADB 4.4.1.7 hace que ma falle con distintos códigos de error. 

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. 

6271063 

Instalación, eliminación y conservación de symlink.

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

6273681 

Es posible que interfieran los agentes de administración en las zonas locales y globales. 

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. 

6275103 

hadbm/ma debería generar un mensaje de error más claro cuando un objeto de sesión ha caducado y se ha eliminado de MA.

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

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. 

6275319 

Los usuarios que no son root no pueden administrar HADB. 

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. 

6293912 

El agente de administración no debería usar interfaces especiales. 

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.

6291562 

Errores de reensamblaje en Windows. 

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 el artículo 811003 en las páginas de asistencia técnica de Microsoft.

6303581, 6346059, 6307497 

Al ejecutar hadbm start <db_name>, parte de la contraseña introducida se muestra sin ocultar.

Es posible que, cuando un equipo esté realizando una carga, el mecanismo de ocultación falle y se expongan algunos caracteres de la contraseña introducida. Esto representa un riesgo de seguridad menor y la contraseña debería estar siempre oculta. 

Solución:

Guarde las contraseñas en sus propios archivos de contraseñas (el método recomendado normalmente desde Application Server 8.1) y consúltelas con las opciones --adminpassword o --dbpasswordfile.

Instalación

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

ID del error 

Resumen 

5009728 

Al cerrar la instalación, algunos sistemas Linux se quedan bloqueados tras hacer clic en el botón Finish (Finalizar). 

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

6199697 

En Windows, el directorio imq debe crearse durante la instalación. 

En Windows, justo después de instalar Application Server Enterprise Edition, 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

6297837 

El instalador de Application Server muestra una fecha de versión del producto incorrecta en el nombre del producto, "Sun Java(TM) System Application Server Enterprise Edition 8.1 2005Q4". 

Solución

El nombre y la fecha del producto correctos son "Sun Java(TM) System Application Server Enterprise Edition 8.1 2005Q2". 

6396045 

Application Server no admite el Sistema de archivos de red (NFS). 

Solución

None (Ninguna). 

Tutorial J2EE

Para ejecutar el tutorial de J2EE 1.4 en Sun Java System Application Server Edición Enterprise 8.1 2005Q2, lleve a cabo estas tareas:

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.

ID del error 

Resumen 

6193449 

Después de configurar la propiedad de ejb-timer-service "minimum-delivery-interval" en 9000, cualquier intento por definir la propiedad redelivery-interval-in-mills de ejb-timer-service en 7000 provoca que el comando "set" falle y muestre 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.
  • minimum-delivery-interval es el intervalo mínimo de duración entre las entregas del mismo temporizador periódico.

  • redelivery-interval-in-mills es el tiempo que debe esperar el servicio del temporizador para volver a intentar la entrega después de que se haya producido un fallo en ejbTimeout.

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 Application Server para verificar que el valor de redelivery-interval-in-millis es mayor que el 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. 

Registro

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

ID del error 

Resumen 

6180095 

La definición de la instrucción para access,failure provoca que Application Server se bloquee en el inicio.

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


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

Ninguna por ahora. Evite configurar este indicador. 

Message Queue

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

ID del error 

Resumen 

6173308, 6189645, 6198481, 6199510, 6208728 

Las reconexiones de JMS no se completan correctamente en ciertos casos que dependen de temporizadores. 

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: 

  • Reinicie los agentes involucrados

  • Reinicie las instancias involucradas de Application Server

6198465 

El comportamiento del dispositivo de escucha de mensajes asíncrono ha cambiado en appclient de la versión 8.0 a 8.1 Update 2.

Debido a un cambio reciente, cuando una escucha de mensaje asíncrono es el único subproceso activo en el contenedor app-client, el resto de la máquina virtual (VM) appclient existe en forma de daemon. Este comportamiento supone un regreso para las aplicaciones anteriores que realizaban recepciones asíncronas en ACC. Este problema afecta a los clientes de la aplicación que configuran un módulo de escucha de mensajes JMS y salen del subproceso principal.

Solución

No salga del subproceso principal. Espere a que la escucha del mensaje informe al subproceso principal antes de detenerlo. 

Supervisión

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

ID del error 

Resumen 

6174518 

Algunas de las estadísticas de supervisión de servicios HTTP no presentan información útil y hay que hacer caso omiso de ellas. 

Al visualizar las estadísticas de supervisión de algunos elementos en el servicio HTTP, algunos valores que se presentan no se corresponden con los valores reales o se muestran siempre como 0. Específicamente, las siguientes estadísticas de servicio HTTP no muestran información aplicable para Application Server y, en consecuencia, hay que hacer caso omiso de ellas: 

  • http-service

    load1MinuteAverage

    load5MinuteAverage

    load15MinuteAverage

    rateBytesTransmitted

    rateBytesReceived

  • pwc-thread-pool (the element)

Solución

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

6191092 

No se ha eliminado la supervisión MBean para un módulo EJB, a pesar de que todas las estadísticas relacionadas con este nombre de supervisión se han movido. 

Por ejemplo:  


EJBModuleMonitorMap().size() = 1  eventhough ejb module is
undeployed EJBModuleMonitor().getName() = sqe_ejb_s1_01

Este hecho es verdadero para aplicaciones y módulos EJB. Desde el punto de vista de la programación (mediante MBeanAPI) y mediante asadmin list/get, sigue existiendo todavía un MBean de supervisión vacío.

Diagnóstico


asadmin list -m "server.applications" shows the following output:
server.applications.MEjbApp
server.applications.__ejb_container_timer_app
server.applications.adminapp
server.applications.admingui
server.applications.com_sun_web_ui
server.applications._export_install_nov-11_domains_domain1_applications
_j2ee-modules_sqe_ejb_s1_01

Puede consultar las estadísticas:  


bin/asadmin list -m "server.applications._export_install_nov-11_domains
_domain1_applications_j2ee-modules_sqe_ejb_s1_01"
server.applications._export_install_nov-11_domains_domain1_applications_
j2ee-modules_sqe_ejb_s1_01.SQEMessage
server.applications._export_install_nov-11_domains_domain1_applications_
j2ee-modules_sqe_ejb_s1_01.TheGreeter

Una vez que anule la implementación:  


_export_install_nov-11_domains_domain1_applications_j2ee-modules_sqe_
ejb_s1_01

Si ejecuta un comando de enumeración, seguirá viendo la aplicación:  


asadmin list -m "server.applications"
server.applications.MEjbApp
server.applications.__ejb_container_timer_app
server.applications._export_install_nov-11_domains_domain1_applications_
j2ee-modules_sqe_ejb_s1_01
server.applications.adminapp
server.applications.admingui
server.applications.com_sun_web_ui

pero no contiene estadísticas de supervisión:  


asadmin list -m "server.applications._export_install_nov-11_domains_
domain1_applications_j2ee-modules_sqe_ejb_s1_01"
Nothing to list at server.applications.-export-install-nov-11-domains-
domain1-applications-j2ee-modules-sqe-ejb-s1-01.

Para obtener los nombres válidos que comiencen por una cadena, utilice el carácter comodín ("` *"). Por ejemplo, para enumerar los nombres de todas las entidades que se pueden supervisar que comiencen por server, use list "server.*".

Solución

Es un problema inocuo. El módulo se puede volver a implementar con seguridad sin que se produzcan problemas. La supervisión raíz Mbean no se elimina, sino que se queda vacía. 

PointBase

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

ID del error 

Resumen 

6184797 

Al definir los niveles de aislamiento de un conjunto de conexiones para una aplicación se genera una excepción en PointBase. 

En el caso de un conjunto de conexiones JDBC que señale a una instalación de base de datos PointBase, al definir el atributo transaction-isolation-level pool en cualquier valor distinto del predeterminado (Connection.TRANSACTION_READ_COMMITTED) se generará una excepción. Sin embargo, si establece este mismo parámetro en un valor que no sea el predeterminado para los conjuntos que hacen referencia a otras bases de datos, no se producirá ninguna excepción.

Solución

En el caso de los conjuntos de conexiones JDBC que hacen referencia a una instalación de base de datos PointBase, no intente configurar la opción transaction-isolation-level.

6204925 

PointBase desencadena una excepción si un servidor de red y los controladores integrados se utilizan conjuntamente. 

En ocasiones, la aplicación PointBase integrada desencadena una excepción si el controlador del servidor de red y el controlador integrado se utilizan simultáneamente. 

Solución

Use el controlador integrado o uno de red, pero no los dos juntos. 

6264969, 6275448 

Se producen problemas de actualización cuando se sobrescribe la base de datos predeterminada de PointBase.  

Al actualizar a Application Server Edición Enterprise 8.1 2005Q2 Actualización 2, la revisión de la versión de actualización sobrescribe la base de datos predeterminada de Pointbase. 

Solución

Vuelva a crear o a introducir los esquemas o los datos que existían antes de la actualización. Si ha implementado aplicaciones con Beans CMP con la opción para generar tablas, deberá anular la implementación o volver a implementar la aplicación para que se vuelvan a generar las tablas. 

Ejemplos

En esta sección, se describen problemas conocidos relacionados con el código de ejemplo incluido en el producto Application Server 8.1.

ID del error 

Resumen 

6195092 

En Windows, al usar el comando setup-one-machine-cluster se produce un bloqueo, pero funciona en Solaris; el comando mqfailover requiere que se pulse Ctrl+C para cancelar el proceso. A continuación, se debe volver a realizar la ejecución.

Desde install_dir\samples\ee-samples\failover\apps\mqfailover\docs\index.html, si se ejecutan los siguientes comandos:

  • Consola 1


    cd install_dir\samples\ee-samples asant start-mq-master-broker1
  • Consola 2


    cd install_dir\samples\ee-samples asant start-mq-cluster-broker1
  • Consola 3


    cd install_dir\samples\ee-samples asant start-mq-cluster-broker2
  • Consola 4


    cd install_dir\samples\ee-samples asadmin start-domain domain1

Si ya ha ejecutado asant setup-one-machine-cluster-without-ha o asant setup-one-machine-cluster-with-ha para otro ejemplo de Enterprise Edition, ejecute asant configure-mq o bien asant setup-one-machine-cluster-and-configure-mq. En este caso, el comando parece que se ejecuta correctamente:


start_nodeagent: [echo] Start the node agent cluster1-nodeagent
[exec] Command start-node-agent executed successfully.

Pero el sistema se bloquea definitivamente. 

Solución

Ninguna por ahora. Este problema afecta de forma parecida a todos los ejemplos de Enterprise Edition que utilizan este destino ant en Windows. Una solución consiste en pulsar Ctrl+C para cancelar el proceso y luego volver a ejecutarlo.

6198003 

La documentación no indica de forma explícita que es necesario crear recursos de JMS antes de ejecutar la Aplicación de muestras de errores de MQ siguiendo las instrucciones de implementación de asadmin.

El error que se produce es el siguiente:  


/opt/SUNWappserver/domains/domain1/config/sun-acc.xml -name
MQFailoverTestClient -textauth -user j2ee -password j2ee
Nov 18, 2004 10:50:17 PM com.sun.enterprise.naming.NamingManagerImpl
bindObjects
SEVERE: NAM0006: JMS Destination object not found: jms/durable/TopicA
Nov 18, 2004 10:50:18 PM com.sun.enterprise.naming.NamingManagerImpl
bindObjects
SEVERE: javax.naming.NameNotFoundException
javax.naming.NameNotFoundException

La documentación no indica explícitamente que los recursos JMS se deban crear manualmente si se lleva a cabo una implementación manual utilizando comandos asadmin deploy ni que haya que usar los destinos Ant especificados para implementar la aplicación de ejemplo.

Solución

Use el destino de implementación asant para la secuencia de comandos build.xml, lo que crea los recursos JMS necesarios para ejecutar la aplicación.

6198239 

En Linux, se muestra un error de tiempo de ejecución durante la creación de certificados en los ejemplos de seguridad/servicios Web. 

Cuando se implementa el ejemplo install_dir/samples/webservices/security (basicSSl) en Linux, el certificado no se crea y se muestra un error similar al siguiente:


generate_certs: [echo] ***Exporting certificate from NSS database
[exec] Result: 1 [echo] ***Generating Java Keystore from generated
certificate [exec] keytool error: java.lang.Exception: Input not an
X.509 certificate [exec] Result: 1 [echo] ***Generating Java trust
store from generated certificate [exec] keytool error: java.lang.
Exception: Input not an X.509 certificate [exec] Result: 1
.
.
.
generate_certs: [echo] ***Exporting server certificate from NSS database to
a PKCS12 certificate file [exec] /opt/sun/appserver/lib/pk12util: /usr/lib/
libnss3.so: version `NSS_3.9' not found (required by /opt/sun/appserver/lib/
pk12util) [exec] /opt/sun/appserver/lib/pk12util: /usr/lib/libnss3.so:
version `NSS_3.6' not found (required by /opt/sun/appserver/lib/pk12util)
[exec] /opt/sun/appserver/lib/pk12util: /usr/lib/libnss3.so: version
`NSS_3.7' not found (required by /opt/sun/appserver/lib/pk12util) [exec]
Result: 1

El problema es que la ubicación de las bibliotecas NSS es distinta en Linux y en Solaris. Debe asegurarse de que LD_LIBRARY_PATH señale a las bibliotecas NSS adecuadas a la hora de realizar la implementación en Linux. Defina LD_LIBRARY_PATH en su entorno o bien ajuste la secuencia de comandos del empaquetador del shell install_dir/bin/asant.

Solución

Lleve a cabo una de las siguientes acciones: 

  • Configure LD_LIBRARY_PATH=/opt/sun/private/lib.

  • Agregue la siguiente línea a la secuencia de comandos install_dir /bin/asant.


    LD_LIBRARY_PATH=$AS_NSS:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH

Seguridad

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

ID del error 

Resumen 

6183318 

No se pueden ejecutar aplicaciones WebServiceSecurity en Enterprise Edition con J2SE 5.0.

Las aplicaciones WebServiceSecurity no se pueden ejecutar con J2SE 5.0 por los siguientes motivos:

  • J2SE 5.0 PKCS11 no es compatible con el modo UNWRAP

  • J2SE 5.0 PKCS11 no admite RSA/ECB/OAEPWithSHA1AndMGF1Padding con PKCS11

El equipo de J2SE ha indicado acerca de este error que se agregue compatibilidad para los mecanismos de empaquetado y desempaquetado RSA-PKCS1 y RSA-OAEP (CR 6190389). 

Solución

Use J2SE 1.4.2 con cualquier otro proveedor JCE (no el que se incluye de forma predeterminada). Tenga en cuenta que la compatibilidad con el acelerador de hardware no está presente en esta configuración. 

6269102 

El proceso de finalización de SSL no funciona; cuando se configura el equilibrador de carga (hardware) para la finalización de SSL, Application 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 Application Server. 

Utilidad de actualización

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

ID del error 

Resumen 

6165528 

Los dominios creados en una ruta personalizada distinta del directorio install_dir /domains no se actualizan directamente al actualizar de Application Server Enterprise Edition 8 a Application Server Enterprise Edition 8.1.

Al ejecutar la utilidad de actualización e identificar install_dir como el directorio de instalación de origen, el proceso de actualización actualiza sólo los dominios que se crean en el directorio install_dir/domains. Los dominios creados en otras ubicaciones no se actualizan.

Solución

Antes de iniciar el proceso de actualización, copie todos los directorios del dominio desde sus ubicaciones en el directorio install_dir/domains .

6207337 

En algunos sistemas Linux, el instalador que realiza una actualización "in situ" falla al iniciar la herramienta de actualización después de iniciar el asistente de actualizació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:


    install_dir/bin/asupgrade --source install_dir/domains --target
    install_dir --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://install_dir/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. 

6296105 

El certificado autofirmado no se considera de confianza al actualizar de 8.0 Platform Edition (PE) a 8.1 Enterprise Edition (EE) UR2 y después de la actualización. 

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>

Contenedor web

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

ID del error 

Resumen 

5004315 

En Windows, si implementa una aplicación usando --precompilejsp=true, es posible que los archivos JAR se bloqueen, lo que provocará errores si en el futuro desea volver a implementar o anular la implementació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. 

6172006 

No se puede implementar WAR con un archivo web.xml basado en Servlet 2.4 que contenga un elemento <load-on-startup> vacío.

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.

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

6184122 

No se puede compilar la página JSP en servidores con restricciones de recursos. 

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: 

  • Globalmente, al configurar el parámetro fork init de JspServlet en ${S1AS_HOME}/domains/domain1/config/default-web.xml en false:


    <servlet> <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    .... <init-param>
    <param-name>fork</param-name> <param-value>false</param-value>
    </init-param> .... </servlet>
  • En cada aplicación web, configurando la propiedad de configuración JSP fork de sun-web.xml en false:


    <sun-web-app> <jsp-config> <property name="fork" value="false" />
    </jsp-config> </sun-web-app>

Las dos configuraciones impedirán que ant genere nuevos procesos para la compilación javac. 

6188932 

Application Server no admite el complemento auth-passthrough de Web Server 6.1.

Sun Java System Application Server Edición Enterprise 8.1 2005Q2 Actualización 2 agrega compatibilidad para la función proporcionada por la función del complemento auth-passthrough que está disponible con Sun Java System Application Server Edición Enterprise 7.1. Sin embargo, en Application Server Edición Enterprise 8.1 2005Q2 Actualización 2, la función del complemento auth-passthrough está configurada de forma diferente.

La función del complemento auth-passthrough en Application Server Edición Enterprise 7.1 ha resultado útil en situaciones de implementación de dos capas:

  • La instancia de Application Server está protegida por un segundo servidor de seguridad detrás del servidor de seguridad corporativo.

  • No se permiten conexiones de clientes directamente a la instancia de Application Server:

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.

En Application Server Edición Enterprise 7.1, la función del complemento auth-passthrough se puede configurar en la instancia de Application Server que actúa como proxy para hacer que la información de los clientes remotos esté disponible directamente para todas las aplicaciones implementadas; de esta forma, el funcionamiento es como si la instancia de Application Server que actúa de proxy hubiera recibido la solicitud directamente en lugar de a través del servidor web intermediario que ejecuta el complemento service-passthrough.

En Application Server Edición Enterprise 8.1 2005Q2 Actualización 2, la función auth-passthrough puede activarse definiendo la propiedad authPassthroughEnabled del elemento <http-service> de domain.xml en TRUE de la siguiente forma:


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

 

Las mismas consideraciones de seguridad de la función del complemento auth-passthrough de Application Server Edición Enterprise 7.1 se aplican también a la propiedad authPassthroughEnabled de Application Server Edición Enterprise 8.1 2005Q2 Actualización 2. Como, con authPassthroughEnabled , es posible sustituir la información que se podría utilizar para propósitos de autenticación (como la dirección IP desde la que se origina la solicitud o el certificado SSL de cliente), es esencial que sólo los clientes o los servidores de confianza puedan conectarse a la instancia de Application Server Edición Enterprise 8.1 2005Q2 Actualización 2 con el comando authPassthroughEnabled definido como TRUE (verdadero). 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 plugin service-passthrough y éste reenvíe solicitudes a una instancia de Application Server 8.1 Update 2 con authPassthroughEnabled definida como TRUE, la autenticación SSL de cliente puede habilitarse en el servidor web proxy y deshabilitarse en la instancia de Application Server 8.1 Update 2 que actúe de proxy. En este caso, la instancia de Application Server 8.1 Update 2 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.