Migración desde releases anteriores de IBM SDK, Java Technology Edition
Consideraciones al migrar desde releases anteriores de IBM® SDK, Java™ Technology Edition.
Este release contiene muchas características y funciones nuevas en comparación con los releases anteriores, que podían requerir una planificación cuidadosa. Para obtener una visión general, consulte la sección Novedades .
Cambios importantes
- Para z/OS®, el componente JRIO estaba en desuso en IBM SDK, Java Technology Edition Versión 7 y se ha eliminado de este release. Utilice en su lugar los recursos de E/S del registro que se proporcionan en el componente JZOS. Para obtener más información sobre JZOS, consulte: Java Batch Launcher and Toolkit for z/OS.
- La propiedad del sistema jdk.map.althashing.threshold ya no está disponible con este release porque ya no se utiliza el algoritmo de hash alternativo de correlaciones hash. El algoritmo de hash alternativo se introdujo en releases anteriores de Java para mejorar el rendimiento de java.util.HashMap bajo determinadas condiciones. Se ha mejorado esta implementación en este release mediante árboles de equilibrio en lugar de utilizar listas de enlaces para almacenar entradas de correlaciones. Las clases WeakHashMap y Hashtable vuelven al comportamiento anterior al algoritmo de hash alternativo. Sin embargo, los cambios efectuados en las clases HashMap y HashSet pueden alterar el orden de iteración de los elementos devueltos de las correlaciones hash.
- La Herramienta de proceso de anotaciones (APT) ya no se suministra con este release. La herramienta ha quedado en desuso en la versión 7 y se ha reemplazado por la API Pluggable Annotation Processing (JSR269). Si utiliza el proceso de anotaciones, debe migrar a esta nueva instalación, que se introdujo en la Versión 6. Para obtener más información, consulte https://docs.oracle.com/javase/7/docs/technotes/guides/apt/index.html.
- La característica de accesibilidad de IBM, JawBridge, ya no está soportada en este release. Si desea utilizar un lector de pantalla, como JAWS para Windows, configure el entorno de ejecución para utilizar Oracle Java Access Bridge. Para obtener más información, consulte Habilitación del soporte de accesibilidad de Java.
- La herramienta jdkconv no se incluye en este release.
- Nashorn Javascript Engine sustituye la implementación Rhino en este release. El archivo javascript.jar Rhino se ha eliminado del directorio jre/lib/ext.
- En AIX®, la paleta de colores de Common Desktop Environment (CDE) ahora da soporte a valores de color altos. Como resultado, los valores predeterminados de SystemColor para Abstract Windows Toolkit (AWT) son ahora los mismos que Motif Toolkit en releases anteriores. Para volver a las opciones anteriores de la paleta de colores de AWT, establezca la propiedad del sistema ibm.awt.mediumColor en true. Para obtener más información, consulte -Dibm.awt.mediumColor option en Opciones de línea de mandatos de propiedad del sistema varias.
- La propiedad del sistema com.ibm.IgnoreMalformedInput se ha eliminado en este release porque solo es aplicable para los convertidores de E/S, que ya no están disponibles en Java SE 8.
- La propiedad del sistema ibm.stream.nio se elimina en este release. La función de esta propiedad era habilitar el uso de convertidores de entrada/salida nuevos (NIO) de forma predeterminada en lugar de convertidores de E/S. Sin embargo, los convertidores de E/S ya no están disponibles en Java SE 8 y, por lo tanto, la propiedad es redundante.
- A partir de este release, el ORB gestiona automáticamente el número de conexiones simultáneas en el punto final de servidor. Este cambio de comportamiento puede provocar algunos problemas, que se detallan en Problemas de gestión de conexiones autónomas.
- AIX, Linux®y z/OS: la tecla ALT ya no resalta el primer menú en la ventana activa de la interfaz de usuario a menos que la aplicación utilice un aspecto de Windows (com.sun.java.swing.plaf.windows.WindowsLookAndFeel).
- El nombre del juego de caracteres
IBM1047_LFse cambia porx-IBM1047_LF.
A partir de la renovación de servicio 5 en z/OS, hay un nuevo requisito de hardware mínimo de IBM System z9® o posterior. Los sistemas z800 y z900 más antiguos ya no están soportados.
Linux: Para satisfacer una dependencia de enlace dinámico, debe estar instalada la biblioteca C++ estándar, libstdc++.so.6.
Para soportar Strings compacto (-XX:+CompactStrings), java.lang.String ya no contiene un campo offset, que se utiliza para indicar el inicio de la String en los datos char[] subyacentes. El rendimiento puede verse afectado cuando se utilizan los métodos siguientes en el código para valores de beginIndex distintos de cero:- String.substring(int beginIndex)
- String.substring(int beginIndex, int endIndex)
En releases anteriores, se crea una nueva String pero el char[] subyacente se comparte con la String original por lo que no se copian los datos char[]. Si el rendimiento se ha degradado significativamente porque ahora se están copiando los datos char[], intente volver a implementar el código para evitar la copia de los datos String.
Nota: Las aplicaciones que se escriben para ejecutarse en implementaciones Java que utilizan la máquina virtual HotSpot no se ven afectadas, porque los datos de String se copian, incluso cuando se utiliza un beginIndex de cero.
En la renovación de servicio 5, los cambios siguientes se aplican a la máquina virtual IBM J9:- El valor predeterminado para la opción -Xloaminimum se modifica de 0 a 0,01. Este valor asigna un espacio de tenencia mínimo del 1% al área de objeto grande (LOA) en lugar del 0%.
- Las mejoras se han realizado en IBM Garbage Collector y en Memory Pool MXBeans para proporcionar
información más detallada sobre la actividad de recogida de basura y las agrupaciones de memoria asociadas. Si la aplicación de supervisión está escrita para esperar sólo una agrupación de memoria de almacenamiento dinámico o se basa en el nombre de agrupación de memoria
Java heap, puede volver a la implementación anterior utilizando la opción -XX:+HeapManagementMXBeanCompatibility. Para obtener más información sobre esta opción y los nuevos nombres MemoryPool y GarbageCollector que se proporcionan, consulte -XX:[ +|-]HeapManagementMXBeanCompatibility. - El método OperatingSystemMXBean.getProcessCpuTime() se ha cambiado para devolver valores en nanosegundos en lugar de cientos de nanosegundos. Si la aplicación utiliza este método, modifique la aplicación o revierta al comportamiento anterior utilizando la propiedad del sistema -Dcom.ibm.lang.management.OperatingSystemMXBean.isCpuTime100ns .
- El recurso de Runtime Instrumentation, disponible en Power ® 8, zEC12y procesadores posteriores, está inhabilitado de forma predeterminada. Esta función se puede habilitar con la -XX:+RuntimeInstrumentation opción.

El nivel de mantenimiento soportado mínimo para AIX V6.1 es ahora
TL9.
El tamaño predeterminado de una memoria caché de clase compartida es ahora de 300 MB, con excepciones para memorias caché persistentes con menos de 6 GB de espacio de disco libre y memorias caché no persistentes en Linux. Para obtener más información, consulte -Xshareclasses.
Los permisos de directorio de memoria caché de clases compartidas por omisión son más estrictos en sistemas operativos que no sean Windows. Para más información, consulte -Xshareclasses:cacheDirPerm. 
El tamaño de pila predeterminado para las hebras del sistema operativo en z/OS de 64 bits ha cambiado de 384 KB al mínimo del sistema operativo de 1 MB. Para obtener más información sobre este valor, consulte -Xmso.
La implementación de JDWP se ha sustituido por el equivalente de OpenJDK, por lo que algunas de las opciones del mandato han cambiado. Para obtener más información, consulte la ayuda de la línea de mandatos:java -agentlib:jdwp=help
Los cambios en las interfaces internas de Attach API afectan a la biblioteca de clases internas del SDK y a los archivos tools.jar y healthcenter.jar :- Si una aplicación utiliza una copia privada del archivo tools.jar de un release anterior, es posible que la aplicación no pueda utilizar la API de conexión en este release porque las clases Java no coinciden. En su lugar, utilice el archivo tools.jar de este release.
- Del mismo modo, el archivo healthcenter.jar de este release no es compatible con releases anteriores.

- A partir del fixpack 41, el tamaño del almacenamiento dinámico adecuado para una aplicación se determina y aplica automáticamente. Para más información, consulte -XX:[ +|-]UseGCStartupHints.
- A partir del fixpack 41, las páginas grandes transparentes (THP) están habilitadas de forma predeterminada cuando se utiliza el valor
madvise(/sys/kernel/mm/transparent_hugepage/enabled) en Linux en sistemas x86 . Para más información, consulte -XX:[ +|-]TransparentHugePage.
La opción -XX:[+|-]ExitOnOutOfMemoryErrorse actualiza para salir sólo en la máquina virtualOutOfMemoryErrorsen lugar de errores generados por la máquina virtual y Java, para que coincidan con la opción Hotspot. Para obtener más información, consulte-XX:[+|-]ExitOnOutOfMemoryError.
La implementación de manejo de señales de IBM se sustituye en este release por la implementación de OpenJDK . Como resultado, ahora se ignora la opción de línea de mandatos de la propiedad del sistema -Dcom.ibm.signalhandling.ignoreLogoff. Para obtener más información, consulte Opciones de línea de mandatos de propiedades del sistema varias.
Ahora no se confía en los certificados de servidor TLS anclados por las entidades emisoras de certificados raíz de Symantec. Para obtener más información, consulte Novedades: renovación de servicio 6 fixpack 25.
De forma predeterminada, los protocolos de seguridad TLS 1.0 y 1.1 están inhabilitados. Para obtener más información, consulte Novedades: renovación de servicio 6 fixpack 30.
IBMJCEPlus es el proveedor de seguridad predeterminado. Puede revertir esta actualización cambiando el orden de los proveedores en el archivo jre/lib/security/java.security del directorio de instalación del SDK. Para obtener más información, consulte Habilitación de los proveedores IBMJCEPlus y IBMJCEPlusFIPS.
Características en desuso y eliminadas
- La implementación XML de IBM está en desuso y será sustituida por la implementación XML de Oracle en un release futuro.
- La opción -Xgc:splitheap está en desuso y se eliminará de un release futuro de la máquina virtual OpenJ9 de Eclipse.
- La opción -Xfastresolve está en desuso y se eliminará de un release futuro de la máquina virtual OpenJ9 de Eclipse.
- La opción -Xlp está en desuso y se eliminará de un release futuro de la máquina virtual OpenJ9 de Eclipse. En su lugar, utilice la opción -Xlp:objectheap para asignar el almacenamiento dinámico de objetos Java utilizando los tamaños de página grandes y la opción -Xlp:codecache para asignar la memoria caché de código JIT utilizando tamaños de página grandes.
Los métodos com.ibm.lang.management.MemoryMXBean.getGCMasterThreadCpuUsed() y com.ibm.lang.management.MemoryMXBean.getGCSlaveThreadsCpuUsed() están en desuso y se eliminarán de un futuro release de la máquina virtual Eclipse OpenJ9 . En su lugar, utilice los métodos com.ibm.lang.management.MemoryMXBean.getGCMainThreadCpuUsed() y com.ibm.lang.management.MemoryMXBean.getGCWorkerThreadsCpuUsed() .
Se han eliminado las siguientes suites de cifrado JSSE:- SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA
- SSL_RSA_FIPS_WITH_DES_CBC_SHA

Las propiedades de renegociación TLS com.ibm.jsse2.renegotiateycom.ibm.jsse2.extended.renegotiation.indicatorse sustituyen por nuevas propiedadescom.ibm.jsse2.allowUnsafeRenegotiationycom.ibm.jsse2.allowLegacyHelloMessages. El uso de las propiedades anteriores no tiene ningún efecto y no se genera ningún mensaje de aviso. Para obtener más información sobre las nuevas propiedades, consulte Problema de renegociación de TLS (Transport Layer Security) en la guía de seguridad.
El tamaño de pila del sistema operativo predeterminado en AIX y Linux en IBM Power Systems de 64 bits ha aumentado de 256 KB a 512 KB.
Migración desde releases anteriores
Si está migrando de un release anterior a la Versión 7, lea el tema titulado Migración de releases anteriores en la guía de usuario de la plataforma adecuada para la Versión 7. Estas guías de usuario se pueden encontrar en la página siguiente: IBM SDK, Java Technology Edition, Versión 7.