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-Gruppe dargestellt.