IBM 32-bit Runtime Environment for Windows, Java 2 Technology Edition, Versión 1.4.2

Guía del usuario


Información de copyright

Nota: antes de utilizar esta información y el producto al que da soporte, asegúrese de leer la información general que aparece en Avisos.

Esta edición de la Guía del usuario corresponde a IBM 32-bit Runtime Environment for Windows, Java 2 Technology Edition, Versión 1.4.2, y a todos los releases y modificaciones siguientes hasta que se indique lo contrario en nuevas ediciones.

(c) Copyright Sun Microsystems, Inc. 1997, 2003, 901 San Antonio Rd., Palo Alto, CA 94303 USA. Reservados todos los derechos.

(c) Copyright International Business Machines Corporation, 1999, 2004. Reservados todos los derechos.

Derechos restringidos para los usuarios del Gobierno de los Estados Unidos - Su uso, duplicación o divulgación están restringidos por el GSA ADP Schedule Contract con IBM Corp.

Prefacio

El IBM(R) 32-bit Runtime Environment for Windows(R), Java(TM) 2 Technology Edition, Versión 1.4.2 contiene la Java Virtual Machine (JVM), clases Java de Sun Microsystems centrales y archivos de soporte. El Runtime Environment no contiene todas las clases que se encuentran en el paquete del SDK.

El IBM Runtime Environment contiene la Java Virtual Machine (JVM), clases Java de Sun Microsystems centrales y archivos de soporte. El Runtime Environment no contiene todas las clases que se encuentran en el paquete del SDK.

La Guía del usuario proporciona información general sobre el Runtime Environment e información específica sobre las diferencias en la implementación de IBM del Runtime Environment comparada con la implementación de Sun. Lea esta Guía del usuario además de la documentación más amplia que se proporciona en el sitio Web de Sun: http://java.sun.com.

El Runtime Environment recibe soporte en los siguientes productos:

|Tenga en cuenta que IPv6 sólo recibe soporte sobre Windows |XP y Windows Server 2003.

La guía IBM JVM Diagnostics Guide proporciona información más detallada sobre IBM JVM.

Tenga en cuenta que el Runtime Environment para Windows es un subconjunto del SDK y sólo le permite ejecutar aplicaciones Java. Si ha instalado el SDK, está incluido el Runtime Environment.

Los términos "Runtime Environment" y "Java Virtual Machine" se utilizan de manera indistinta a lo largo de esta Guía del usuario.

Los cambios técnicos de esta Guía del usuario de la Versión 1.4.2, que no sean los menores u obvios como la actualización de la versión "1.4.1" a "1.4.2", están indicados en rojo cuando se trata de HTML o una copia impresa en color y mediante barras verticales a la izquierda de los cambios.

Contenido

Información de copyright
Prefacio
Utilización del Runtime Environment
Obtención del número de versión y de nivel de compilación de IBM
Compilador just-in-time (JIT)
Inicio de una aplicación Java
Resumen de mandatos
Opciones
Globalización del mandato java
Trabajo con classpaths
Ejecución automática de un archivo Java
Trabajo con bootclasspath
Cómo especificar una política de recopilación de desechos
| |
Implementación de la agrupación de manejadores de conexiones para RMI
Cómo procesa las señales la JVM
Señales utilizadas por la JVM
Enlace de un controlador de código nativo con la biblioteca de encadenamiento de señales
Utilización del Java Plug-in
Navegadores soportados
Utilización de parámetros DBCS
Cómo ejecutar aplicaciones Java con tecnologías de asistencia nativas
Utilización de Web Start
Trabajo con un editor de métodos de entrada
Limitaciones conocidas
Comentarios sobre esta Guía del usuario
Avisos
Marcas registradas

Utilización del Runtime Environment

No se garantiza que las clases 1.4.2 compiladas funcionen en releases del Runtime Environment anteriores al 1.4.0.

Obtención del número de versión y de nivel de compilación de IBM

Para obtener el número de versión y de nivel de compilación de IBM, en el indicador de mandatos escriba:

java -version

Compilador just-in-time (JIT)

El compilador JIT (just-in-time) (jitc.dll) genera dinámicamente el código máquina utilizado con frecuencia por secuencias de código de bytes en aplicaciones o applets Java mientras se están ejecutando.

Runtime Environment para Windows incluye el JIT (jitc.dll), que, por omisión, está habilitado. Es posible inhabilitar el JIT para contribuir a aislar un problema con una aplicación Java, un applet o el mismo compilador.

Hay dos maneras de inhabilitar el JIT:

Para habilitar el compilador JIT, escriba lo siguiente en el indicador de mandatos:

    set JAVA_COMPILER=jitc

Para verificar si el JIT está habilitado o no, escriba lo siguiente en el indicador de mandatos:

    java -version

Si el JIT se está utilizando, aparece un mensaje que incluye lo siguiente:

(JIT enabled: jitc)

Si el JIT no se está utilizando, aparece un mensaje que incluye:

(JIT disabled)

Inicio de una aplicación Java

La herramienta java inicia una aplicación Java.

La JVM busca la clase de arranque y otras clases utilizadas en tres pasos de localización: la classpath de la rutina de carga, las extensiones instaladas y la vía de acceso de clases del usuario. Los argumentos que van después del nombre de clase o nombre de archivo JAR se pasan a la función principal.

El mandato javaw es idéntico a java, excepto que javaw no tiene una ventana de consola asociada. Utilice javaw si no desea que aparezca una ventana indicadora de mandatos. El iniciador javaw muestra un recuadro de diálogo con información de error si se produce una anomalía durante el inicio.

Resumen de mandatos

Los mandatos java y javaw tienen la sintaxis siguiente:

java [ opciones ] clase [ argumentos ... ]
java [ opciones ] -jar archivo.jar [ argumentos ... ]
javaw [ opciones ] clase [ argumentos ... ]
javaw [ opciones ] -jar archivo.jar [ argumentos ... ]

Los elementos que aparecen entre corchetes son opcionales.

opciones
Opciones de la línea de mandatos.
clase
Nombre de la clase que se va a invocar.
archivo.jar
Nombre del archivo jar que se va a invocar. Sólo se utiliza con -jar.
argumento
Argumento pasado a la función main (principal).

Si se especifica la opción -jar, el archivo JAR especificado contiene los archivos de clases y recursos de la aplicación, con la clase de arranque indicada mediante la cabecera de manifiesto Main-Class (clase principal).

Opciones

El iniciador tiene un conjunto de opciones estándar a las que el Runtime Environment da soporte actualmente y en releases futuros. Además, existe un conjunto de opciones no estándar.

Opciones estándar

Opciones no estándar

Las opciones -X que se listan más abajo son un subconjunto de las que están disponibles. No son estándar y están sujetas a cambios sin previo aviso.

Globalización del mandato java

El mandato java y otros mandatos del iniciador java (como javaw) permiten especificar un nombre de clase con cualquier carácter Unicode que esté en el juego de caracteres del entorno local actual.

Puede especificar cualquier carácter Unicode en el nombre de clase y argumentos utilizando secuencias de escape java. Para hacerlo, debe especificar -Xargencoding. Para especificar un carácter Unicode, utilice secuencias de escape con el formato \u####, donde # es un dígito hexadecimal (0 a 9, A a F).

Para especificar que el nombre de clase y los argumentos del mandato están en codificación UTF8 o ISO8859_1, utilice -Xargencoding:utf8 y -Xargencoding:latin.

En el Runtime Environment, si utiliza un entorno local distinto de inglés, los mandatos java y javaw proporcionan mensajes de salida traducidos. Estos mensajes son distintos de los de la versión 1.3.1 y también varían dependiendo del entorno local en que se ejecuta Java. Las descripciones de error y otra información de depuración devuelta por java está en inglés. La información de depuración devuelta durante la instalación se muestra entre corchetes.

Trabajo con classpaths

En el Runtime Environment, puede especificar un nombre de clase como nombre de archivo completo incluida la vía de acceso completa y la extensión .class. En versiones anteriores del SDK, sólo se podía especificar la clase relativa a la CLASSPATH y no permitía la extensión .class. La utilización del nombre de archivo completo permite iniciar una aplicación java desde el escritorio o iniciador de archivos. Si especifica un archivo .class con vía de acceso y extensión, la vía de acceso especificada se sitúa dentro de la CLASSPATH. Por ejemplo, el mandato java c:\miapli\estaapli.class equivale a especificar java -classpath c:\miapli estaapli.

Ejecución automática de un archivo Java

Para establecer que se ejecute automáticamente una clase java o un archivo jar desde el archivo utilice la opción Herramientas->Opciones de carpeta->Tipos de archivo del Explorador de Windows. De forma alternativa, escriba en el indicador de mandatos:

assoc .class=javaclass
ftype javaclass=C:\Archivos de programa\IBM\Java142\jre\bin\java.exe %l %*
Notas:
  1. %l es la letra l y no el número 1.
  2. Si Java está instalado en un directorio distinto de C:\Archivos de programa\IBM\Java142\, sustitúyalo por su directorio.

Trabajo con bootclasspath

Puede establecer la propiedad del sistema ibm.jvm.bootclasspath mediante la opción -D descrita en Inicio de una aplicación Java. El valor de esta propiedad se utiliza como vía de acceso de búsqueda adicional, insertándose entre un valor definido por -Xbootclasspath/p: y la classpath de la rutina de carga. La classpath de la rutina de carga es el valor por omisión o bien la definida mediante la opción -Xbootclasspath:.

No despliegue aplicaciones que utilizan la opción -Xbootclasspath: o -Xbootclasspath/p: para alterar una clase en core.jar, graphics.jar, server.jar, security.jar, xml.jar, tools.jar o charsets.jar, porque el despliegue podría violar la licencia de código binario de Java 2 Runtime Environment.

Cómo especificar una política de recopilación de desechos

La opción -Xgcpolicy de ejecución de la JVM especifica la política de recopilación de desechos.

-Xgcpolicy toma los valores optthruput (el valor por omisión) u optavgpause. La opción controla el comportamiento del recopilador de desechos, realizando intercambios entre la salida de la aplicación y el sistema en general y los tiempos de pausa provocados por la recopilación de desechos.

El formato de la opción y sus valores son:

-Xgcpolicy:optthruput

-Xgcpolicy:optavgpause

Tiempo de pausa

Cuando un intento de una aplicación de crear un objeto no se puede cumplir inmediatamente con el espacio disponible en el almacenamiento dinámico, corresponde al recopilador de desechos identificar los objetos sin referencia (desechos), suprimirlos y devolver el almacenamiento dinámico a un estado en el que las peticiones de asignación inmediatas y posteriores se puedan satisfacer rápidamente. Estos ciclos de recopilación de desechos provocan pausas inesperadas ocasionales en la ejecución del código de la aplicación. Como el tamaño y la complejidad de las aplicaciones aumenta y los almacenamientos dinámicos crecen en consecuencia, este tiempo de pausa de recopilación de desechos tiende a aumentar en duración e importancia. El valor por omisión de la recopilación de desechos, optthruput, proporciona una salida muy alta para las aplicaciones, pero al coste de estas pausas ocasionales, que pueden variar de unos pocos milisegundos a varios segundos, en función del tamaño del almacenamiento dinámico y la cantidad de desechos.

Reducción del tiempo de pausa

La opción optavgpause reduce substancialmente el tiempo invertido en estas pausas de recopilación de desechos, además de limitar el efecto de incremento del tamaño del almacenamiento dinámico en la duración de la pausa de recopilación de desechos. Esta opción tiene una importancia especial en configuraciones con almacenamientos dinámicos grandes. Los tiempos de pausa se reducen realizando algunas actividades de recopilación de desechos que son concurrentes con la ejecución normal del programa. Con el tiempo de pausa reducido, puede experimentarse alguna reducción en la salida de la aplicación que varía de una aplicación a otra.

Entornos con almacenamientos dinámicos muy llenos

Si el almacenamiento dinámico de Java está casi lleno y hay muy pocos desechos que recopilar, es posible que las peticiones de objetos nuevos no se puedan satisfacer rápidamente ya que no hay espacio disponible inmediatamente. Si se trabaja con un almacenamiento dinámico casi lleno, el rendimiento de las aplicaciones puede resentirse sin importar cuál de las opciones anteriores se usa y, si se siguen realizando peticiones de más espacio de almacenamiento dinámico, la aplicación recibe una excepción OutofMemory, que provoca la interrupción de la JVM si esta excepción no se detecta y gestiona. En este punto la JVM producirá dos archivos de diagnóstico: Heapdump y Javadump. Se detallan en la guía Diagnostics Guide for Java 1.4.2 y pueden utilizarse para determinar las causas de la alta ocupación del almacenamiento dinámico de Java. La guía Diagnostics Guide está en developerWorks, en la dirección: http://www-106.ibm.com/developerworks/java/jdk/diagnosis/. En estas condiciones, se recomienda incrementar el tamaño del almacenamiento dinámico mediante la opción -Xmx o reducir el número de objetos de aplicación en uso.

Información adicional sobre la recopilación de desechos

Para obtener información más detallada sobre la recopilación de desechos, consulte:

http://www.ibm.com/developerworks/ibm/library/i-garbage1/

http://www.ibm.com/developerworks/ibm/library/i-garbage2/

http://www.ibm.com/developerworks/ibm/library/i-garbage3/

| | |

Implementación de la agrupación de manejadores de conexiones para RMI

|

La agrupación de hebras para manejadores de conexiones para RMI no está habilitada por |omisión.

|

Para habilitar la agrupación de conexiones implementada a nivel TCPTransport de RMI, establezca la opción

|
-Dsun.rmi.transport.tcp.connectionPool=true (o cualquier valor no nulo)
|

Esta versión del Runtime Environment no tiene ningún valor que pueda utilizarse para limitar el número de hebras en |la agrupación de conexiones.

Cómo procesa las señales la JVM

Cuando se activa una señal que resulta interesante para la JVM, se llama a un manejador de señales. Este manejador de señales determina si ha sido llamado por una hebra Java o no Java. Si la señal es de una hebra Java, la JVM toma el control del manejo de la señal. Si la señal es de una hebra no Java y la aplicación que ha instalado la JVM ha instalado previamente su propio manejador de señales, se pasa el control a ese manejador. En caso contrario, la señal se ignora (tanto si es la acción predeterminada para la señal como si no lo es). La excepción a esta regla se produce en Windows, donde se crea una nueva hebra por cada señal generada externamente (por ejemplo, al pulsar Control-C o Control-Inter) para ejecutar el manejador de señales. En este caso, el manejador de señales de la JVM, asume que la señal es para la JVM.

Para señales de excepción y de error la JVM:

Para obtener información sobre cómo escribir un iniciador que especifique los enganches anteriores, consulte: http://www-106.ibm.com/developerworks/java/library/i-signalhandling/. Este artículo se ha escrito para Java V1.3.1, pero también se aplica a versiones posteriores.

En el caso de las señales de interrupción, la JVM también entra en una secuencia de conclusión controlada, pero esta vez se trata como una terminación normal que:

La conclusión es idéntica a la conclusión iniciada por una llamada al método Java System.exit().

Otras señales utilizadas por la JVM son para temas de control interno y no hacen que termine. La única señal de control interesante es SIGBREAK, que hace que se genere un Javadump.

Señales utilizadas por la JVM

La Tabla 1 siguiente muestra las señales utilizadas por la JVM. Las señales se han agrupado en la tabla por tipo o utilización, de la forma siguiente:

Tabla 1. Señales utilizadas por la JVM
Nombre de señal Tipo de señal Descripción Inhabilitada por -Xrs
SIGSEGV Excepción Acceso incorrecto a la memoria (escritura en memoria inaccesible) No
SIGILL Excepción Instrucción no permitida (intento de invocar una instrucción de máquina desconocida) No
SIGFPE Excepción Excepción de coma flotante (división por cero) No
SIGABRT Error Terminación anormal. La JVM lanza esta señal cada vez que detecta una anomalía en la JVM.
SIGINT Interrupción Atención interactiva (Control-C). La JVM sale normalmente.
SIGTERM Interrupción Petición de terminación. La JVM saldrá normalmente.
SIGBREAK Control Señal de interrupción procedente de un terminal. La JVM utiliza esto para tomar Javadumps.

Utilice la opción -Xrs (reducir el uso de señales) para evitar que la JVM maneje la mayoría de señales. Para obtener más información, consulte la página del iniciador de aplicaciones de Java de Sun en http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/java.html.

Las señales 2 (SIGINT), 4 (SIGILL), 6 (SIGABRT), 8 (SIGFPE), 11 (SIGSEGV) y 15 (SIGTERM) hacen que la JVM concluya; por lo tanto, un manejador de señales de la aplicación no debería intentar recuperarse de estas situaciones a menos que ya no necesite los servicios de la JVM.

Enlace de un controlador de código nativo con la biblioteca de encadenamiento de señales

El Runtime Environment contiene un servicio de encadenamiento de señales. El encadenamiento de señales permite a la JVM interoperar de forma más eficaz con el código nativo que instala sus propios manejadores de señales.

El servicio de encadenamiento de señales permite a la aplicación enlazar y cargar la biblioteca compartida jsig.dll antes de msvcrt.dll. La biblioteca jsig.dll garantiza que las llamadas a signal() sean interceptadas para que sus manejadores no sustituyan a los manejadores de señales de la JVM. En su lugar, estas llamadas guardan los nuevos manejadores de señales o los "encadenan" detrás de los manejadores instalados por la JVM. Más tarde, cuando se lance alguna de estas señales y se determine que no está destinada a la JVM, se invocarán los manejadores preinstalados.

Para utilizar jsig.dll, enlácela con la aplicación que crea o incorpora la JVM.

Utilización del Java Plug-in

El Java Plug-in es un plug-in de navegador Web. Si utiliza el Java Plug-in, puede ignorar la JVM por omisión del navegador Web y utilizar en su lugar un Runtime Environment para ejecutar applets o beans en el navegador.

El Java Plug-in está documentado por Sun en: http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/.

Navegadores soportados

Tabla 2. Navegadores soportados por el Java Plug-in
Sistema operativo Versiones por omisión de Internet Explorer Versiones soportadas de Internet Explorer Versiones por omisión de Netscape Versiones soportadas de Netscape
Windows 98 5.0 (Second Edition) 5.5 SP2, 6.0 4.77, 6.2.2
Windows ME 5.5 5.5 SP2, 6.0 4.77, 6.2.2
Windows NT 4.0 SP6a 5.5 SP2, 6.0 4.77, 6.2.2
Windows 2000 SP2 5.01 5.5 SP2, 6.0 4.77, 6.2.2
Windows XP 6.0 6.0 4.77, 6.2.2
Windows Server 2003 6.0 6.0 4.77, 6.2.2

Utilización de parámetros DBCS

El Java Plug-in soporta caracteres de doble byte (por ejemplo chino tradicional BIG-5, coreano, japonés) como parámetros para los códigos <APPLET>, <OBJECT> y <EMBED>. Debe seleccionar la codificación de caracteres correcta para el documento HTML para que el Java Plug-in pueda analizar el parámetro. Especifique la codificación de caracteres para el documento HTML utilizando el código <META> en la sección <HEAD> de esta forma:

<meta http-equiv="Content-Type" content="text/html; charset=big5">

Este ejemplo indica al navegador que analice el archivo HTML utilizando la codificación de caracteres chinos BIG-5. Todos los parámetros se pasan correctamente al Java Plug-in. Sin embargo, es posible que algunas versiones antiguas de navegadores no entiendan correctamente este código. En este caso, puede forzar que el navegador ignore este código, pero deberá cambiar la codificación manualmente.

Para especificar la codificación que desea utilizar para analizar el archivo HTML:

Cómo ejecutar aplicaciones Java con tecnologías de asistencia nativas

Sun proporciona el Java Access Bridge para facilitar a las tecnologías de asistencia nativas de Windows, como los lectores de pantalla, acceso al soporte Java Accessibility en una aplicación Java. Estas tecnologías de asistencia nativas de Windows deben soportar llamadas al Java Access Bridge.

El Java Access Bridge que facilita Sun incluye un programa de instalación, que coloca cinco archivos en los directorios correctos: access-bridge.jar, jaccess.jar, accessibility.properties, JavaAccessBridge.dll y WindowsAccessBridge.dll. Se entrega una copia de jaccess.jar en el directorio adecuado para su uso con JawBridge. Se entrega una copia de jaccess.jar en el directorio adecuado para su uso con JawBridge.

Si ya ha instalado el IBM Accessibility Bridge (JawBridge), que permite que el Windows 2000 Magnifier funcione con aplicaciones Swing, y desea ejecutar al mismo tiempo el Java Access Bridge, edite la línea del archivo accessibility.properties para que diga:

assistive_technologies=com.sun.java.accessibility.AccessBridge,
JawBridge

Comente la línea que empieza por # para desactivar ambos puentes. El siguiente sitio Web le indica cómo bajar el Java Access Bridge:

http://java.sun.com/products/jfc/accessibility.html

Utilización de Web Start

Java Web Start es una forma de desplegar aplicaciones basadas en tecnología Java. Conecta el sistema e Internet y permite al usuario iniciar y gestionar aplicaciones directamente desde la Web. Java Web Start proporciona activación de aplicaciones mediante una sola pulsación y garantiza que siempre ejecutará la última versión, eliminando los procedimientos de instalación o actualización. A menudo, la distribución de software por la Web requiere encontrar el instalador en la Web, bajar el instalador, localizarlo y ejecutarlo. Después de ejecutar el instalador, éste solicita los directorios y opciones de instalación como completa, típica o mínima. Puede llegar a ser una tarea complicada y que requiere demasiado tiempo que debe repetirse para cada nueva versión del software.

En cambio, las aplicaciones desplegadas en la Web, como los clientes de correo electrónico y calendarios basados en HTML, son sencillas de instalar y utilizar. El navegador Web ha automatizado el proceso. No existen pasos complicados para bajar, preparar y configurar, y está garantizado que se ejecuta la última versión. Java Web Start proporciona las mismas ventajas en aplicaciones con funcionalidad completa.

Para obtener información sobre los navegadores que dan soporte a Web Start, consulte el apartado Navegadores soportados.

Para obtener más información sobre Web Start, consulte: http://java.sun.com/products/javawebstart y para obtener más documentación, consulte: http://java.sun.com/j2se/1.4.2/docs/guide/jws/index.html.

Trabajo con un editor de métodos de entrada

Cuando trabaje con un editor de métodos de entrada (IME), se recomienda que complete la composición de caracteres y que seleccione el candidato antes de utilizar el espacio de trabajo para cualquier otra operación.

Limitaciones conocidas

Si escribe caracteres DBCS en un JTextArea, JTextField o JFileChooser, al cambiar de algunos IME en chino (en particular, código interno chino y Zhengma) al IME Intelligent ABC, se puede producir un volcado de la imagen de memoria.

|Las limitaciones siguientes afectan a Windows XP para japonés |y Windows XP para chino tradicional. Cuando un usuario escribe texto en un AWT TextArea mientras utiliza un IME y |después redimensiona la ventana de la aplicación antes de consignar el texto, el texto se |consigna automáticamente.

Comentarios sobre esta Guía del usuario

Si tiene algún comentario acerca de la utilidad, o no utilidad, de esta Guía del usuario, estaremos encantados de conocer su opinión a través de uno de estos canales. Tenga en cuenta que estos canales no están destinados a responder consultas técnicas, sólo son para comentarios acerca de documentación. Envíe sus comentarios:

La letra pequeña. Si elige enviar un mensaje a IBM, acepta que toda la información contenida en su mensaje, incluidos los datos de respuesta, como preguntas, comentarios, sugerencias, etc., se considerarán no confidenciales e IBM no tendrá ningún tipo de obligación sobre dicha información y será libre de reproducir, utilizar, revelar y distribuir la información a otros sin limitaciones. Además, IBM será libre de utilizar cualquier idea, concepto, conocimiento o técnica contenido en dicha información para cualquier tipo de propósito, incluyendo, pero sin limitarse al desarrollo, fabricación y marketing de productos que incluyan dicha información.

Avisos

Esta información se ha desarrollado para productos y servicios que se ofrecen en los EE.UU. IBM puede que no ofrezca los productos, servicios o características que se discuten en este documento en otros países. Consulte a su representante local de IBM para obtener información acerca de los productos y servicios actualmente disponibles en su zona. Cualquier referencia a un producto, programa o servicio de IBM no pretende afirmar ni implica que sólo se pueda utilizar dicho producto, programa o servicio de IBM. En su lugar, puede utilizarse cualquier producto, programa o servicio funcionalmente equivalente que no infrinja ninguno de los derechos de propiedad intelectual de IBM. Sin embargo, la evaluación y la verificación del funcionamiento conjuntamente con otros productos, programas o servicios que no son de IBM es responsabilidad del usuario.

IBM puede tener aplicaciones patentadas o pendientes de patente que cubran el tema tratado en este documento. La posesión de este documento no le otorga ninguna licencia sobre estas patentes. Puede enviar consultas de licencias por escrito a la dirección siguiente:

Para consultas de licencias relacionadas con la información de doble byte (DBCS), póngase en contacto con el Departamento de la propiedad intelectual de IBM de su país o envíe las consultas por escrito a la dirección siguiente:

El párrafo siguiente no se aplica al Reino Unido ni a cualquier otro país en el que tales disposiciones sean incoherentes con la legislación nacional:

INTERNATIONAL BUSINESS MACHINES CORPORATION PROPORCIONA ESTA PUBLICACIÓN "TAL CUAL" SIN GARANTÍA DE NINGUNA CLASE, YA SEA EXPLICITA O IMPLÍCITA, INCLUIDAS, PERO SIN LIMITARSE A ELLAS, LAS GARANTÍAS IMPLÍCITAS DE NO VULNERACIÓN, COMERCIALIZACIÓN O IDONEIDAD PARA UN PROPÓSITO DETERMINADO. Algunos estados no contemplan la limitación de responsabilidades, ni implícitas ni explícitas, en determinadas transacciones, por lo que cabe la posibilidad de que esta declaración no sea aplicable en su caso.

Esta información puede contener imprecisiones técnicas o errores tipográficos. Periódicamente se realizarán modificaciones en la información aquí contenida; dichos cambios se incorporarán en nuevas ediciones de la publicación. IBM puede efectuar mejoras y/o cambios en los productos y/o programas descritos en esta información en cualquier momento y sin previo aviso.

Cualquier referencia hecha en esta información a sitios Web que no son de IBM se proporciona únicamente para su comodidad y no debe considerarse en modo alguno como promoción de dichos sitios Web. Los materiales de estos sitios Web no forman parte de los materiales de IBM para este producto y el uso que se haga de estos sitios Web es de la entera responsabilidad del usuario.

IBM puede utilizar o distribuir la información que facilite de la manera que considere apropiada sin incurrir en obligaciones con el remitente.

Los poseedores de la licencia de este programa que deseen obtener información acerca del mismo con el propósito de permitir (i) el intercambio de información entre programas creados independientemente y otros programas (incluido éste) y (ii) la utilización mutua de la información intercambiada, deben ponerse en contacto con la dirección siguiente:

Esta información estará disponible, sujeta a los términos que correspondan, lo que en algunos casos incluirá el pago de una cuota.

IBM proporciona el programa con licencia descrito en este documento y todo el material con licencia disponible para el mismo bajo los términos del Acuerdo de cliente de IBM, el Acuerdo internacional de licencia de programas IBM o cualquier acuerdo equivalente entre las dos partes.

Cualquier información acerca del rendimiento que contenga el presente documento se ha determinado en un entorno controlado. Por lo tanto, los resultados obtenidos en otros entornos operativos pueden variar significativamente. Es posible que algunas medidas se hayan tomado en sistemas de nivel de desarrollo y no hay garantías de que estas medidas serán iguales en los sistemas habitualmente disponibles. Asimismo, algunas mediciones pueden haber sido estimadas mediante la extrapolación. Los resultados reales pueden variar. Los usuarios de este documento deben verificar los datos aplicables para su entorno específico.

La información relativa a productos que no son de IBM se ha obtenido de los proveedores de estos productos, de los anuncios públicos o de otras fuentes disponibles públicamente. IBM no ha probado esos productos y no puede confirmar la precisión del rendimiento, su compatibilidad o cualquier otra afirmación relacionada con productos que no son de IBM. Las preguntas sobre las posibilidades de los productos que no son de IBM deben dirigirse a los proveedores de dichos productos.

Marcas registradas

IBM es una marca registrada de International Business Machines Corporation en los Estados Unidos y/o en otros países.

IBM es una marca registrada de International Business Machines Corporation en los Estados Unidos y/o en otros países.

Java y todas las marcas y logotipos basados en Java son marcas comerciales o marcas registradas de Sun Microsystems, Inc. en los Estados Unidos y/o en otros países.

Microsoft, Windows, Windows NT y el logotipo de Windows son marcas registradas de Microsoft Corporation en los Estados Unidos y/o en otros países.

Intel, Intel Inside (logotipos), MMX y Pentium son marcas registradas de Intel Corporation en los Estados Unidos y/o en otros países.

Otros nombres de empresas, productos o servicios pueden ser marcas registradas o de servicio de otros.

Este producto incluye software desarrollado por Apache Software Foundation http://www.apache.org/.