23.5 Eine eigene Standard-MBean
 
Auf dem Weg zu einer eigenen Bean müssen wir erst aus den MBean-Typen wählen. Da eine Standard-MBean der einfachste Typ ist, wollen wir diesen nutzen und mit der Definition der MBean-Schnittstelle beginnen. Sie definiert Setter/Getter, die später über die JConsole nutzbar sind, und Operationen, die wir ebenfalls über die JConsole anstoßen können. Der Name der Schnittstelle muss mit MBean enden!
Listing 23.4
com/javatutor/insel/jmx/DiskoMBean.java
package com.javatutor.insel.jmx;
public interface DiskoMBean
{
public void setAnzahlPersonen( int anzahlPersonen );
public int getAnzahlPersonen();
public void alarm();
}
Als Nächstes implementieren wir die Klasse, die die Schnittstelle implementiert. Das ist unsere Disko. (Eigentlich sollten die Geschäftsobjekte nicht selbst die MBeans sein. Doch das ist in unserem Beispiel o.k.)
Listing 23.5
com/javatutor/insel/jmx/Disko.java
package com.javatutor.insel.jmx;
public class Disko implements DiskoMBean
{
private int anzahlPersonen;
public void setAnzahlPersonen( int anzahlPersonen )
{
this.anzahlPersonen = anzahlPersonen;
}
public int getAnzahlPersonen()
{
return anzahlPersonen;
}
public void alarm()
{
System.out.println( "Heul. Huhuhuhu." );
}
}
Der letzte Teil ist der Server, der die MBean anmeldet:
Listing 23.6
com/javatutor/insel/jmx/RegisterDiskoMBean.java
package com.javatutor.insel.jmx;
import java.lang.management.ManagementFactory;
import javax.management.*;
import javax.swing.JOptionPane;
public class RegisterDiskoMBean
{
public static void main( String[] args ) throws Exception
{
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
ObjectName name = new ObjectName( "com.javatutor.insel.jmx:type=Disko" );
DiskoMBean disko = new Disko();
server.registerMBean( disko, name );
JOptionPane.showMessageDialog( null, "Ende" );
System.exit( 0 );
}
}
Wenn wir unser Programm RegisterDiskoMBean mit dem Schalter -Dcom.sun.manage-ment.jmxremote starten, zeigt die JConsole das Programm an, und wir können einen Blick auf den Reiter MBeans werfen. Dort kann man die Property AnzahlPersonen einsehen und ändern. Zusätzlich lässt sich unsere Operation anstoßen, die dann auf der Konsole die gewünschte Ausgabe ergibt. Schon erstaunlich, welche Möglichkeiten es für die Administration gibt, wenn die JConsole ein remote-Programm überwacht und steuert!
 Hier klicken, um das Bild zu Vergrößern
 Hier klicken, um das Bild zu Vergrößern
|