Disponible Java 7 u40 con Java Mission Control
Oracle acaba de anunciar Java 7 u40; en esta versión se continúa integrando la máquina virtual Hot Spot creada por Sun y la máquina virtual JRockit creada por BEA Systems (ambas compañías adquiridas por Oracle). Esta es la primera versión en la que dentro del JDK tendremos Java Mission Control, una potente consola que nos va a permitir obtener un montón de información sobre una máquina virtual Java en tiempo real; aquí vemos la pantalla principal:
Aquí vemos una utilidad que tiene para monitorizar el estado de threads y, por ejemplo, poder listar todos los thread que se encuentran en deadlock:
Y aquí vemos una pantalla que permite crear alarmas si se producen ciertas situaciones dentro de la máquina virtual, como por ejemplo un uso elevado de CPU o de memoria RAM:
Oracle Java Mission Control and Oracle Java Flight Recorder aunque forman parte de Java 7 u40 y son gratuitos para desarrollo, no son gratuitos para uso en producción y hay que pagarle una licencia para ello. Según Oracle, el usar en producción este tipo de funcionalidad de monitorización sólo supone una sobrecarga de aproximadamente un 2% para la aplicación.
Aquí os dejo un videotutorial donde se explica el funcionamiento de estas herramientas:
Reader Comments (24)
Si tienes una MacBook Pro con pantalla retina, es momento que actualizes: En esta versión se formaliza el soporte para este hardware. Yo he venido trabajando con la early access, y el único inconveniente que encontré es que no era posible trabajar con Grails por una incompatibilidad.
Hay que tener cuidado con las aplicaciones de escritorio que usen JavaFX, porque el nuevo runtime, jfxrt.jar, es incompatible con versiones anteriores, y puede lanzar (lo hará) excepciones "nunca vistas".
Wow, y el instalador ha mejorado sustancialmente y... ya no pide instalar la barra de ASK!!!
Pero ¿qué os parece el hecho de que estas herramientas no sean gratuitas para uso en producción?
No pide instalar esa barra si se instala el JDK. Las versiones JRE desde java.com siguen "recomendándolo".
> Pero ¿qué os parece el hecho de que estas herramientas no sean gratuitas para uso en producción?
Me parece bien. Oracle no deja de ser una empresa, con sus empleados, y hay que pagarles... ¿Por qué crees que deberían estar grátis?
JRockit ha sido, y sigue siendo, un producto comercial destinado a empresas.
No veo que nada haya cambiado, excepto que su herramienta de análisis, Mission Control, es accesible gratuitamente, como parte de la distribución del JDK, para su uso en desarrollo.
Poder usar esta herramienta, sin pagar una licencia, es una indudable ventaja para los desarrolladores. Ya la he probado, y la cantidad de información que proporciona es abrumadora.
Hay un principio empresarial muy básico: si haces negocio con una herramienta, no te quejes de que el fabricante de dicha herramienta cobre por adquirirla o por usarla.
Nos hemos acostumbrado demasiado a que "lo gratis" sea lo ajeno, mientras que no aplicamos el mismo criterio a "lo propio".
100% de acuerdo con choces. No veo criticable el hecho de que una herramienta que hasta ahora era de pago, sea distribuida gratuitamente con el JDK. Cual es el problema? Yo he probado esta misma maniana con mi servidor local y es simplemente increible. Cuanto habra constado desarrollarla? Si hay que pagar licencia para su uso en produccion, me parece razonable, licito y una buena inversion, y no limita para nada al desarrollador Java, sino al contrario. Que sea gratuita para los entornos previos es un autentico regalo y un gran avance.
Un saludo
A mi con esto me surgen dos dudas:
1) Teniendo en cuenta que ahora el JDK de Oracle incluye el Mission Control, que no se puede usar en producción sin pagar ¿sí que puedo usar el JDK de Oracle en producción y no hay problemas mientras no toque la funcionalidad de Mission Control uno puede usar el JDK en producción y tengo que usar, por ejemplo, el OpenJDK?
2) Si uso el JDK de Oracle en producción, incluyendo la funcionalidad de Mission Control, y no le pago licencia a Oracle ¿ Oracle se entera? Es decir ¿el Mission Control "llama" a casa cada vez que se usa?
1) Yo por lo que veo en la licencia, la restriccion es de "uso", por lo que entiendo que tenerlo simplemente alojado en el servidor de produccion no infringe la licencia.
2) Eso tambien me lo he planteado. Supongo que lo dejan a la buena fe de cada uno. Yo lo he monitorizado unos minutos y no he visto que intente conectarlse a ningun lado. Pero quien sabe, igual es muy avanzado y utiliza microondas :-)
Un saludo
Yo estoy de acuerdo en que se pague por el Missioncontrol en produccion. El trabajo hay que pagarlo por defecto. Si alguien da un jar gratis, pues se le agradece porque no tiene porque hacerlo, pero eso no obliga a que los demas tambien lo hagan.
En cuanto a lo que pregunta Abraham, espero que no obliguen a usar el OpenJDK. si la aplciacion llama a casa ¿como puede hacer para saber que esta en produccion? Ahora cada portatil replica produccion...
¿Desde dónde se descargan distribuciones del OpenJDK?
Concretando más, para Windows, Mac OS X, Solaris
Hola choces,
La mayoría de las distros de Linux ya incorporan el OpenJDK, o permiten instalarlo / actualizarlo desde los repositorios y funcionan muy bien.
http://openjdk.java.net/install/index.html
Para Windows y Mac OS X te recomendaría que sigas utilizando la versión de Oracle.
Leyendo entre líneas..
Download and install the open-source JDK 7 for most popular Linux distributions.
If you came here looking for Oracle JDK 7 product binaries for Solaris, Linux, Mac OS X or Windows, which are based largely on the same code, you can download them from java.oracle.com.
http://openjdk.java.net/
En cuanto a la herramienta Java Mission Control...
¿Alguien puede explicarme de qué forma y en qué contexto la utilizaría de modo continuo contra servidores de producción?
Un saludo,
En realidad era un pregunta retórica ;)
No hay otras distribuciones de OpenJDK para Windows, Mac, Solaris que desde los builds de Oracle.
La pregunta quería despejar, de una vez por todas, la mezcla que se está haciendo entre el código fuente de las VM y la implementación de referencia del lenguaje, y las diferentes distribuciones que se hacen, para diversos Sistemas Operativos, porque leyendo algunos comentarios, parece que las distribuciones de Oracle no sean OpenJDK, y sean menos Open Source que otras.
Solo hay un OpenJDK, desde el punto de vista del código que permite desarrollar y ejecutar Java, y hay un único repositorio. Todas las distribuciones, las haga Oracle o quien sea, incluyen el código fuente de la implementación. Por lo tanto todas son Open Source.
Como es lógico, cada distribución incluye archivos y utilidades específicas del Sistema Operativo donde se ejecuta la VM, y pueden incluir herramientas, como MIssion Control, que no tiene nada que ver con que la implementación de Java sea Open Source o no.
Que estas utilidades y herramientas adicionales sean Open o no, no determina que la VM y el JDK sean lo que son.
Buenas,
Respecto al OpenJDK, precisamente por eso choces dice. "Concretando más, para Windows, Mac OS X, Solaris".
En cuanto a Java Mission Control, nosotros ya empleamos herramientas similares en producción en cientos casos. Con algunas versiones que liberamos y en situaciones de alta carga, detectamos aumentos anómalos en el consumo de memoria de los que nos cuesta Dios y ayuda detectar y solucionar.
Hoy he estado probando todo el día el producto (lo he dejado conectado a mi servidor de desarrollo con el fligh recorder) y he de decir que da una información mucho más completa y detallada que ninguno que hayamos utilizado antes. De hecho, estoy casi seguro de que nos hubiese permitido ahorrarnos cientos de horas/hombre de búsqueda infructuosa en muchos casos. Por supuesto, esas horas valen muucho dinero.
En cuanto a "de que forma", no entiendo muy bien a lo que te refieres, ni cual es la duda. Levantamos jmx securizado en la jvm del cluster que queramos monitorizar y conectamos la herramienta cliente hasta recoger una muestra representativa para poder analizarla. Obviamente no la tenemos de forma continua e indefinida escuchando (y con un operario como Homer Simpson mirando la pantalla de los relojes), sino sólo cuando tenemos algún problema concreto a monitorizar.
Un saludo
Y que pasa con Java Visual VM, lo seguirán distribuyendo junto al JDK?
No es la mejor herramienta, pero hace su trabajo.
http://visualvm.java.net/
Me parece muy poco probable que la herramienta Mission Control "llama a casa" - la inmensa mayoría de los servidores Java que yo he utilizado no tienen conectividad con el mundo exterior, siempre tienen algo delante y cortafuegos por todos partes. Tampoco veo forma de distinguir fácilmente entre un servidor de desarrollo y de producción, desde el punto de vista de Oracle. Si todas las instalaciones de Mission Control empiezan a enviar mensajes a casa, ¿cómo va a saber cuáles son de interés, y cuáles no?
Parece que venimos mal con las preguntas retóricas
:D
Nosotros también utilizamos una herramienta de monitoreo,
La diferencia es que esta herramienta corre en backend midiendo el estado de la red, los servidores, sistemas operativos, bases de datos, JVM y demás indicadores que se hayan programado,
Si uno de estos indicadores se excede, dispara alertas automáticas a el grupo de interés.
Lo que no tenemos, y lo que no veía es a Homer Simpson mirando la pantalla de los relojes en producción.
:D
PD:
Si existen versiones del OpenJDK (unofficial) para Windows y OS X,
Alguna vez instale una en mi maquina y duro instalada menos de 5 minutos por que era un desastre.
https://github.com/alexkasko/openjdk-unofficial-builds#openjdk-unofficial-installers-for-windows-linux-and-mac-os-x
:(
Un saludo,
" Si existen versiones del OpenJDK (unofficial) para Windows y OS X,"
No sabía que contaban los "textos apócrifos" ;D
:o)
Answering some of your rethorical questions:
1. The rest of the JDK is absolutely free for production use. What features that count as commercial can be seen here: http://www.oracle.com/technetwork/java/javase/terms/products/index.html
2. Java Mission Control does not "call home" to report of unpaid use in production. Oracle deals with this the same way they do for all the other products that are freely downloable for development, like the Oracle DB. My belief is there is some kind of audit team that will come by your datacenter to check what commercial features you have enabled but not paid for. I like to imagine them as lawyers in black suits arriving by black helicopters, but that is most likely not true ;)
Thank you Klara
@Klara
"I like to imagine them as lawyers in black suits arriving by black helicopters, but that is most likely not true ;)"
That happens, and that is the SoftwareLegal.
http://www.softwarelegal.org.ar/sla.html
http://www.nicklabs.com.ar/?p=2275
Un saludo,
como conecto java , me pone imposible conectar, no se en que puerto conectar, saludos