next up previous contents index
Next: Benutzerdefinierte Methoden Up: Implementierung der Rahmenstruktur Previous: Implementierung der Rahmenstruktur

Standardmethoden

Bei der Generierung der Klassen werden zwei Varianten für die Initialisierung der MIB-M-Beans verwendet. Eine Initialisierung baut lediglich die SNMP-MIB-Struktur innerhalb des JDMK-Agenten auf, ohne die dabei generierten M-Beans innerhalb des Core Management Frameworks zu registrieren. Diese Art der Initialisierung wird dann verwendet, falls der JDMK-Agent als Standalone SNMP-Agent agieren soll. Es ist aber dann nicht möglich, über andere Adapter auf diese generierten M-Beans zuzugreifen. Die andere Variante der Initialisierung registriert die generierten M-Beans zusätzlich und ermöglicht so die Nutzung der von JDMK bereitgestellten Dienste und Protokolle (es ist zu beachten, daß bei der ersten Variante ohne Registrierung die Dienste des JDMK nicht genutzt werden können).

// Konstruktor einer Implementierung des generierten M-Beans
// NetworkParms. Es stellt eine Gruppe innerhalb der MIB dar.

public NetworkParmsImpl(SnmpMib myMib, Framework cmf) {
   super(myMib);
   init(myMib, cmf);

    // Get these Objects to insert and remove Tableentries
   NetworkParmsMIB = myMib;
   NetworkParmsCMF = cmf;
}
Bei der Initialisierung werden die einzelnen Properties der Klasse (bzw. des M-Beans) mit Werten aus den TIS-Applikationen, welche mit dem entsprechenden M-Bean gemanagt werden sollen, belegt. Die Properties werden innerhalb der Superklasse (also der generierten) festgelegt. Dies sind einfache MIB-Variablen wie OCTET STRING und INTEGER:
...
// Festlegung einer OCTET STRING - Variablen
// SYNTAX : DisplayString
/**
 * Variable for storing the value of "ComputerName".
 * The variable is identified by: "1.3.6.1.4.1.2206.5.1.1.1.1".
 */
protected String ComputerName= null;
...
// Festlegung einer OCTET STRING - Variablen
// SYNTAX : DisplayString
/**
 * Variable for storing the value of "IpAddress".
 * The variable is identified by: "1.3.6.1.4.1.2206.5.1.1.1.3".
 */
protected Byte[] IpAddress = null;
...
// Festlegung der Tabellen
/**
 * Variable for storing the value of "DnsServerTable".
 * The variable is identified by: "1.3.6.1.4.1.2206.5.1.1.1.7".
 */
protected TableDnsServerTable DnsServerTable;
Wie in diesem Beispiel-Code dargestellt, wird eine Tabelle nur als grobe Rahmenstruktur zur Verfügung gestellt, welche Methoden zum Zugriff auf seine Tabelleneinträge zur Verfügung stellt, da die eigentliche Information in den Einträgen vorhanden ist. So werden Klassen, welche den Tabellenbezeichner, gefolgt von dem Suffix ``Entry'' tragen, erzeugt. Diese Klassen müssen mit den implementierten Klassen erweitert werden, um zum Beispiel eine Möglichkeit zum Entfernen von Tabelleneinträgen zu schaffen. Es muß im Sinne der kaskadierenden Erstellung der M-Beans (siehe Kap. 6.3.1) eine Speicherungsstruktur geschaffen werden. Zudem ist für das Einfügen und Entfernen von Tabelleneinträgen eine Referenz auf die MIB (Eintrag in MIB-Struktur des JDMK-Agenten) und das Core Management Framework (Registrierung des M-Beans) zur Verfügung zu stellen. Aus diesem Grund werden weitere Membervariablen zu den Implementierungsklassen hinzugenommen. Nachfolgend ist ein Beispiel für solche Variablen zu sehen:
// Zusaetzliche Membervariablen bei Implementierungen
...
// 
// Private variables.
//
private SnmpMib NetworkParmsMIB;
private Framework NetworkParmsCMF;
private Vector NetworkParmsImplListeners = new Vector();

private static DnsServerEntryImpl DnsServerEntry[] 
        = new DnsServerEntryImpl[10];
private static DomainSuffixEntryImpl DomainSuffixEntry[] 
        = new DomainSuffixEntryImpl[10];
private static IpGatewayEntryImpl IpGatewayEntry[] 
        = new IpGatewayEntryImpl[10];
...
Da in der generierten Klasse die Elemente der MIB-Gruppe mit Dummy-Werten vorbelegt werden, müssen in der Initialisierungsphase die realen Werte ermittelt werden. Dabei wird zwischen tabellen- und nicht-tabelleneigenen Einträgen sowie Enumerationen unterschieden: Ebenso wie die get-Methoden, werden auch set-Methoden zur Verfügung gestellt. Es wird ebenso die OID als String verwendet, die Änderung erfolgt durch Anwendung der Native-Methode setNative. Fehlerfälle (Exceptions) können durch das Einfügen der Werte in die JDMK-MIB-Struktur und bei Änderungen der Werte in den Applikationen entstehen. Diese Fehlerfälle werden bis jetzt mit Ausgabe des Trace-Stacks abgefangen.
next up previous contents index
Next: Benutzerdefinierte Methoden Up: Implementierung der Rahmenstruktur Previous: Implementierung der Rahmenstruktur

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