Bei Entwicklung eines Präsentationsbausteins muss der Aufruf:
- BTA_end(...)
in die Javabean eingefügt werden, um einen Messpunkt zur Ermittlung der
Antwortzeit
bereitzustellen. (Die BTA ist erst mit der Rückkehr des Kontrollflusses zum
Start abgeschlossen.)
Zur Entwicklung eigener Javabeans siehe unten.
Das Ergebnis der Messung wird dem Managementagenten in einem Logfile übergeben, das
folgende Daten enthält:
In Abbildung sind die Schnittstellen entsprechend der folgenden
Spezifizierung durchnummeriert:
- BTA_start (mainThreadName, ButtonName);
die Transaktion bei der MessBean angemeldet.
Wenn der Kontrollfluss zum Startbutton zurückkehrt, wird sein Verlassen
der BTA-Instanz durch :
- rem_control_flow ( ButtonName, success);
abgemeldet.
Die Schnittstelle wird durch einen ActionEvent, in Ausnahmefällen durch
den alternativen AlterEvent realisiert. Buttons sind immer nur Sourcen
(Quellen), Javabeans meist Sourcen und Targets (Ziele).
Die Source sendet den Event (ActionEvent oder AlterEvent) an
das mit ihr verbundene Target:
- ActionEvent ae = new ActionEvent();
Die Targetbean empfängt diesen mit der Methode:
- target.meth(ae); (meth beliebig, ActionEvent ae)
Zwischen Buttons und Javabeans sowie zwischen zwei Javabeans liegt immer ein
Hook (siehe Abbildung ).
Die Hooks enthalten in der Methode
- actionPerformed(arg0)
vor dem Aufruf der Targetmethode die Aufrufe:
- MessBean.TA_start(mainThreadName, TargetName);
und nach dem Aufruf der Targetmethode den Aufruf:
- MessBean.TA_stop(mainThreadName, TargetName, success);
für den Zeitstempel in der MessBean.
Vor Rückkehr in den Startbutton wird der mainThread abgemeldet:
- MessBean.rem_control_flow(success);
Die Javabeans können optional Informationen an die MessBean senden mit dem
Aufruf:
- MessBean.logInfo( information, BeanName)
wobei information ein String ist.
Mit
- BTA_end(..)
wird der Messpunkt für die Ausgabe des Ergebnisses der BTA gesetzt.
Mit:
- setTask (param)
wird der aktiven Bean von der auftraggebenden ClientBean ein später
unabhängig von der
BTA-Instanz auszuführender Auftrag erteilt.
Es wird die BTA-Instanz abgefragt mit:
- String BTA_ID = MessBean.getBTA_ID();
Die aktive Bean meldet mit dem Aufruf:
- ATA_start(BTA_ID, ownThread)
den Start der Auftragsbearbeitung zur BTA mit der BTA-Instanz
BTA_ID an.
Nach der Auftragsbearbeitung meldet sie ihren eigenen Thread wieder ab:
- ATA_stop(BTA_ID, ownThread, success)
Bei Beans, die einen eigenen Subthread starten, werden Beginn und
Ende der Transaktion durch den SubThread mittels instrumentierter
Thread-start- und -stop-Methoden der MessBean angezeigt.
Dazu wird eine Klasse BThread bereitgestellt, die Thread um die
Methoden:
- start( String BeanName) und
- stop( boolean success)
erweitert.
Die Multithread-Beans starten ihren SubThread mit:
- BThread st = new BThread( subThreadName );
- st.start(BeanName);
und beenden ihn mit:
- st.stop(success);
In der BThread-start-Methode wird der SubThread bei der
MessBean angemeldet:
- MessBean.add_control_flow(SubThreadName);
In der BThread-stop-Methode wird der SubThread bei der
MessBean abgemeldet:
- MessBean.rem_control_flow(SubThreadName, success);