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

- Previous: Capítulo 1 Visión general
- Next: Capítulo 3 Limitaciones y problemas conocidos

# Capítulo 2 Acerca de Application Server Edición Enterprise 8.1 2005Q2

Sun Java System Application Server Edición Enterprise 8.1 2005Q2 Actualización 2 es un servidor compatible con la plataforma J2EE 1.4 para el desarrollo y la implementación de aplicaciones J2EE y servicios Web basados en tecnologías Java en entornos de producción a gran escala.

En este capítulo se incluyen los temas siguientes:

- Novedades de la versión 8.1 2005Q2 Actualización 2

- Requisitos de hardware y software

- Errores solucionados en la versión Edición Enterprise 8.1

- Errores solucionados en la versión 8.1 Update 2

- Información adicional sobre HADB

- Versiones de productos de Application Server

- Problemas de compatibilidad

- Compatibilidad con J2EE

- Alto rendimiento

- Escalabilidad

- Compatibilidad con JavaServer Faces 1.1

# Novedades de la versión 8.1 2005Q2 Actualización 2

Application Server Edición Enterprise 8.1 2005Q2 Actualización 2 incluye las siguientes mejoras:

- Administración mejorada: Application Server admite la administración segura y remota de implementaciones de empresa complejas en varios equipos mediante una consola basada en explorador o una interfaz de línea de comandos que permita la inclusión de secuencias de comandos. También proporciona una API enriquecida basada en JMX que permite el acceso remoto, seguro y programado a funciones administrativas y de supervisión.

- Agente de mensajes: Application Server incluye un agente integrado de mensajes de clase empresarial que proporciona un servicio de mensajería escalable y fiable, de alta disponibilidad y rendimiento.

- Mayor compatibilidad con plataformas: ahora se admiten sistemas operativos, bases de datos, hardware y configuraciones regionales adicionales.

- Sun Java Enterprise System: como componente clave de Sun Java Enterprise System, Application Server ofrece una integración sólida con servicios de identidades de red y de portal.

- Herramientas de migración y actualización: estas herramientas le permiten comprobar si las aplicaciones J2EE se ajustan a los estándares de conformidad y portabilidad; le ayudan con la migración desde otras instancias de J2EE Application Server (como JBoss, WebLogic, WebSphere, etc.), así como a actualizar versiones previas de Sun ONE Application Server o iPlanet Application Server.

- Compatibilidad con Java 2 Standard Edition 5.0: Application Server es compatible con Java 2 Standard Edition 5.0, que incluye funciones de supervisión y administración mejoradas, así como otros avances en cuanto a rendimiento y escalabilidad.

- Compatibilidad con los complementos Java Web Services Developer Pack 1.6 (JWDSP): ahora se admite el uso de todos los complementos JWSDP. JWSDP 1.6 se puede descargar gratis desde `http://java.sun.com/webservices/downloads/1.6/index.html`.

- Controladores JDBC: con Application Server se incluyen controladores Sun JDBC.

- Seguridad en los servicios web: los mecanismos de seguridad de mensajes de contenedores implementan autenticación a nivel de los mensajes (por ejemplo, firma digital XML y cifrado) de invocaciones de servicios web SOAP utilizando los perfiles de nombre de usuario o contraseña X.509 del estándar de seguridad OASIS WS-Security.

- WS-I Basic Profile 1.1: tal y como establece la especificación J2EE 1.4, esta versión incluye Web Services Interoperability (WS-I) Basic Profile 1.1 para hacer posible la interoperabilidad entre aplicaciones de servicios web.

- Conectividad con servicios secundarios mediante adaptadores iWay: Sun Microsystems distribuye y admite ahora 22 adaptadores iWay para los sistemas de servicios secundarios fundamentales (SAP, Siebel, Oracle, CICS e IBM MQ Series) que permitirán obtener un mayor rendimiento de sus aplicaciones de TI existentes desde el entorno de Application Server. Estos adaptadores son compatibles con la especificación J2EE Connector Architecture 1.5 y los estándares de los servicios web (SOAP). Además, incluyen herramientas de desarrollador para reducir el tiempo de conexión con las aplicaciones secundarias.

- Último sistema de administración HADB: las plataformas UNIXTM contienen el nuevo sistema de administración de bases de datos de alta disponibilidad (HADB versión 4.4.2–7), que incluyen Database Server, el controlador ODBC 2.5, el controlador JDBC 3.0 de tipo 4, `clusql` (un programa interactivo para introducir y ejecutar instrucciones SQL) y un sistema de administración. En esta versión se elimina la dependencia de SSH/RSH, pero se requiere que la red esté configurada para la multidifusión UDP. Consulte Sun Java System Application Server Enterprise Edition 8.1 2005Q2 High Availability Administration Guide para obtener información sobre los requisitos y las limitaciones de HADB.

- Compatibilidad con las zonas de Solaris 10: Application Server puede instalarse en una zona global o no global en los sistemas Solaris 10. Consulte la página dezonas de Solaris para obtener más información.

# Requisitos de hardware y software

En este apartado se describen los requisitos que se deben cumplir para poder instalar el producto Sun Java System Application Server Edición Enterprise 8.1.

- Requisitos de plataforma

- Información importante sobre revisiones del producto

- Bases de datos y controladores JDBC

- Configuración de Oracle

- Configuración de PointBase

- Servidores web

- Navegadores

- Requisitos de HADB y plataformas compatibles

- Actualización de Sun Java System Application Server

- Cambio a una versión admitida de J2SE

- Otros requisitos

## Requisitos de plataforma

En la siguiente tabla se indican los sistemas operativos que son compatibles con el producto Sun Java System Application Server Edición Enterprise 8.1 2005Q2. Además, se especifican los requisitos mínimos y máximos de memoria necesarios para instalar y ejecutar Application Server.

Tabla 2–1 Requisitos de plataforma de Sun Java System Application Server 8.1 2005Q2

Sistema operativo | Memoria mínima | Memoria recomendada | Espacio en disco mínimo | Espacio en disco recomendado | JVM
--- | --- | --- | --- | --- | ---
Sun Solaris 8, 9, 10 (SPARC) Solaris 9, 10 (x86) | 512 MB | 1 GB | 250 MB de espacio libre | 500 MB de espacio libre | J2SE 1.4.2_06, J2SE 5.0
Red Hat Enterprise Linux 2.1 Update 2, 3.0 Update 1 | 512 MB | 1 GB | 220 MB de espacio libre | 300 MB de espacio libre | J2SE 1.4.2_06, J2SE 5.0
Windows Server 2000 SP4+ Windows 2000 Advanced Server SP4+ Windows Server 2003 Windows XP Pro SP1+ | 1 GB | 2 GB | 500 MB de espacio libre | 1 GB de espacio libre | J2SE 1.4.2_06, J2SE 5.0

En UNIX, puede averiguar cuál es su versión del sistema operativo utilizando el comando `uname` . El espacio en disco se puede comprobar con el comando `df`.

## Información importante sobre revisiones del producto

Para obtener información sobre las revisiones necesarias de Sun Java System Application Server Edición Enterprise 8.1, vaya a `http://sunsolve.sun.com` y busque “`app server 8.1 patch`.â. Siga los vínculos de Sun Java System Application Server Edición Enterprise 8.1. A medida que cambien los requisitos de revisiones para el sistema operativo y estén disponibles las revisiones para los componentes de Java Enterprise System, se podrán obtener las actualizaciones desde SunSolve (inicialmente como clústeres de revisiones recomendadas).

### Requisitos de revisiones de Solaris

Es aconsejable que los usuarios de Solaris 9, 10 (x86, SPARC) tengan instalados los “clústeres de revisiones recomendadas de Sun”, que se encuentran en el apartado Recommended and Security Patches en SunSolve.

### Requisitos adicionales del paquete RedHat Enterprise Linux 3.0

Para ejecutar los componentes nativos de este producto (incluido el instalador), hay que instalar el siguiente paquete que no forma parte de la distribución estándar de RedHat Enterprise Linux 3.0: `compat-libstdc++-7.3-2.96.118.i386.rpm`

El paquete puede descargarse desde `http://rpm.pbone.net/index.php3/stat/4/idpl/843376/com/compat-libstdc++-7.3-2.96.118.i386.rpm.html`.

## Bases de datos y controladores JDBC

Sun Java System Application Server está diseñado para admitir la conectividad con cualquier DBMS que tenga un controlador JDBC correspondiente. Para obtener la lista de los componentes que Sun ha probado y ha considerado aceptables para construir configuraciones de bases de datos compatibles con J2EE, consulte la siguiente tabla.

Tabla 2–2 Controladores JDBC compatibles con J2EE

Proveedor de JDBC | Tipo de controlador JDBC | Servidor de base de datos admitido
--- | --- | ---
i-net Software | Tipo 4 | Oracle (R) 8.1.7, 9i, 9.2.0.3 Sybase ASE 12.5.2 Microsoft SQL Server 2000 4.0 Service Pack 1
IBM | Tipo 2 | IBM DB2 8.1 Service Pack 3+
PointBase | Tipo 4 | PointBase Network Server 4.8
DataDirect | Tipo 4 | Oracle (R) 8.1.7, 9i, 9.2.0.3 Sybase ASE 12.5.2 Microsoft SQL Server IBM DB2 8.1 Service Pack 3+
Controlador JDBC de Sun Java System para Oracle | Tipo 4 | Oracle (R) 9.2.0.3, 10G
Controlador JDBC de Sun Java System para DB2 | Tipo 4 | IBM DB2 8.1 Service Pack 3+
Controlador JDBC de Sun Java System para Sysbase | Tipo 4 | Sybase ASE 12.5.2
Controlador de JDBC de Sun Java System para Microsoft SQL Server | Tipo 4 | Microsoft SQL Server 2000 4.0 Service Pack 1
Oracle | Tipo 4, Tipo 2 | Oracle (R) 9.2.0.3, 10G

Para obtener más información acerca del software de i-net, consulte `http://www.inetsoftware.de/`.

Para obtener más información acerca de las tecnologías DataDirect, consulte `http://www.datadirect.com/`.

## Configuración de Oracle

Los controladores JDBC para Oracle deben configurarse correctamente para que sean compatibles con J2EE 1.4. Use la siguiente configuración para los controladores de los tipos 2 y 4:

### Para configurar Oracle

1. Use el controlador JDBC 9.2.0.3 o posterior.

2. La base de datos de Oracle debe tener el valor `compatible=9.0.0.0.0` o superior en el archivo de parámetros (`init.ora`).

3. Use el archivo `ojdbc14.jar`.

4. Configure Application Server para definir la siguiente propiedad JVM:

       -Doracle.jdbc.J2EE13Compliant=true

   Además, para los controladores `Type-2`, tanto la variable `ORACLE_HOME` como la variable `LD_LIBRARY_PATH` (que debe incluir `$ORACLE_HOME/lib`) deben estar definidas en el entorno en el que se inicie Application Server. Por ejemplo, puede agregarlas al archivo `asenv.conf` y asegurarse de que se exporten.

## Configuración de PointBase

Muchas aplicaciones de ejemplo utilizan el servidor de la base de datos de PointBase que se incluye con Application Server. Cuando utilice Application Server Enterprise Edition, deberá configurar el servidor de base de datos de PointBase antes de usarlo.

Hay dos maneras de configurar PointBase:

1. Utilice el comando adecuado para su sistema operativo y de su intérprete de comandos para definir la variable de entorno `JAVA_HOME` en el directorio en el que está instalado J2SE. Por ejemplo: `% setenv JAVA_HOME "/opt/SUNWappserver/jdk"`

2. Edite el archivo de configuración de PointBase de Application Server, de la siguiente forma:

   1. En Solaris y los sistemas Linux, edite el archivo de configuración `install_dir /pointbase/tools/serveroption/pbenv.conf` cambiando la línea:

      `PB_JAVA=%%%PB_JAVA%%%`

      hasta

      `PB_JAVA=J2SE_location`

   1. En los sistemas Windows, edite la configuración de `install_dir\pointbase\tools\serveroption\pbenv.bat` cambiando la línea:

      `PB_JAVA=%%%PB_JAVA%%%`

      hasta

      `PB_JAVA=J2SE_location`

   Donde J2SE_location hace referencia al directorio en el que está instalado J2SE. Si ha instalado J2SE con Application Server, J2SE se instalará de forma predeterminada en `install_dir/jdk`.

   Una vez efectuado este cambio, puede iniciar PointBase utilizando la secuencia de comandos `startserver`.

## Servidores web

En este apartado se indican los servidores Web que son compatibles con Sun Java System Application Server Edición Enterprise 8.1 2005Q2.

Tabla 2–3 Servidores web compatibles

Web Server | Versión | Sistema operativo
--- | --- | ---
Sun Java System Web Server | 6.1+ | Solaris SPARC 8, 9, 10 Solaris x86 9, 10 Red Hat Enterprise Linux 2.1 Update 2, 3.0 Update 1
Apache Web Server | 1.3+, 1.4, 2.0 | Solaris SPARC 9, 10 Solaris x86 10 Red Hat Enterprise Linux 2.1 Update 2, 3.0 Update 1 Windows Server 2003 Windows 2000 Advanced Server SP4+ Windows Server 2000 SP4+ Windows XP Pro SP1+
Microsoft IISTM | 5.0+ | Windows Server 2003 Windows 2000 Advanced Server SP4+ Windows Server 2000 SP4+ Windows XP Pro SP1+

## Navegadores

En este apartado se indican los navegadores que son compatibles con Sun Java System Application Server Edición Enterprise 8.1 2005Q2.

Tabla 2–4 Exploradores web compatibles

Explorador | Versión
--- | ---
Mozilla | 1.4, 1.5, 1.6, 1.7.x
Netscape Navigator | 4.79, 6.2, 7.0
Internet Explorer | 5.5 Service Pack 2, 6.0

## Requisitos de HADB y plataformas compatibles

Además de los requisitos que aparecen en Requisitos de hardware y software, compruebe que su sistema cumpla los requisitos que se indican a continuación para ejecutar HADB.

- Plataformas admitidas

- Requisitos del host del servidor de HADB

- Requisitos de host de administración de HADB

- Requisitos del host del cliente de HADB

Nota –

Los componentes de Java del sistema se han creado con JDK 1.4.2_02 y se han probado con JDK 1.5.

### Plataformas admitidas

- Solaris (SPARC) – Solaris 8 MU7, Solaris 9 MU7 y Solaris 10 RR.

- Solaris (x86) – Solaris 9 MU7 y Solaris 10 RR.

- RedHat Enterprise Linux - 2.1 U5 (sólo se admite el sistema de archivos `ext2`, no `ext3`), 3.0 U4 (se admiten `ext2` y `ext3`. Las actualizaciones anteriores a U4 no se recomiendan debido al excesivo intercambio). Tenga en cuenta que HADB se ha probado en estas versiones de sistemas operativos sólo en el modo de 32 bits. Tenga en cuenta también que HADB no es compatible con RedHat Enterprise Linux 3.0 cuando se ejecuta en modo de 64 bits debido a un error en el sistema operativo (consulte el error 6249685 en el apartado Alta disponibilidad para obtener más detalles acerca de las repercusiones en HADB).

- Microsoft Windows – Microsoft Windows 2000 Advanced Server Service Pack 4 y Microsoft Windows 2003 Enterprise Edition. Tenga en cuenta que HADB no es compatible con ninguna de las próximas versiones de sistemas operativos de Microsoft Windows en el modo de 64 bits.

### Requisitos del host del servidor de HADB

- Memoria mínima: 320 MB por nodo.

- Cantidad mínima de espacio libre en disco: 70 MB para binarios HADB por host. Además, se necesita espacio de disco para los dispositivos de datos; 512 MB para una instalación de prueba por cada nodo.

- Memoria recomendada: 512 MB por nodo.

- Espacio libre en disco recomendado: 70 MB para binarios HADB por host. Además, se necesita espacio de disco para los dispositivos de datos; 1200 MB para una instalación de prueba por cada nodo:

Nota –

Asegúrese de que el almacenamiento en caché está desactivado en los dispositivos de almacenamiento de archivos de registro y datos HADB. La escritura en caché esta activada de forma predeterminada en algunas plataformas Solaris como, por ejemplo, Solaris x86.

### Requisitos de host de administración de HADB

- Memoria mínima: 128 MB.

- Cantidad mínima de espacio libre en disco: 70 MB para binarios HADB por nodo.

### Requisitos del host del cliente de HADB

- Memoria mínima: 120 MB.

- Cantidad mínima de espacio libre en disco: 20 MB

## Actualización de Sun Java System Application Server

No se admite la actualización "in situ" de las versiones anteriores de Application Server. Consulte Application Server Edición Enterprise Upgrade and Migration Guide para obtener instrucciones completas sobre la actualización de una versión anterior de Application Server a la versión actual.

## Cambio a una versión admitida de J2SE

Si desea utilizar PointBase con Application Server, descargue J2SE 1.4.2 y úselo en lugar de la JVM J2SE 5.0 que se incluye en el paquete. Para ello, lleve a cabo los siguientes pasos:

### Para cambiar a J2SE 1.4.2

1. Descargue J2SE 1.4.2 SDK (no JRE) e instálelo en el sistema, si es que todavía no lo ha hecho.

   J2SE 1.4.2 SDK se puede descargar de `http://java.sun.com/j2se/1.4.2/`

2. Detenga la ejecución de Application Server.

   Desde la línea de comandos:

       install_dir/bin/asadmin stop-domain

   Desde la consola de administración:

   1. Haga clic en el nodo de Application Server.

   2. Haga clic en Detener instancia.

3. Edite el archivo `install_dir/config/asenv.conf` (`asenv.bat` en Windows); para ello, cambie el valor de `AS_JAVA` para que haga referencia al directorio de inicio de J2SE 1.4.2:

4. Edite el archivo `as-install/samples/common.properties` cambiando la línea que comienza por `com.sun.aas.javaRoot...` por la referencia al directorio de inicio de J2SE 1.4.2.

5. Reinicie Application Server.

   Desde la línea de comandos:

       install_dir/bin/asadmin start-domain

   Desde la consola de administración:

   1. Haga clic en el nodo de Application Server.

   2. Haga clic en Iniciar instancia.

## Otros requisitos

Los siguientes requisitos adicionales se deben cumplir para poder instalar el software de Sun Java System Application Server.

- Espacio libre: el directorio temporal debe tener un mínimo de 35 MB de espacio libre para la instalación de Sun Java System Application Server y 250 MB de espacio libre para la instalación de SDK.

- Uso del programa de desinstalación: si necesita eliminar Application Server del sistema, es importante que utilice el programa de desinstalación incluido con el software. Si intenta utilizar cualquier otro método, surgirán problemas cuando intente reiniciar la misma versión o cuando desee instalar una versión nueva.

- Puertos libres: debe disponer de siete puertos no utilizados.

  - El programa de instalación detecta automáticamente los puertos que están en uso y sugiere puertos libres para los ajustes predeterminados. De forma predeterminada, los puertos iniciales son `8080` para HTTP, `8181` para HTTPS y `4849` para Administration Server.

  - El programa de instalación detectará si los puertos están en uso y, en su caso, asignará otros dos: Sun Java System Message Queue (de forma predeterminada, `7676`) e IIOP (de forma predeterminada, `3700` para IIOP, y `1060` y `1061` para IIOP/SSL). Si estos números de puertos predeterminados están en uso, el programa de instalación asignará un número de puerto aleatorio del intervalo de puertos dinámicos (es posible que no se asigne el puerto siguiente que esté disponible).

  Inicio de servidores previamente instalados (UNIX): a menos que desee sustituir el servidor instalado con anterioridad, deberá iniciarlo antes de comenzar el proceso de instalación de Sun Java System Application Server 8.1. Esto permite que el programa de instalación detecte los puertos que están en uso y no los asigne para otros usos.

- Sustitución de servidores previamente instalados (UNIX): si dispone de una versión antigua de Sun Java System Application Server instalada y desea sustituirla por la versión actual de Application Server, deberá detenerla antes de instalar el nuevo servidor. Use el asistente de actualización del programa de instalación para actualizar el servidor.

- Cierre del servidor de seguridad (Microsoft Windows): debe detener cualquier tipo de software de servidor de seguridad antes de instalar Sun Java System Application Server porque algunos servidores de seguridad desactivan todos los puertos de forma predeterminada. El programa de instalación debe determinar con precisión qué puertos están disponibles.

  Para obtener más información sobre la compatibilidad, consulte la Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Upgrade and Migration Guide.

# Errores solucionados en la versión Edición Enterprise 8.1

En este apartado se indican los problemas detectados por los clientes que se han resuelto en el producto Sun Java System Application Server Edición Enterprise 8.1.

Número de error | Descripción
--- | ---
4887079 | API programáticas para implementar, anular la implementación y buscar qué aplicaciones se han implementado.
4911462 | Mensaje incorrecto cuando el puerto está fuera de rango disponible.
4918535 | `sun-appserv-deploy()` no usa un indicador para ser compatible con `createAndDropTables()`.
4939749 | `xml:()`el valor `lang()` no debe insertarse automáticamente mediante la herramienta de implementación.
4946914 | Implementación compatible con el clúster.
4979136 | La implementación basada en directorio copia la aplicación en un directorio de copia de seguridad.
4987274 | La implementación falla si la interfaz remota del Bean se llama `Util()`
4988818 | La pruebas de tiempo de ejecución de persistencia transparente fallan cuando se utiliza J2SE 1.5.
4992295 | La implementación de un componente del sistema se realiza con éxito en la interfaz de línea de comandos, pero se incluye un error en el archivo de registro del servidor.
4994790 | JSP implementado con precompilejsp=verdadero no utiliza indicadores de compilador en `sun-web.xml`.
4996876 | Verifier vs. herramienta de implementación con verify=true, diferentes informes.
5003356 | La herramienta de actualización (Upgradetool) no contabiliza las últimas actualizaciones del archivo `server.policy`.
5006854 | `asadmin deploy` `--virtualservers` no se implementa.
5007309 | El valor predeterminado para los subprocesos del aceptador de la escucha HTTP no es válido.
5008941 | La operación de inicio de JSR88 falla cuando se vuelve a implementar una aplicación tras haberse anulado su implementación.
5016848 | En Windows, el archivo JDK JAR en caché y los archivos sin cerrar impiden que se realicen nuevas implementaciones.
5017956 | El comando `list` `-m` en el nivel del módulo JAR no muestra los EJB.
5030425 | El comando `deploydir` ignora los cambios realizados en `security-role-mapping` .
5041343 | No se comprueba `servlet-mapping url-pattern``- -directory`, ajustado siempre mediante /.
5046120 | Mensajes de registro de carácter GRAVE durante la implementación de aplicaciones grandes.
6041268 | No hay ningún mecanismo para deshabilitar `SEGUIMIENTO HTTP`.
6062410 | La herramienta de actualización se ejecutó en inglés en un equipo adaptado a la configuración regional.
6067341 | El comando `deploydir` de una aplicación web con `ejb-refs` falla en `rmic` en las interfaces remotas.
6152752 | Se registra una excepción `outofbound` durante la ejecución de la prueba de SPEC J2004.
6154949 | No funciona la validación de la conexión.
6157310 | El tiempo de ejecución recarga el campo `Colección` durante la administración de relaciones.
6165491 | No se pudo iniciar un dominio si se creó en una ruta distinta a la del dominio predeterminado.
6171667 | Los elementos de propiedades de los módulos de ciclo de vida no se crean en `domain.xml` .
6171729 | Las propiedades de RA ActivationSpec sin cadena dan lugar a una excepción, IllegalArgumentException, durante la implementación de MDB.
6172178 | OSS/J TT TCK no pudo obtener fábrica de conexión JMS desde un servidor de aplicaciones remoto.
6172589 | Optimizar llamadas para administrador de seguridad.
6183492 | [DataDirect] DB2: Algunas pruebas del servidor de aplicaciones de persistencia transparente fallaron con una excepción desencadenada durante la invocación de EJB.
6184864 | La consulta EJB QL no devuelve resultados si se utiliza el operador OR y la expresión contiene valores únicos nulos de CMRS.
6197393 | La herramienta de implementación a menudo no creará ningún elemento de destino del mensaje en el descriptor de implementación.
6198796 | Los comandos `asadmin` de ejemplos de EE deben incluir la opción `availabilityenabled=verdadero ()` cuando se implementa la aplicación.
6198981 | Falta el archivo `xalan.jar` en la ruta de clase, lo que provoca elementos desplegables vacíos y errores en el asistente para servicios Web.
6199076 | No se puede ejecutar la prueba de conmutación por error del ejemplo de librería Duke con la secuencia de comandos `asant` .
6202363 | El nombre de clúster no se puede modificar en un destino `ant` de la aplicación de ejemplo `mq-failover` .
6202606 | No se puede utilizar la configuración del servicio JMS para SSL JMS entre JMS y Message Queue.
6206176 | Application Server 8.1 requiere `startserv/stopserv` para disponer de permisos 755.
6207297 | No funciona el acceso a Application Server sin el número de puerto SSL predeterminado (443).
6207862 | `asadmin create-domain` `--help` genera resultados confusos.

# Errores solucionados en la versión 8.1 Update 2

En este apartado, se indican los problemas detectados por los clientes que se han resuelto en el producto Sun Java System Application ServerEdición Enterprise 8.12005Q2Actualización 2.

Número de error | Descripción
--- | ---
4842830 | La excepción “ComStream is closed” (ComStream está cerrado) llega al cliente JDBC.
4847716 | No se debe usar execute/executeUpdate para configurar el modo de confirmación, puesto que puede generar comportamientos no deseados. Use el comando estándar JDBC `setAutocommit()`.
4861326 | El conjunto de instrucciones no reconoce CREATE SCHEMA como una instrucción SET SCHEMA implícita.
4891060 | Los módulos de escucha hacen caso omiso de las direcciones cuando escuchan a través de los sockets.
5042351 | Las nuevas tablas creadas después de que se hayan agregado nuevos nodos no se distribuirán en los nodos agregados.
5061316 | Las consultas efectuadas a la tabla que se está refragmentando pueden fallar con HADB-E-01792: La réplica se ha eliminado. Debe volver a ejecutar la consulta.
5063175 | `hadbm create` debería generar un error cuando se usa un host con redes sencillas y múltiples.
5079029 | La anulación de un registro en un paquete en un único host puede fallar y mostrar el siguiente error “The software package is in use by a database instance and can not be removed” (El paquete de software está siendo usado por una instancia de la base de datos y no se puede eliminar).
5094611 | Las operaciones de administración que requieren abrir una transacción de escritura en el repositorio de administración pueden, en raras ocasiones, quedarse bloqueadas de forma permanente esperando a que se abra la transacción.
5103186 | NSUP no se puede iniciar con una red inactiva en Windows 2003.
6225613 |
6271063 | La instalación o eliminación del paquete HADB `c` (Solaris: SUNWhadbc, Linux: sun-hadb-c) versión symlink `/opt/SUNWhadb/` genera un error.
6174781 | El comando `hadbm` del estado de los nodos puede mostrar que el valor `nodestate` de los nodos es desconocido en un breve período después de que se hayan reiniciado los agentes de administración.
6175436 | Si `hadbm addnodes` o `hadbm refragment` presenta el error HADB-E-11747: ya existe el grupo de nodos all_nodes; ejecute `hadbm refragment` de nuevo.
61746766179084 | No se puede ejecutar configure-ha-cluster.
6178228 6179010 | Fallo en configure-ha-cluster
6181845 | No se puede crear un servicio de datos con un tamaño superior a los 2 GB en Windows.
6189189 | `export-http-lb-config` no crea un nombre de archivo `loadbalancer.xml` cuando se especifica un ruta absoluta.
6198225 | La guía de inicio rápido tiene un error: hay una frase repetida.
6195779 | Los valores de las opciones para algunas listas desplegables de filtros no están internacionalizados.
6196741 | La actualización "in situ" de los componentes de J2SE incluidos no se realiza correctamente al actualizar J2SE 1.4.x.
6207616 | Si hay un host inactivo, cualquier comando `hadbm` puede bloquearse durante minutos, en caso de que necesite conectarse al agente de administración.
6212791 | No se muestran elementos en el panel derecho cuando se hace clic en un nodo de árbol.
6216096 | Una transacción de bloqueo puede provocar que un nodo interrumpa su funcionamiento con el siguiente error “log buffer full” (memoria búfer de registro llena) y se cancele un número importante de transacciones.
6225613 | Tamaño de LOB incoherente en executeUpdate()
6227502 | Los errores de inicialización en el servicio de temporizador de EJB no deben estar registrados como `SEVERE`.
6228789 | El comando `hadbm delete` falla.
6230415 | HADB-E-21070: La operación no se completó en el tiempo límite, pero no se ha cancelado y puede que se complete más adelante.
6230792 | hadbm:Error 22009: El comando ejecutado no ha progresado en los últimos 300 segundos.
6232347 | `dropandcreatetables` no es correcto para `asdamin deploy` `--help`.
6232838 | Las llamadas innecesarias del registro impiden que el servidor de aplicaciones escale.
6232974 | Error del instalador al crear un agente de nodo en el momento de actualizar desde 8.0 Platform Edition a 8.1 Enterprise Edition.
6233142 | La instalación y la desinstalación de HADB deben conservar siempre los archivos softlink /opt/SUNWhadb/4, pero éste siempre no ha sido el caso.
6233276 | La autorización mediante formulario no funciona para la dirección URL `-pattern /*.jsp`.
6233469 | Texto de la ayuda incorrecto en la ayuda de `asadmin`.
6233476 | Texto de la ayuda incorrecto para `update-file-user` y comandos similares.
6237567 | Falta una clave `adminObjectStep2PageHelp` en la ventana Create Administration Object Resource (Crear recurso de objeto de administración).
6238477 | No se pueden resolver las referencias EJB "corba name" en la misma instancia del servidor de aplicaciones.
6239630 | No se puede asignar correctamente un Entity Bean concreto.
6239837 | Unidad y valor predeterminado erróneos para el intervalo de reconexión en la administración de JMS `server-config`.
6240661 | Algunos mensajes siguen apareciendo en inglés en la configuración regional.
6241311 | La nota para el campo "Pool Idle Timeout" (Tiempo de espera de inactividad del conjunto) es errónea.
6241368 | La pantalla de inicio de sesión de la consola de administración y la ayuda en línea no hacen referencia al inglés como idioma del navegador.
6243395 | La recuperación de la transacción no funciona con los recursos JMS y JDBC.
6245922 | Application Server se bloquea de forma sistemática.
6246426 | La expansión de los archivos JAR en WEB-INF/lib expone el contenido que puede que fuera confidencial.
6249637 | El cambio de las propiedades de conexión de JDBC requiere un reinicio.
6249662 | `Proxy-auth-cert` no tiene el formato adecuado.
6250989 | Elemento SOAP.`addChildElement` agrega un elemento incompleto sin marcas de seguimiento.
6252187 | El inicio de sesión único de alta disponibilidad propaga elementos principales entre dominios distintos.
6252810 | El comando `configure-ha-persistence` en las páginas de comando man no está actualizado.
6253735 | La guía de inicio rápido no incluye información de alta disponibilidad.
6254393 | La guía de inicio rápido integrada tiene enlaces a notas de la versión desfasadas.
6254462 | NPE se activa mediante el código de validación de conexión después de reiniciar la base de datos.
6255253 | El enlace "How to Buy" (Dónde comprar) de la documentación que se adjunta es una dirección URL no válida.
6255440 | Mejoras en el rendimiento para la sincronización.
6255458 | Error ortográfico en `delete-virtual-server`.
6255524 | La tarea `UpdateTask` de ANT no funciona con ANT 1.6.2.
6255564 | El inicio del dominio actualizado falla debido a un error de autenticación del usuario de administración después de haber actualizado de Platform Edition a Enterprise Edition.
6258844 | El inicio de sesión del usuario del dominio de archivos no funciona después de actualizar a la versión 8.1 Update 1.
6258997 | Descripción correcta para la opción `--secure` en las páginas de comando man de la interfaz de la línea de comandos.
6259125 | La documentación para `asadmin get` es inadecuada y confusa.
6262564 | `PrivateKeyProcessor` no admite la obtención mediante `keyIdentifier`.
6262824 | 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.
6263684 | Es necesario realizar cambios manuales en `README.` para la secuencia de comandos de generación de revisiones Linux RPM.
6263686 | La generación de revisiones svr4 inserta entradas incorrectas en `README`.
| La secuencia de comandos `package-appclient` está dañada.
6264969 | La configuración de todos los ejemplos de AS que usan PointBase ha fallado: No se puede actualizar la base de datos a la versión 5.1.
6265687 | La imagen gráfica del instalador tiene una versión del producto incorrecta.
6266183 | Fallo en la prueba de alta disponibilidad: El nombre del dominio sigue siendo nulo después del reinicio.
6267410 | Excepción durante `session.invalidate()` si el nivel de registro se ha establecido en `FINE`.

# Información adicional sobre HADB

Este apartado describe información adicional importante acerca de la implementación de HADB incluida en Application Server 8.1.

- Mejoras en HADB

- Compatibilidad de HADB con los sistemas de archivos

- Actualización de la base de datos de alta disponibilidad

- Limitaciones conocidas de SQL

- Equilibrado de carga de alta disponibilidad

## Mejoras en HADB

- El nuevo comando de administración `hadbm setadminpassword` se ha implementado para que sea posible cambiar la contraseña utilizada para la administración de la base de datos. El comando adopta opciones que indican qué agente de administración se debe usar y cuál es la contraseña nueva y la antigua. Para obtener más información, consulte la página de comando man `hadbm setadminpassword`.

- El comando de administración existente `hadbm listpackages` se ha modificado. Anteriormente el comando no adoptaba operandos y enumeraba todos los paquetes del dominio de administración pertinente. Las modificaciones introducen un operando de nombre de paquete opcional, que muestra una lista que contiene sólo los paquetes con dicho nombre. Si no se especifica el operando, se mostrarán todos los paquetes. Para obtener más información, consulte la página de comando man `hadbm listpackages`.

- El comando de administración existente `hadbm createdomain` se ha modificado. El operando hostlist se ha ampliado para que especifique también el número de puerto del agente de administración. De este modo, el dominio se especifica completamente usando sólo el operando hostlist. El comportamiento anterior todavía se admite para conseguir compatibilidad con versiones anteriores. Para obtener más información, consulte la página de comando man `hadbm createdomain`.

- Algunos mensajes de error del sistema de administración se han modificado. Las modificaciones están destinadas a mejorar la comprensión, la coherencia y la precisión de los mensajes de error. Las modificaciones en sí no se indican en estas notas de la versión.

- Los comportamientos de instalación y desinstalación se han modificado levemente. La instalación y la desinstalación de HADB deben conservar siempre los archivos softlink`/opt/SUNWhadb/4`, pero éste no siempre ha sido el caso.

- La posibilidad de introducir contraseñas en la línea de comandos como opciones de comando ya no se admite. Esto es relevante para todos los comandos `hadbm` que usen contraseñas como opciones de la línea de comandos. En los comandos `hadbm`, antes era posible introducir una contraseña en forma de:

  1. Un archivo de contraseña

  2. Una opción de línea de comandos

  3. Una entrada interactiva

  El método 2, la opción de la línea de comandos, no se considera seguro y, en consecuencia, ha quedado obsoleto. Se muestra un mensaje de advertencia en el caso de que se introduzca una contraseña de este modo. En su lugar, use el método 1, un archivo de contraseña, o bien el método 3, la salida interactiva. El uso de una contraseña en la línea de comandos quedará obsoleto en la siguiente versión. Tenga en cuenta que esto es aplicable a todos los comandos `hadbm` que admiten una contraseña en la línea de comandos.

- HADB se ha actualizado para que pueda usar JGroups Versión 2.2, y su código fuente se distribuye junto con HADB. Para que sea posible realizar una actualización en línea desde una versión anterior de HADB, tanto JGroups 2.1 como 2.2 se proporcionan con HADB. Para JGroups 2.1, se proporciona sólo la codificación de bytes.

## Compatibilidad de HADB con los sistemas de archivos

Hay varias consideraciones importantes que hay que tener en cuenta a la hora de configurar HADB para que utilice uno de los siguientes sistemas de archivos:

- ext2 y ext3: HADB es compatible con los sistemas de archivos ext2 y ext3 para Red Hat Application Server 3.0. En la versión Red Hat Application Server 2.1, HADB admite sólo el sistema de archivos ext2.

- `Veritas`: si se usa el sistema de archivos Veritas en una plataforma Solaris, se incluirá el siguiente mensaje en el archivo de historial `WRN:` `Direct disk I/O mapping failed` (WRN: error en la asignación de E/S directa de disco). Este mensaje indica que HADB no puede activar la función de E/S directa de los datos y los dispositivos de registro. La entrada o salida directa es una mejora en el rendimiento que reduce el coste de la CPU al escribir páginas de disco. Esto también provoca que haya una menor carga para administrar las páginas de datos no útiles en el sistema operativo.

  Para usar la función de E/S directa con el sistema de archivos Veritas, siga uno de estos procedimientos:

  - Cree los datos y los dispositivos de registro en un sistema de archivos que esté montado con la opción `mincache=direct`. Esta opción se aplica a todos los archivos creados en el sistema de archivos. Consulte el comando `mount_vxfs(1M)` para obtener más detalles.

  - Use la utilidad Veritas Quick I/O para realizar entradas y salidas sin formato en los archivos del sistema de archivos. Consulte VERITAS File System 4.0 Administrator's Guide for Solaris para obtener más información.

    Tenga en cuenta que estas configuraciones no se han probado con Application Server 8.1 2005Q2 Actualización 2.

    Consulte Application Server Edición Enterprise High Availability Administration Guide para obtener información sobre la instalación y la configuración de HADB con el software Application Server.

## Actualización de la base de datos de alta disponibilidad

- Migración de tareas y datos previos a la actualización

- Procedimiento de actualización

- Comprobación de la actualización

- Información especial sobre la implementación y la actualización

### Migración de tareas y datos previos a la actualización

##### Antes de empezar

Los usuarios deben conservar los archivos del historial de HADB, los archivos de configuración del agente de administración, los archivos de registro y el repositorio y todos los dispositivos de datos externos a la ruta de instalación. De lo contrario, esto se debe hacer antes de la actualización. Para mover el repositorio de administración y los archivos de configuración:

1. Detenga todos los agentes de administración antiguos y deje los nodos de HADB ejecutándose.

2. En cada host, mueva el directorio del repositorio a la nueva ubicación.

3. En cada host, copie el directorio `dbconfig` en la nueva ubicación.

4. En cada host, actualice el archivo `mgt.cfg` y defina la ruta correcta para `dbconfig` y el directorio del repositorio.

5. Inicie los agentes de administración usando el archivo actualizado `mgt.cfg`.

### Procedimiento de actualización

Para actualizar de la versión 4.4.x de HADB a la versión 4.4.2-7, lleve a cabo el siguiente procedimiento:

1. Realice las tareas previas a la actualización mencionadas anteriormente si es necesario.

2. Instale la versión 4.4.2-7 de HADB en todos los hosts de HADB (en una ruta distinta de la de la versión 4.4.x, por ejemplo, en `/opt/SUNWhadb/4.4.2-7`).

3. Instale la versión 4.4.2-7 de HADB en los hosts del cliente `hadbm`, en caso de que sean diferentes de los de los hosts de HADB.

4. Detenga todos los agentes de administración que se estén ejecutando en todos los hosts de HADB.

5. Inicie los procesos del agente de administración usando el software de la nueva versión, pero con los archivos de configuración antiguos. En los pasos que quedan, utilice el comando `hadbm` que se incluye en el directorio `bin` de la nueva versión.

6. Registre el paquete en el dominio de administración (el nombre del paquete predeterminado pasa a ser V4.4, por lo que será necesario utilizar otro nombre de paquete para evitar conflictos con los paquetes existentes que tengan el mismo nombre):

       hadbm registerpackage --packagepath=/opt/SUNWhadb/4.4.2-7 V4.4.2-7

7. Ejecute el comando `hadbm listpackages` y compruebe que el nuevo paquete esté registrado en el dominio.

8. Reinicie la base de datos con la nueva versión 4.4.2-7 de `hadbm`. Si es necesario mover los dispositivos y los archivos del historial, ejecute la actualización en línea junto con la definición de nuevas rutas para dispositivos y archivos del historial en una única operación:

       hadbm set packagename=V4.4.2-7,devicepath=new_devpath,
       historypath=new_histpath

   De lo contrario, si los dispositivos y los archivos del historial están ya fuera del directorio de instalación, ejecute el siguiente comando, que sólo realiza un reinicio por turnos de los nodos:

       hadbm set packagename=V4.4.2-7 database name

9. Compruebe que la base de datos esté ejecutándose (para ello, use el comando `hadbm status`) y que funcione normalmente, atendiendo las transacciones de los clientes.

10. Si todo está funcionando, la instalación antigua podrá eliminarse posteriormente. Antes de anular el registro del paquete antiguo, elimine del depósito `ma` todas las referencias al mismo. De lo contrario, `hadbm unregisterpackage` fallará y mostrará un error que indica que el paquete está en uso ("package in use").Una operación de reconfiguración ficticia, por ejemplo, `hadbm set connectiontrace=same as previous value`, eliminará todas las referencias al paquete antiguo. Ahora, proceda a anular el registro del paquete antiguo:

        hadbm unregisterpackage [--hosts=host-list] old pacakge name

11. Elimine la instalación antigua del sistema de archivos.

### Comprobación de la actualización

En Solaris, para probar que la actualización es correcta, compruebe si la actualización se ha realizado correctamente:

1. Asegúrese de que los procesos que se estén ejecutando usen los nuevos binarios. Compruebe lo siguiente en todos los nodos de HADB:

       new path/bin/ma -v
       new path/bin/hadbm -v

2. Compruebe si se está ejecutando la base de datos. El siguiente comando debería mostrar que todos los nodos de HADB se están “ejecutando”.

       new path/bin/hadbm status -n

3. Asegúrese de que los productos que usen HADB hayan cambiado sus punteros para que señalen a la nueva ruta de HADB.

4. Los productos que usan HADB pueden ejecutar sus pruebas de actualización para verificar que la actualización de HADB también está funcionando.

   Después de realizar una actualización en línea, si la nueva versión no funciona correctamente, vuelva a usar la versión anterior de HADB. Sin embargo, si ha habido un cambio en el repositorio del agente de administración, será posible volver a una versión anterior de HADB, pero el nuevo agente de administración deberá estar ejecutándose.

### Información especial sobre la implementación y la actualización

En este apartado se incluye información adicional acerca de la actualización y la implementación de HADB.

- Implementación

- Actualización en línea de 4.4.1 a 4.4.2

#### Implementación

- El dispositivo de almacenamiento, y los archivos de registro y de historial de los discos sólo locales no utilizan sistemas de archivos montados de forma remota.

- Si hay más de un nodo en un host, se recomienda que los dispositivos de cada nodo estén en discos diferentes. De lo contrario, la contención del disco podría reducir el rendimiento. Los indicios de este problema se pueden ver en los archivos del historial mediante mensajes como, por ejemplo, `BEWARE - last flush/fputs took too long (ATENCIÓN: los últimos vaciados/entradas tardaron demasiado tiempo)`. Cuando un único nodo tiene más de un archivo de dispositivos de datos, se recomienda usar distintos discos para dichos archivos de dispositivos.

- Use los discos locales (preferiblemente discos separados de los que se usan para los dispositivos de datos) para instalar binarios de HADB en los hosts de HADB. La contención del disco o los retrasos de NFS podrían provocar que se reinicie el nodo, con el mensaje de advertencia, `Process blocked for` `nnn``, max block time is` `nnn` (Proceso bloqueado durante nnn; tiempo máximo de bloqueo, nnn) en los archivos del historial.

- No coloque los dispositivos de HADB, los archivos de historial, los directorios del agente de administración y los archivos de configuración del agente en la ruta del paquete HADB. Esto causará problemas en el momento de actualizar a nuevas versiones y de eliminar la ruta del paquete antiguo.

- Esta versión de HADB se admite para un máximo de 28 nodos; 24 de ellos activos y 4 de reserva.

- Se recomienda utilizar la misma versión para el controlador JDBC y para el servidor HADB.

- No se admite el uso de IPv6, sólo de IPv4.

- La longitud de la línea de comandos en Windows está restringida a 2048 bytes.

- La red debe configurarse para la multidifusión UDP.

- Debido al excesivo intercambio observado en las actualizaciones 1 a 3 de RedHat Enterprise Linux 3.0, no se recomienda su uso como plataforma de implementación. Este problema se ha solucionado en RedHat Enterprise Linux 3.0 Update 4.

- Posibilidad de ejecutar `NSUP` con prioridad de tiempo real.

  Los procesos (`clu_nsup_srv` ) del supervisor de nodos (`NSUP`) garantizan la alta disponibilidad de HADB con ayuda del intercambio de mensajes de latidos (heartbeat) de una forma periódica. La temporización se ve afectada cuando se utiliza `NSUP` con otros procesos provocando la aniquilación del recurso. La consecuencia es una falsa partición de la red y que el nodo se reinicia precedido de una advertencia “Process blocked for `n` seconds” (Proceso bloqueado durante x segundos) en los archivos del historial, lo que da como resultado transacciones canceladas y otras excepciones.

  Para solucionar este problema, `clu_nsup_srv` (que se encuentra en `installpath``/lib/server`) debe tener el conjunto de bits `suid` y el archivo debe ser propiedad del usuario root. Esto se consigue de forma manual mediante los comandos:

      # chown root clu_nsup_srv
      # chmod u+s clu_nsup_srv

  Esto hace que el proceso `clu_nsup_srv` se ejecute como el usuario `root` cuando se inicia y esto, a su vez, permite que el proceso se asigne a sí mismo automáticamente prioridad de tiempo real después del inicio. Para evitar cualquier repercusión negativa en la seguridad usando `setuid`, la prioridad en tiempo real se define al principio y el proceso retrocede al UID efectivo una vez que se haya cambiado la prioridad. Otros procesos de HADB disminuirán su prioridad a un tipo de prioridad de tiempo compartido.

  Si NSUP no pudo definir la prioridad de tiempo real, se emite una advertencia: “Could not set realtime priority” (No se pudo establecer una prioridad de tiempo real) (`unix: errno will be set to EPERM`), que se escribe en el archivo `ma.log` y se continúa sin prioridad de tiempo real.

  Hay casos en los que no es posible establecer prioridades de tiempo real, por ejemplo:

  - Cuando la instalación se ha efectuado en zonas no globales de Solaris 10

  - Cuando los privilegios `PRIV_PROC_LOCK_MEMORY` (Permitir que un proceso bloquee páginas en la memoria física) y/o los privilegios `PRIV_PROC_PRIOCNTL` se han revocado en Solaris 10

  - Los usuarios desactivan los permisos `setuid`

  - Los usuarios instalan el software como archivos tar (opción de instalación nonroot para `App.server`)

  El proceso `clu_nsup_srv` no requiere recursos de la CPU, su huella es pequeña y si se ejecuta con prioridad de tiempo real no repercutirá en el rendimiento.

- Configuración de rutas múltiples de red IP para HADB para Solaris (se ha probado sólo en Solaris 9).

  Sun recomienda que los hosts de Solaris que ejecutan HADB se configuren con rutas múltiples de red para garantizar la mayor disponibilidad posible de la red. La configuración de las rutas múltiples de red se describe detalladamente en IP Network Multipathing Administration Guide. Si opta por usar rutas múltiples con HADB, consulte el apartado sobre administración de rutas múltiples de IP Network Multipathing Administration Guide para configurar las rutas múltiples antes de continuar con la adaptación de la configuración de rutas múltiples para HADB, tal y como se describe más abajo. IP Network Multipathing Administration Guide forma parte de la colección de documentación relacionada con el administrador de sistemas de Solaris 9 y se puede descargar desde `http://docs.sun.com`.

  - Establecimiento del tiempo de detección de fallos de la interfaz de red

    Para que HADB sea compatible con la conmutación por error de rutas múltiples, el tiempo de detección de fallos de la interfaz de red no debe superar los 1000 milisegundos, tal y como especifica el parámetro `FAILURE_DETECTION_TIME` en `/etc/default/mpathd`. Edite el archivo y cambie el valor de este parámetro a `1000` si el valor original es superior:

        FAILURE_DETECTION_TIME=1000

    Para que el cambio surta efecto, ejecute el siguiente comando:

        pkill -HUP in.mpathd

  - Direcciones IP que se deben usar con HADB

    Tal y como se describe en Solaris IP Network Multipathing Administration Guide, las rutas múltiples suponen la agrupación de interfaces de red físicas en grupos de interfaces con rutas múltiples. Cada interfaz física en un grupo de este tipo cuenta con dos direcciones IP asociadas: una dirección de interfaz física y una dirección de prueba. Para transmitir datos, sólo se puede usar la dirección de interfaz física, mientras que la dirección de prueba es sólo para uso interno de Solaris. Cuando se ejecuta `hadbm create --hosts`, cada host debe especificarse sólo con una dirección de interfaz física desde el grupo de rutas múltiples.

  - Ejemplo

    Supongamos que el host 1 y el 2 tienen dos interfaces de red físicas cada uno de ellos. En cada host, estas dos interfaces están configuradas como grupos de rutas múltiples y están ejecutando `ifconfig -a`, por lo que se obtiene lo siguiente:

    Host 1

        bge0: flags=1000843<mtu 1500 index 5 inet 129.159.115.10 netmask ffffff00
        broadcast 129.159.115.255 groupname mp0
        bge0:1: flags=9040843<mtu 1500 index 5 inet 129.159.115.11 netmask ffffff00
        broadcast 129.159.115.255
        bge1: flags=1000843<mtu 1500 index 6 inet 129.159.115.12 netmask ffffff00
        broadcast 129.159.115.255 groupname mp0
        bge1:1: flags=9040843<mtu 1500 index 6 inet 129.159.115.13 netmask ff000000
        broadcast 129.159.115.255

    Host 2

        bge0: flags=1000843<mtu 1500 index 3 inet 129.159.115.20 netmask ffffff00
        broadcast 129.159.115.255 groupname mp0
        bge0:1: flags=9040843<mtu 1500 index 3 inet 129.159.115.21 netmask ff000000
        broadcast 129.159.115.255
        bge1: flags=1000843<mtu 1500 index 4 inet 129.159.115.22 netmask ffffff00
        broadcast 129.159.115.255 groupname mp0
        bge1:1: flags=9040843<mtu 1500 index 4 inet 129.159.115.23 netmask ff000000
        broadcast 129.159.115.255

    Aquí, las interfaces de red de los dos hosts son las que aparecen como `bge0` y `bge1`. Las que aparecen como `bge0:1` y `bge1:1` son las interfaces de prueba de rutas múltiples (por lo tanto, están marcadas como DEPRECATED [en desuso] en el resultado de `ifconfig`), tal y como se describe en IP Network Multipathing Administration Guide.

    Para configurar HADB en este entorno, seleccione una dirección de interfaz física de cada host. En este ejemplo, elegimos `129.159.115.10` del host 1 y `129.159.115.20` del host 2. Para crear una base de datos con un nodo de base de datos por host, use el siguiente argumento para `hadbm create`:

        --host 129.159.115.10,129.159.115.20

    Para crear una base de datos con dos nodos de base de datos en cada host, use el siguiente argumento:

        --host 129.159.115.10,129.159.115.20,129.159.115.10,129.159.115.20

    En ambos casos, la variable `ma.server.mainternal.interfaces` de los dos hosts debe establecerse en `129.159.115.0/24`.

#### Actualización en línea de 4.4.1 a 4.4.2

No es posible actualizar en línea de 4.2 ó 4.3 a 4.4. Sin embargo, la versión 4.4 admite actualizaciones en línea para las versiones futuras. Para actualizar de 4.4.1 a 4.4.2, lleve a cabo los siguientes pasos:

1. Instale 4.4.2 en todos los hosts de HADB (en una ruta distinta de 4.4.1, por ejemplo en `/opt/SUNWhadb/4.4.2-6`).

2. Instale la nueva versión en los hosts `hadbm client`.

3. Detenga todos los agentes de administración que se estén ejecutando en los hosts de HADB.

4. Inicie los procesos del agente de administración usando el software de la nueva versión, pero con los archivos de configuración antiguos. En los pasos que quedan, utilice el comando `hadbm`, que se incluye en el directorio `bin` de la nueva versión.

5. Registre el paquete en el dominio de administración (el nombre predeterminado del paquete pasa a ser `V4.4`, por lo que será necesario utilizar otro nombre de paquete para evitar conflictos con los paquetes existentes que tengan el mismo nombre):

       hadbm registerpackage --packagepath=/opt/SUNWhadb/4.4.2-6 V4.4.2

6. Reinicie la base de datos con la nueva versión (el siguiente comando realiza un reinicio por turnos de los nodos):

       hadbm set packagename=V4.4.2 database_name

7. Compruebe que la base de datos esté “ejecutándose” (para ello, use el comando `hadbm status`) y que funcione normalmente atendiendo las transacciones de los clientes.

8. Si todo está funcionando, la instalación antigua podrá eliminarse posteriormente.

   Antes de anular el registro del paquete antiguo, elimine todas las referencias a él del repositorio `ma`. De lo contrario, `hadbm unregisterpackage` fallará y mostrará un error que indica que el paquete está en uso (package in use).Una operación de reconfiguración ficticia, por ejemplo, hadbm set connectiontrace=`<same_as_previous_value>`, eliminará todas las referencias al paquete antiguo. Ahora, proceda a anular el registro del paquete antiguo:

       hadbm unregisterpackage [--hosts=<host_list>] <old_package_name>

   Elimine la instalación antigua del sistema de archivos, tal y como se describe en las installation instructions de HADB.

## Limitaciones conocidas de SQL

- No se puede crear un índice secundario `UNIQUE` en una tabla.

- La expresión `(DISTINCT column)` no está permitida en una expresión agregada, a menos que se trate de la única expresión seleccionada.

- Todas las tablas deben crearse con una especificación de clave primaria, es decir, no se pueden usar tablas que no tengan claves primarias.

- `FULL OUTER JOIN` no se admite.

- Las subconsultas `IN` que son subconsultas de tablas no se admiten, por ejemplo:

      SELECT SNAME FROM S WHERE (S1#,S2#) IN (SELECT S1#,S2# FROM SP
      WHERE P#='P2')

- No se admiten otras restricciones distintas de `NOT NULL` y `PRIMARY KEY`.

- Es posible asignar un nuevo propietario a un recurso. No obstante, cuando se realiza esta acción, los privilegios concedidos al propietario actual no se conceden al nuevo propietario.

- No se admite el uso de dos o más subconsultas `NOT EXISTS` anidadas en las que cada subconsulta no esté directamente relacionada con el nivel externo de las consultas.

- No se admiten los privilegios de columnas.

- Los constructores de valores de filas se permiten sólo en sentencias `VALUES`.

- Las subconsultas no se aceptan como expresiones de valor en los constructores de valores de filas.

- Los siguientes tipos de datos no se pueden usar cuando se crean claves primarias:

  - `REAL`

  - `FLOAT`

  - `DOUBLE PRECISION`

  - `DECIMAL`

  - `NUMERIC`

## Equilibrado de carga de alta disponibilidad

Application Server incluye equilibrado de carga para los clientes HTTP, IIOP y JMS; compatibilidad con conmutación por error de sesión HTTP; compatibilidad con la agrupación en clústeres de EJB y los servicios de conmutación por error; temporizadores EJB de alta disponibilidad; recuperación de transacciones distribuida; compatibilidad con actualizaciones de aplicaciones por turnos; y una base de datos de alta disponibilidad para el almacenamiento del estado transitorio de las aplicaciones J2EE.

La disponibilidad hace posible la conmutación por error de las instancias de Application Server en un clúster. Si una instancia de Application Server pasa a estar inactiva, otra instancia de Application Server asumirá las sesiones que estaban asignadas al servidor que ahora no está disponible. La información de sesión se almacena en HADB. HADB es compatible con la persistencia de las sesiones HTTP, los Stateful Session Beans y las credenciales de inicio de sesión único.

# Versiones de productos de Application Server

El producto Application Server se proporciona de varias formas. En la tabla siguiente se identifica el producto que se envía para los distintos mecanismos de entrega:

Versión de producto de Application Server | Mecanismo de entrega
--- | ---
Componente Application Server Edición Enterprise dentro de Sun Java Enterprise System. | Distribución basada en archivos Hay que realizar una instalación mediante revisiones a través de Sunsolve
Producto independiente Application ServerStandard y Edición Enterprise | Distribución basada en paquetes y en archivos

# Problemas de compatibilidad

En la próxima versión importante de Sun Java System Application Server Edición Enterprise , se producirán las siguientes incompatibilidades:

- Aunque el servicio HTTP seguirá utilizando una caché DNS para obtener un mejor rendimiento, no estará disponible la función de supervisión de la caché DNS.

- La compatibilidad con el almacenamiento en caché de archivos HTTP se renovará, por lo que producirán cambios en la configuración y la supervisión.

- El formato del sufijo de giro del registro de acceso se cambiará por uno compatible con los objetos de fecha y hora, como se especifica en `http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html`. El valor predeterminado de esta versión, “`%YYYY;%MM;%DD;-%hh;h%mm;m%ss;s` ,” seguirá siendo compatible, pero no se admitirá ninguna otra variación.

- Las propiedades, atributos y los elementos de `domain.xml` que no se admitan se marcarán como advertencias en el registro del servidor y en el archivo de registro de actualización indicando que están en desuso.

- El nodo `server.http-service.dns` ya no estará disponible en la vista de supervisión.

- Es posible que se eliminen algunos atributos del nodo `server.http-service.file-cache`. Por lo tanto, fallarán todos los comandos de supervisión `asadmin` que intenten acceder a los atributos eliminados.

## Herramienta de implementación (Deploytool)

La herramienta de implementación ya no estará disponible. Habrá una función equivalente disponible en NetBeans IDE. Para obtener más información y planificar una migración, consulte el tutorial de J2EE 1.4 para NetBeans 4.1 en http://www.netbeans.org/kb/41/j2ee-tut/index.html.

## Verificador

- El modo de interfaz gráfica de usuario de Verifier (ejecutado por `verifier -u`) ya no estará disponible. Habrá una función equivalente disponible en NetBeans IDE.

- El modo predeterminado de la verificación de aplicaciones al utilizar la herramienta Verifier cambiará de "Verify J2EE rules" (Verificar reglas de J2EE) a "Verify J2EE rules and Sun Application Server Configuration Rules" (Verificar reglas de J2EE y reglas de configuración de Sun Application Server).En otras palabras, Verifier comprobará de forma predeterminada si la aplicación cumple las reglas de J2EE y si está configurada para ejecutarse en Sun Application Server. El comando verifier incluirá un conmutador de línea de comandos para comprobar si una aplicación cumple sólo las reglas de J2EE.

## Cambios en el cargador de clases

En la versión actual, las entradas de directorio y JAR agregadas a los atributos `classpath-prefix` , `server-classpath` y `classpath-suffix` de `domain.xml` (archivo de configuración de Application Server) están disponibles en la ruta de clase del sistema JVM. Una aplicación que dependa de este comportamiento puede utilizar los siguientes métodos de la clase `java.lang.ClassLoader` para acceder a las clases o a otros recursos desde la ruta de clase del sistema JVM:

- `getSystemClassLoader()`

- `getSystemResource()`

- `getSystemResourceAsStream()`

- `getSystemResources`

En la siguiente versión importante, las entradas de directorio y JAR agregadas a `classpath-prefix`, `server-classpath` y `classpath-suffix` no estarán disponibles en la ruta de clase del sistema JVM. Si una aplicación utiliza uno de los métodos mencionados anteriormente, Sun recomienda encarecidamente el uso de un método equivalente que no presuponga que los recursos estén disponibles en la ruta de clase del sistema. Los métodos equivalentes que no utilizan la ruta de clase del sistema JVM están disponibles en `java.lang.ClassLoader` y deberían utilizarse siempre que sea posible como, por ejemplo, en el siguiente caso:

##### Ejemplo 2–1 Código antiguo

    java.net.URL url = ClassLoader.getSystemResource
    ("com/acme/tools/tools.properties");

##### Ejemplo 2–2 Cambio recomendado

    java.net.URL url = this.getClass().getClassLoader().getResource
    ("com/acme/tools/tools.properties");

Si no se puede cambiar el código, es recomendable utilizar la nueva opción de configuración que se agregará en la próxima versión y que se utiliza para definir la ruta de clase del sistema JVM.

## Configuración de seguridad del servicio web

La seguridad para los servicios web puede configurarse con los archivos `wss-client-config.xml` y `wss-server-config.xml`. Tenga en cuenta que el contenido y los nombres de estos archivos de configuración no son estables, y es muy probable que cambien. La funcionalidad equivalente seguirá estando disponible.

# Compatibilidad con J2EE

Sun Java System Application Server Edición Enterprise 8.1 2005Q2 es compatible con la plataforma J2EE 1.4. La siguiente tabla describe las API mejoradas que están disponibles en la plataforma J2EE 1.4.

Tabla 2–5 API disponibles en la plataforma J2EE 1.4

API | Descripción
Componentes
Aplicación y cliente de la aplicación | Aplicación de descriptores de implementación estándar mediante esquemas XML
Enterprise JavaBeans (EJB) 2.1 | Servicio de temporizadores y punto final del servicio web EJB
Java Servlet 2.4 | Filtro de punto final del servicio web
Arquitectura JavaServer Pages (JSP) 2.0 | Lenguaje de expresiones y biblioteca de etiquetas
J2EE Connector Architecture 1.5 | Conectividad con adaptador de recursos entrantes y Java Message Service (JMS)
Servicios web
Java Web Services Developer Pack 1.5 | Paquete de herramientas integrado para crear, probar e implementar aplicaciones XML y servicios y aplicaciones web
Java API for XML-based Remote Procedure Calls (JAX-RPC) 1.1 | Asignación para WSDL y tecnología Java y compatibilidad con el desarrollo de puntos finales y clientes de servicios web
WS-I Basic Profile 1.0 | Elemento que activa la interoperabilidad usando WSDL y SOAP
SOAP with attachment API for Java (SAAJ) 1.2 | Una API para mensajes basados en SOAP; hace posible la creación de mensajes SOAP con archivos adjuntos
Java APIs for XML Registries (JAXR) 1.0 | Una API estándar y uniforme para acceder a los registros XML como, por ejemplo, el servicio de descubrimiento e integración de descripciones universales, Universal Description Discovery and Integration (UDDI y ebXML)
Otro
J2EE Deployment 1.1 | API estándar que hace posible la implementación de aplicaciones y componentes J2EE
J2EE Management 1.0 | Definiciones para el modelo de información destinadas a gestionar la plataforma J2EE
Java Management Extensions (JMX) 1.2 | API de gestión estándar
Java Authorization Contract for Containers (JACC) 1.0 | Definiciones de los contratos de seguridad establecidos entre J2EE Application Server y el proveedor de directivas de autorizaciones
Java API for XML Processing (JAXP) 1.2 | Una API mediante la cual las aplicaciones pueden analizar y transformar documentos XML. También agrega compatibilidad con el procesamiento de esquemas XML
JMS 1.1 | Un estándar de mensajería que hace posible que los componentes de aplicación de J2EE creen, envíen y lean mensajes. También agrega compatibilidad con API uniformes para colas y tema.
JavaMail 1.3 | Conjunto de clases abstractas que sirven de modelo para un sistema de correo. También incluye actualizaciones menores para las API.

# Alto rendimiento

Application Server incluye un contenedor EJB de alto rendimiento, servicios y un contenedor web, y admite el envío simultáneo de mensajes con el software Sun Java System Message Queue.

# Escalabilidad

Application Server admite una escalabilidad horizontal mediante el agrupamiento (clúster) de las instancias de servidor y el equilibrado de carga de las solicitudes. También alcanza una escalabilidad vertical de clases gracias a su compatibilidad con equipos de gran tamaño y con varios procesadores. El agente de mensajes integrado se puede agrupar en clúster para obtener una mejor disponibilidad y escalabilidad. En el acceso de cliente desde clientes HTTP, aplicaciones de clientes enriquecidos basados en RMI/IIOP, clientes de servicios web y clientes JRM se puede efectuar un equilibrado de carga hacia los clústeres de Application Server.

# Compatibilidad con JavaServer Faces 1.1

Sun Java System Application Server Edición Enterprise 8.1 es compatible con la tecnología JavaServer Faces 1.1. La tecnología JavaServer Faces consiste en una serie de API de servidor que representan a los componentes de la interfaz de usuario que administran la validación de las entradas, la gestión, los eventos y el estado. Las API también determinan la navegación por la página y admiten funciones de accesibilidad e internalización. Puede agregar componentes personalizados de la interfaz de usuario con una biblioteca de etiquetas JSP personalizada.

Al desarrollar con la tecnología JavaServer Faces, cada miembro del equipo de desarrollo se puede centrar en un único aspecto del proceso. Un único modelo de programación sirve de vínculo entonces para los distintos fragmentos, lo que da como resultado un ciclo de desarrollo mucho más sencillo y eficaz.

- Previous: Capítulo 1 Visión general
- Next: Capítulo 3 Limitaciones y problemas conocidos

- © 2010, Oracle Corporation and/or its affiliates