next up previous contents index
Next: Aufbau des Java Native Up: Implementierung der Rahmenstruktur Previous: Standardmethoden

Benutzerdefinierte Methoden

Diese Methoden hängen von der Verwendung der unter JDMK verfügbaren Dienste ab und werden vom Entwickler bei der Nutzung von JDMK-Diensten implementiert. Die Verwendung der Dienste mit Darstellung von Beispielen wird in Kapitel 6.6 dargestellt. Diese Methoden umfassen die Möglichkeit, Events bei Änderung der Properties zu versenden, innerhalb der von JDMK-basierten HTML-Darstellung (siehe Kap. 6.7.1) Erweiterungen vorzunehmen und auch Listener-Objekte (siehe Kap. 6.6.1) hinzu zunehmen. Zusätzlich können benutzerdefinierte Methoden den M-Beans hinzugefügt werden. Diese sogenannten ``Aktionen'', welche durch das Präfix ``perform'' gekennzeichnet sind, können für Managementaktionen wie Reboot, Restart und Shutdown und Andere implementiert werden. Nachfolgend ist ein Beispiel für die Erweiterung einer Funktionalität innerhalb der HTML-Darstellung zu sehen (Es wird ein Button erzeugt, welche bei Angabe der im Parameterteil übergebenen Werte einen Tabelleneintrag in der DnsServer-Tabelle durchführt) :

public void performCreateDnsServerEntry(int NewDnsServerIndex, String NewDnsServerAddr)
{
   String[] oid = {"1.3.6.1.4.1.2206.5.1.1.1.7.1.1", "1.3.6.1.4.1.2206.5.1.1.1.7.1.2"};
    DnsServerEntryImpl DnsServerEntry = 
   new DnsServerEntryImpl(NetworkParmsMIB, NetworkParmsCMF, DnsServerTable);
    try {
      int[] LegalDnsServerIndex = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

      // Check index range
      if (!tools.ArrayTools.isElement(NewDnsServerIndex, LegalDnsServerIndex)) {
         throw new ArrayIndexOutOfBoundsException();
     }
      // Set the M-bean properties
      DnsServerEntry.setDnsServerIndex(new Integer(NewDnsServerIndex));
      DnsServerEntry.setDnsServerAddr(tools.ConvertTools.String2Byte(NewDnsServerAddr));

      // get the Index and oid
      SnmpIndex testIndex = DnsServerTable.buildSnmpIndex(DnsServerEntry);
      SnmpOid testOid = DnsServerTable.buildOidFromIndex(testIndex);

      // concatenate base-oid with index
      oid[0] = oid[0] + "." + testOid.toString();
      oid[1] = oid[1] + "." + testOid.toString();

      // convert in useable format for the native interface
      int[][] tempOid = tools.ConvertTools.String2Int(oid);

      // set values in ams
      nativeBase.setNative(tempOid[0], NewDnsServerIndex);
      nativeBase.setNative(tempOid[1], NewDnsServerAddr);

      //Register in PlatformMiscUserTable
      System.out.print("Register entry in DnsServerTable ...");
      DnsServerTable.addEntry(DnsServerEntry);
      System.out.println(" done.");

      //Register in Core Management Framework
      System.out.print("Register entry in CMF ...");
      DnsServerEntry.addInCmf(NetworkParmsCMF);
      System.out.println(" done.");
   } catch (SnmpStatusException snmpe) {
      System.out.println("Index already used, please check entries for free index!");
   } catch (ArrayIndexOutOfBoundsException aioobe) {
      System.out.println("Wrong index (must be between 1..15), please retry");
   } catch (NullPointerException npe) {
      System.out.println("Entries not complete, please retry");
   } catch (Exception e) {
      e.printStackTrace();
   }
}
In Anhang E ist ein Beispiel einer Implementierung der GKStatistics-Gruppegif dargestellt.
next up previous contents index
Next: Aufbau des Java Native Up: Implementierung der Rahmenstruktur Previous: Standardmethoden

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