2009-03-31 15 views

Respuesta

6

Devuelve recuentos absolutos en lugar de tasas. p.ej. devuelve el número total de compromisos de db, en lugar de derivar una tasa.

Al hacer esto, sus clientes pueden controlar y derivar las tasas, en cualquier período de tiempo que lo requieran. Tal vez lo más importante es que esto protege a los clientes de las subidas de tarifas que faltan si solo se conectan con poca frecuencia.

Si está utilizando beans JMX principalmente a través de la interfaz HTML, existen varias prácticas que sigo. A continuación, a continuación, significa que su bean JMX debe envolver un bean existente (en oposición a solo los métodos existentes que exponen JMX):

  1. cadenas de salida con formato adecuado que representan objetos devueltos. Obtener una salida predeterminada de toString() puede ser inútil
  2. capturar y mostrar excepciones. De lo contrario, es probable que obtenga una página en blanco y tenga que ir a los archivos de registro para determinar qué salió mal
  3. si está visualizando conjuntos de caracteres diferentes, es posible que tenga que escapar de la salida para evitar problemas de visualización (me encontré con esto con un control JMX se presentan nuestros datos de China)
  4. entradas a los métodos expuestos debe ser verificada apropiadamente (por ejemplo, si se introduce un ID como parte de una operación puede que desee trim() para quitar espacios en blanco, etc.)

Lo anterior cambia el énfasis de un bean simplemente expuesto a través de JMX a algo que se acerca a una consola de administración utilizable.

4

Lo primero que me dio mi primer frijol JMX fueron los tipos de devolución - es mucho más fácil si sus métodos devuelven cadenas - de esa manera su cliente puede mostrar fácilmente la respuesta (yo estaba trabajando principalmente con JConsole) - si no Haz esto, obtienes cosas como [email protected] como respuesta, que no significa mucho :)

+2

Lo modificaría para sugerir devolver primitivas más Cadenas. De esta forma, puede registrar valores numéricos correctamente (no se requiere análisis) –

3

Asegúrese de que los atributos no tengan efectos secundarios y sean predecibles en el funcionamiento.

No hay nada peor que un atributo inocente que ejecuta una operación que consume mucho tiempo (o que consume muchos recursos). He visto algunos humdingers en mi tiempo ...

+0

¿Algún ejemplo de MBeans que considere son excelentes ejemplos de estar bien diseñados? – McGovernTheory

+1

Debo confesar que no uso muchos de los beans estándar. Los que he implementado tienden a ser contadores, tablas de datos, etc. La simplicidad es realmente la clave. Depende de tu audiencia también. ¡Diseñé MBeans para soporte técnico (no gente dev) y trato de no complicarlos demasiado! – Fortyrunner

1

No utilice JMX para el registro, así que, por ejemplo, no use una función MBean que devuelva detalles de todas las conexiones desde el inicio.

Uno debe recordar que JMX está destinado a la monitorización. Significado: muestra solo los datos que son relevantes para el momento actual.

Cuestiones relacionadas