Das Messobjekt (Abbildung ) wird als Javabean mit dem Namen
MessBean implementiert. Das bietet sich an, da so alle mit der
Anwendung verbundenen Bausteine gleiche Struktur haben und somit der
Erstellungsaufwand minimiert wird. Nur die Grafikteile sind bei dieser unsichtbaren
Bean nicht erforderlich.
Ferner wird es so als jarfile im jars-Verzeichnis von dem
erstellten Hook,
der es importieren muss, einfach gefunden.
Die MessBean enthält zwei Tabellen:
Die MessBean enthält die Methoden:
Aus BTA_name und einer mittels getTime() erzeugten
Zufallszahl wird ein
eindeutiger Instanzname gebildet; auch der Hauptthread erhält einen
eindeutigen Namen.
Beides wird in die BTA-Instanz-Tabelle eingetragen. Ta_start wird zum
Setzen des ersten Zeitpunktes aufgerufen.
Ein Messpunkt zur Ermittlung der Antwortzeit wird gesetzt.
Aus dem thread-Namen wird mit Hilfe der BTA-Instanztabelle die BTA-Instanz
ermittelt.
Die aktuelle Zeit wird abgefragt.
Der Zeitpunkt des Aufrufs, die aktuelle Bean , die BTA-Instanz und der
Zustand -
(vor dem Baustein) werden in die TA-Tabelle eingetragen.
Aus dem thread-Namen wird mit Hilfe der BTA-Instanz-Tabelle die BTA-Instanz ermittelt.
Die aktuelle Zeit wird abgefragt.
Der Zeitpunkt des Aufrufs, die aktuelle Bean , die BTA-Instanz und
der Zustand (erfolgreich / nicht erfolgreich,
nach dem Baustein) werden in die TA-Tabelle eingetragen.
Mit Hilfe des mainthread-Namens wird die zugehörige Instanz aus der
BTA-Instanztabelle ermittelt.
Der neue Thread wird der BTA-Instanz zugeordnet in die Instanztabelle
eingetragen.
Für Subthreads innerhalb einer Javabean-Anwendung werden vom JVM eindeutige
Namen (thread1, thread2,...) vergeben, sofern vom Javabean nicht schon ein
eindeutiger Name zugeordnet wurde. Diese Thread-Identifikation wird nicht
geändert. Die Methode wird aufgerufen.
Mit Hilfe des Subthread-Namens wird der zugehörige Eintrag in der
BTA-Instanztabelle ermittelt und ausgetragen.
Die Methode TA_stop wird aufgerufen.
Auch die Methoden der MessBean laufen im mainthread ab. Sein Name kann hier
ermittelt werden. Die zugehörige Instanz der Anwendung wird aus der
BTA-Instanz-Tabelle gelesen und zurückgegeben. Diese Funktion wird in Javabeans
benötigt, welche aktive Javabeans aufrufen.
Diese Methode wird von aktiven Javabeans aufgerufen, um den Beginn einer
Auftragsausführung zu melden.
Der neue Subthread wird der BTA-Instanz zugeordnet in die
BTA-Instanztabelle
eingetragen, dies ist notwendig für den Fall, dass die aktive Javabean vom
eigenen Thread aus weitere Subthreads erzeugt. Diese erhalten bei Start und
Ende Messpunkte mit der gleichen Methode wie der Hauptthread.
Die aktuelle Zeit wird abgefragt und zusammen mit der BTA-Instanz und der
Messpunktbezeichnung TA_start in die TA-Tabelle eingetragen. Als
Beanname wird dummy geschrieben.
Diese Methode wird von aktiven Javabeans aufgerufen, um das Ende einer
Auftragsausführung zu melden.
Der Zeitpunkt und die BTA-Instanz, sowie dummy für den Beannamen und
TA_stop als Messpunktbezeicnhung werden in die TA-Tabelle geschrieben
und der Subthread wird aus der
BTA-Instanztabelle ausgetragen.
Die Information wird übernommen und zusammen mit BTA-Instanz, BeanName und
Zeitpunkt in die TA-Tabelle eingetragen.
In der run-Methode läuft ein Subthread, der zyklisch die
doLog-Methode
aufruft und sich zwischendurch mit sleep schlafen legt.
Die Messdaten der
TA-Tabelle werden in das Logfile geschrieben.