next up previous contents index
Next: Management-Möglichkeiten Up: Nutzung der JDMK-Services Previous: Gauge/Counter-Monitoring

Discovery-Service

  Dieser Dienst ermöglicht die Feststellung der JDMK-Agenten, welche über einen Discovery Responder verfügen (vgl. Kapitel 3.7.12). Dies kann unter dem TIS-Management benutzt werden, um mehrere TIS-Boxen (Zonen (vgl. Kapitel 4), zu ermitteln. Der Discovery Responder kann als M-Bean in das CMF der entsprechenden Agenten zur Laufzeit integriert werden. Im Beispiel des TIS-Prototypen wurde eine Discovery-Monitor-Klasse erzeugt, welche entweder durch den M-LET-Service durch den Agenten selbst oder durch eine Client-Applikation instantiiert und registriert wird. Die Klasse stellt zwei Methoden zum Starten und Stoppen des Monitors zu Verfügung. Die Methoden zum Hinzufügen und Entfernen von Respondern beschränken sich auf das Anlegen und Entfernen von M-Beans in den jeweiligen Agenten. Interessant ist die Methode, den Discovery-Search-Service (vgl. Kapitel 3.7.12) zu verwenden. Nachfolgend ist die entsprechende Methode aufgezeigt:

public class DiscMonitor {
...
   public void performLookingForAdaptors() {
      try {
         int multicastPort = 9000;
         String multicastGroup = "224.224.224.224";
         int ttl = 1;

         DiscoveryClient discoveryClient = new DiscoveryClient();
         discoveryClient.setMulticastGroup(multicastGroup);
         discoveryClient.setMulticastPort(multicastPort);
         discoveryClient.setTimeToLiveInt(ttl);
         discoveryClient.performStart();
         Vector result = discoveryClient.performFindAdaptors();
         Enumeration adaptorList = result.elements();
         htmlOutput = new StringBuffer("Adaptors:<BR>");
         while (adaptorList.hasMoreElements()) {
            DiscoveryResponse response = (DiscoveryResponse) adaptorList.nextElement();
            Vector adaptors = response.objectList;
            Enumeration enum = adaptors.elements();
            while (enum.hasMoreElements()) {
               //System.out.println("Adaptor="+enum.nextElement().toString());
               htmlOutput.append(enum.nextElement().toString());
               htmlOutput.append("<BR>");
            }
         }
         discoveryClient.performStop();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
...
   private StringBuffer htmlOutput = new StringBuffer("Adaptors: no adaptors searched");
   private ObjectName DiscoveryMonitorName;
   private AdaptorClient adaptor;
   private DiscoveryMonitorMO AgentMonitor;
}
Es wird ein neuer Discovery-Client erzeugt, der später die Antworten der Responder auswertet. Dann kann eine Multicast-Gruppe und ein Port spezifiziert werden. Ist dies nicht der Fall, wird ein Default-Wert verwendet. Es ist möglich, die ``Time-to-Live''-Zeit (Zeitraum, in dem der Request gültig ist) eines Discovery-Requests festzulegen (setTimeToLive). Der Search-Service kann gestartet und auch wieder gestoppt werden, ohne das Objekt zu zerstören.
next up previous contents index
Next: Management-Möglichkeiten Up: Nutzung der JDMK-Services Previous: Gauge/Counter-Monitoring

Beispielbenutzer SuSE Linux 6.0
Sun May 9 21:16:36 MEST 1999