next up previous contents
Next: C++-Klassen für die OSI-Klassen Up: Die Global Polling -Komponente Previous: Die C++-Klasse iimcPollingTabList

Die C++-Klasse myGlobalPollingClass  

Eine Instanz dieser Klasse stellt schließlich die Global Polling-Komponente dar und integriert alle bisher in diesem Abschnitt vorgestellten C++-Klassen:
Im Hauptprogramm des Gateways, genauer in der CoreAgent-Komponente, wird eine Instanz dieser Klasse kreiert. Damit (da die myGlobalPollingClass von iimcPollingTabList abgeleitet ist) wird eine leere Liste vom Typ iimcPollingTabList erzeugt.

class myGlobalPollingClass : public iimcPollingTabList {
        public:
                myGlobalPollingClass();
                ~myGlobalPollingClass();
                void doPolling();
};
Die in der Gateway-MIB zu replizierenden SNMP-Tabellen können nun mit der geerbten Methode append an der Global Polling-Komponente registriert werden. Damit steht für jede registrierte (zu replizierende) SNMP-Tabelle ein Listenelement vom Typ iimcPollingTab und damit ein Zeiger auf eine Instanz der Klasse dynMOICreation_ofSNMP_Table zur Verfügung. Es ist nun die Aufgabe einer Instanz dieser Klasse myGlobalPollingClass, für jede angemeldete SNMP-Tabelle regelmäßig die Methode TestToCreateMOI der Instanz der Klasse dynMOICreation_ofSNMP_Table aufzurufen, um damit die Replikation zu veranlassen.
Im Idealfall sollten die Methodenaufrufe TestToCreateMOI für jede SNMP-Tabelle in konstanten Zeitabständen (zum Beispiel eine Sekunde) erfolgen, da damit die Grundeinheit für die Polling-Strategie und damit für die Polling-Intervallgröße festgelegt wird (siehe oben). Da es sich aber bei dem zugrundeliegenden Betriebssystem (IBM AIX 4.2) um kein Echtzeitbetriebssystem handelt, kann dieser Idealfall nicht realisiert werden. Dies stellt aber keine Einschränkung dar, denn in der Praxis ist es nicht notwendig, daß das Polling in konstanten Intervallen ausgeführt wird. Solange das Pollingintervall klein genug ist, um jede Änderung festzustellen, ist es belanglos, ob die Zeiten zwischen dem Pollen in einem gewissen Maß voneinander abweichen.
Auf der Grundlage dieser Überlegungen wurde die Methode doPolling der Global Polling-Komponente in die zentrale Ereignisauswahlschleife eingebunden. Bei jedem Schleifendurchlauf wird die Methode einmal aufgerufen. Dies ist[*] die einzige Stelle in der IBM TMN WorkBench for AIX Agentenarchitektur, an der ein regelmäßiger Funktions-/Methodenaufruf stattfinden kann[*]. Damit stellt diese Positionierung der doPolling-Methode nur einen Kompromiß dar, denn die Zeit für einen vollständigen Schleifendurchlauf kann sehr schwanken: Falls eine sehr komplexe CMIS-Anforderung vom Gateways bearbeitet werden soll, verlängert sich die Zeit für diesen Schleifendurchlauf entsprechend. Benötigt beispielsweise ein CMIP-Request für seine Bearbeitung 40 Sekunden, beträgt der zeitliche Abstand zwischen zwei Methodenaufrufen von doPolling mindestens auch 40 Sekunden. Im anderen Extremfall kann nach einer sehr kurzen Bearbeitung eines CMIP-Requests der Abstand zwischen zwei Methodenaufrufen von doPolling im Sekundenbereich, eventuell sogar im Millisekundenbereich liegen.
Der Aufruf der Methode doPolling bewirkt, daß für jedes Listenelement und damit für jede registrierte SNMP-Tabelle, die Methode TestToCreateMOI aufgerufen wird, um somit die Replikation der jeweiligen SNMP-Tabelle in der Gateway-MIB anzustoßen. Die damit vollständigen Vererbungshierarchien und Enthaltenseinsbeziehungen der C++-Klassen der Global Polling-Komponente zeigt Abbildung 6.4:
 
Abbildung:   Die vollständige Vererbungs- und Enthaltenseinshierarchien der C++-Klassen der Global Polling-Komponente
44#44


next up previous contents
Next: C++-Klassen für die OSI-Klassen Up: Die Global Polling -Komponente Previous: Die C++-Klasse iimcPollingTabList
Copyright Munich Network Management Team