Notas de la version de Sun GlassFish Communications Server 2.0

Capítulo 4 Limitaciones y problemas conocidos de Sun GlassFish Enterprise Server

En este capítulo se describen los problemas conocidos y las correspondientes soluciones del software Sun GlassFish Enterprise Server 2.1.1. Estos problemas también afectan a Communications Server, basado en Sun GlassFish Enterprise Server 2.1. Si una instrucción de resumen no especifica ninguna plataforma en concreto, el problema 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.

Communications Server no detecta los conflictos con el puerto heartbeat de un clúster (número de problema 1967)

Descripción

Cuando se crea un clúster, Communications Server asigna aleatoriamente un puerto heartbeat entre 1026 y 45556. Para un clúster predeterminado, creado por una instalación de Communications Server, un número aleatorio entre 0 y 45556. El proceso de creación del clúster no detecta con precisión si el puerto heartbeat ya lo está usando otro servicio.

Solución

Si la configuración automatizada de creación de clústeres selecciona un puerto heartbeat que se encuentra en conflicto con otro servicio que ya está utilizando dicho puerto, actualice el puerto heartbeat del clúster a un puerto que no esté usando el sistema.

Para cambiar el puerto heartbeat de un clúster, utilice el siguiente comando asadmin :

asadmin set cluster-name.heartbeat-port= newportnumber

La creación del dominio se detiene en un servidor NFS que se ejecute en Linux de 64 bits (número de problema 1961)

Descripción

El comando asadmin create-domain puede fallar al intentar crear un dominio en un sistema de archivos montados en NFS, con el servidor NFS ejecutándose en Linux de 64 bits.

Solución

No hay una solución conocida.

Se observa una degradación en el rendimiento cuando se gira un archivo de registro de gran tamaño (6718611)

Descripción

Cuando se gira un archivo de registro de gran tamaño, se observa un ligero aumento en el tiempo de respuesta.

Solución

La degradación del rendimiento se puede reducir modificando los valores del límite de rotación del archivo y del límite temporal de rotación del archivo en la configuración de registro. Los valores de estas propiedades dependerán de la aplicación y el entorno.

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

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

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 Application Server con JMX Agent adicional (6200011)

Descripción

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

El archivo .asadmintruststore no está descrito en la documentación (6315957)

Descripción

El archivo .asadmintruststore no se describe en la documentación. 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 Communications Server instancia de clúster es LOCAL. Cuando se instala Communications 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 Communications 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 Communications Server.

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:

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

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 Communications Server, 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

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.

Java DB no se inicia después del reinicio de la máquina o cuando se abre Application 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 Communications 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 Communications 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 Communications Server; por ejemplo:


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

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:

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:

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

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.

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

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 Communications Server 2.0, 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 en el inicio de Application Server (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.

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 servidor no se inicia si no se ha iniciado el agente MQ (6740797)

Descripción

Si configura JMS como REMOTO, Enterprise Server no se inicia si el agente MQ no está iniciado.

Solución

Defina la siguiente opción de JVM del siguiente modo: com.sun.enterprise.jms.CONNECT_MQ_LAZILY=true . Después de establecer esta opción JVM, puede iniciar Communications Server si el agente de MQ no se inicia. Sin embargo, se recomienda que inicie MQ antes de iniciar el servidor.

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 Communications 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 Application Server, se comprueba la versión de Message Queue. Si la versión de Message Queue no es correcta, el servidor se actualiza utilizando el archivo imqjmsra.jar. De este modo, se actualiza JAR y sus clases no estarán disponibles para el servidor hasta que no se vuelva a reiniciar Application Server. 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 Application Server no se inicia.

Solución

Tanto Message Queue como Communications Server deben mantenerse en el mismo nivel de distribución o reiniciar Application Server.

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 que se puede aplicar a Application Server y se deben 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.

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.

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

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 .

Servicios web

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

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.