30 de octubre de 2011

Bugs en la JVM HotSpot con Java 7

Hasta hoy me enteré que, cuando se liberó Java 7, la JVM HotSpot tenía algunos bugs, los cuales fueron rápidamente publicitados en Internet. Hasta donde entiendo, también Java 6 está afectado pero, creo, sólo si se habilitan las optimizaciones más agresivas de la máquina virtual.

Me enteré de esto leyendo el PDF de la presentación "Java 7 and Lucene: the story behind the story", presentada en el Apache Lucene Eurocon Barcelona 2011. Al parecer son tres bugs relacionados con la optimización de ciclos.

El problema ya quedó resuelto con la versión Java 7u1 y Java 6u29, según el autor de la presentación. Sin embargo, agrega una recomendación final:
Of course, there is still the recommendation not to use -XX:+AggressiveOpts on any JVM in production!
Espero los siguientes libros te sean útiles (lista automática):

23 de octubre de 2011

Cuándo usar Enterprise Java Beans (EJBs)

No hay duda que existen muchas aplicaciones de Java que utilizan los EJBs (Enterprise Java Beans) sin realmente necesitarlos. Oracle/Sun recomienda usar los EJBs cuando:
La aplicación necesita ser ESCALABLE.
Para atender a un número creciente de usuarios, puede ser necesario distribuir los componentes de la aplicación en múltiples máquinas. No sólo los enterprise beans de una aplicación pueden ejecutarse en diferentes máquinas, sino que también su localización permanecerá transparente a los clientes.
La aplicación debe asegurar la INTEGRIDAD DE LOS DATOS.
Los enterprise beans soportan transacciones, el mecanismo que administra el acceso concurrente a los objetos compartidos.
La aplicación atenderá DIVERSOS CLIENTES.
Con sólo unas pocas líneas de código, los clientes remotos pueden localizar fácilmente los enterprise beans. Estos clientes pueden ser ligeros, diferentes y numerosos.
¿Cuántas de las aplicaciones que usan EJBs cumplen con al menos uno de estos los requisitos?

Referencia: The Java EE 6 Tutorial > Part IV Enterprise Beans > Chapter 14 Enterprise Beans > What Is an Enterprise Bean? > When to Use Enterprise Beans, Oracle Corporation, 2010. (Archived by WebCite® at http://www.webcitation.org/62YhPq2TY)

21 de octubre de 2011

¿GlassFish con Java 7? Todavía no, según Oracle

Actualización: Ahora sé que había un bug en la JVM HotSpot de Java 7.

Alguien quería poner en producción un servidor GlassFish 3.1.1 usando Java 7. Sin embargo, se sorprendió al saber que Java 7 todavía no está disponible para los usuarios finales. En el sitio sitio oficial Java.com aparece el siguiente texto: 
¿Por qué no está todavía disponible Java SE 7 en java.com/es?

La nueva versión de Java estará disponible en primer lugar para los desarrolladores a fin de garantizar que no existen problemas importantes. Posteriormente, la descarga de la versión más reciente estará disponible para los usuarios finales en el sitio web www.java.com/es.

Novedades de Java SE 7. Oracle Corporation. (Archivado el 2011-10-21 por WebCite® en http://www.webcitation.org/62bsWw6lP)
Me llama la atención la frase "a fin de garantizar que no existen problemas importantes". Es decir que, a pesar de que la comunidad que desarrolla GlassFish liberó la versión 3.1.1 específicamente para poder usar Java 7, Oracle considera que éste último todavía no está listo.

Espero te sirvan los siguientes libros (lista automática):