de.bsvrz.sys.testsys.modulApplUeb
Class ApplUebPruefen

java.lang.Object
  extended by java.lang.Thread
      extended by de.bsvrz.sys.testsys.modulApplUeb.ApplUebPruefen
All Implemented Interfaces:
java.lang.Runnable

public class ApplUebPruefen
extends java.lang.Thread

Prüft die aufgrund der DaV - Information erzeugten Informationslisten. Im Falle von Implausibilitäten werden Betriebsmeldungen protokolliert.

Author:
Chriesten

Nested Class Summary
private static class ApplUebPruefen.E_ZUSTAND
          Aufzaehlung ; Kopie der gleichnamigen StartStopp Aufzählung und Erweiterung um den Zustand GELOESCHT SkriptVewEnums.java
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
private  java.util.Map<java.lang.String,ApplUebDaten.ApplDaten> m_appListe
          aktuelle ApplDatenListe
private  java.lang.Boolean m_beenden
          Flag; soll sich der Thread dieser Instanz beenden?
 java.util.HashMap<java.lang.String,RechnerDaten> m_davRechnerMap
          Hash Map mit allen Rechnerobjekten der aktuellen DAV Verbindung
(package private)  java.lang.Boolean m_erstesMal
          Flag; beim ersten Zyklus soll Thread nicht warten
private  long m_graceZeit
          grace - Wartezeit.
private  IMeldungFehler m_MeldungFehler
          Rueckrufobjekt zum Schreiben der Betriebsmeldunge wurde von ModulApplUeb->ApplUebDaV weitergeleitet
private  boolean m_pruefeApp
          soll appListe geprüft werden?
private  boolean m_pruefeStartStopp
          soll StartStopp Liste geprüft werden?
 java.util.Map<java.lang.String,ApplUebDaten.StartStoppDaten> m_ssListe
          aktuelle StartStoppDatenListe
private  java.lang.Long m_zyklusZeit
          Parameter fuer thread: wartezeit in ms zwischen den Prüfungen 2 Minuten
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
ApplUebPruefen(IMeldungFehler meldungFehler, java.util.Map<java.lang.String,ApplUebDaten.StartStoppDaten> ssListe, java.util.Map<java.lang.String,ApplUebDaten.ApplDaten> appListe, java.util.HashMap<java.lang.String,RechnerDaten> davRechnerMap)
           
 
Method Summary
private  ApplUebDaten.ApplDaten get_appdatInkarnation(java.lang.String inkarnation, java.util.Map<java.lang.String,ApplUebDaten.ApplDaten> appListe)
          Liefert den Appliaktionsdatensatz mit der uebergebenen Inkarnation (ProzessId), null wenn nicht vorhanden
static void main(java.lang.String[] args)
          Testroutine fuer das lokale Modul.
 void myNotify()
          Methode zum Unterbrechen der wait-Zyklen im Prüfe Thread
private  void mywarte(java.lang.Long warteZeit)
          Wrapper fuer wait
private  java.lang.Boolean nichtPruefen(ApplUebDaten.StartStoppDaten ssdat)
          Liefert true, falls der übergebene Block nicht geprüft werden soll.
private  void pruefeAendAppList()
          Prüft, ob aufgrund der Aenderungen in der Appliaktionsliste Aktionen durchgeführt werden müssen.
private  java.lang.Boolean pruefeAendSSInfoDat_sync(ApplUebDaten.StartStoppDaten ssdat, java.util.Map<java.lang.String,ApplUebDaten.ApplDaten> appListe)
          Synchronisiert pruefeAendSSInfoDat(de.bsvrz.sys.testsys.modulApplUeb.ApplUebDaten.StartStoppDaten, Map) auf ssdat.
private  java.lang.Boolean pruefeAendSSInfoDat(ApplUebDaten.StartStoppDaten ssdat, java.util.Map<java.lang.String,ApplUebDaten.ApplDaten> appListe)
          Prüft, ob aufgrund des geänderten StartStop Datensatzes Meldungen protokolliert werden müssen.
private  void pruefeAendSSInfoList()
          Prüft, ob aufgrund der StartStop Datenliste Meldungen protokolliert werden müssen.
private  void pruefeAendSSInfoListold()
          Prüft, ob aufgrund der StartStop Datenliste Meldungen protokolliert werden müssen.
private  boolean pruefeGraceZeit(long graceZeit, java.lang.Long sollZustZeit, ApplUebDaten.StartStoppDaten ssdat)
          prüft "grace" - Zeit im Fehlerfall ; Hilfsfunktion zu ApplUebPruefenpruefeAendSSInfoDat(de.bsvrz.sys.testsys.modulApplUeb.ApplUebDaten.StartStoppDaten, Map).
 void run()
          Prüft Änderungen in pruefeAendSSInfoList()
 void set_beenden(java.lang.Boolean m_beenden)
           
 void set_pruefeApp(boolean app)
          Prüfung aufgrund Änderung der angemeldeten Applikationen!
 void set_pruefeStartStopp(boolean startStopp)
          Prüfung aufgrund Start/Stopp bzw.
private  java.lang.Boolean startStoppOk(java.lang.String rechnerPid)
          Prüft, ob StartStopp auf dem übergebene Rechner läuft.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

m_MeldungFehler

private IMeldungFehler m_MeldungFehler
Rueckrufobjekt zum Schreiben der Betriebsmeldunge wurde von ModulApplUeb->ApplUebDaV weitergeleitet


m_ssListe

public java.util.Map<java.lang.String,ApplUebDaten.StartStoppDaten> m_ssListe
aktuelle StartStoppDatenListe


m_appListe

private java.util.Map<java.lang.String,ApplUebDaten.ApplDaten> m_appListe
aktuelle ApplDatenListe


m_davRechnerMap

public java.util.HashMap<java.lang.String,RechnerDaten> m_davRechnerMap
Hash Map mit allen Rechnerobjekten der aktuellen DAV Verbindung


m_pruefeStartStopp

private boolean m_pruefeStartStopp
soll StartStopp Liste geprüft werden?


m_beenden

private java.lang.Boolean m_beenden
Flag; soll sich der Thread dieser Instanz beenden?


m_pruefeApp

private boolean m_pruefeApp
soll appListe geprüft werden?


m_zyklusZeit

private java.lang.Long m_zyklusZeit
Parameter fuer thread: wartezeit in ms zwischen den Prüfungen 2 Minuten


m_graceZeit

private long m_graceZeit
grace - Wartezeit. Verläuft ein Test negativ, so wird er wiederholt, falls der Testzustand und die Testzeit weniger als m_graceZeit ms auseinander liegen.


m_erstesMal

java.lang.Boolean m_erstesMal
Flag; beim ersten Zyklus soll Thread nicht warten

Constructor Detail

ApplUebPruefen

public ApplUebPruefen(IMeldungFehler meldungFehler,
                      java.util.Map<java.lang.String,ApplUebDaten.StartStoppDaten> ssListe,
                      java.util.Map<java.lang.String,ApplUebDaten.ApplDaten> appListe,
                      java.util.HashMap<java.lang.String,RechnerDaten> davRechnerMap)
Method Detail

set_beenden

public void set_beenden(java.lang.Boolean m_beenden)

set_pruefeStartStopp

public void set_pruefeStartStopp(boolean startStopp)
Prüfung aufgrund Start/Stopp bzw. Inkarnationsänderung!


set_pruefeApp

public void set_pruefeApp(boolean app)
Prüfung aufgrund Änderung der angemeldeten Applikationen!


pruefeAendSSInfoListold

private void pruefeAendSSInfoListold()
Prüft, ob aufgrund der StartStop Datenliste Meldungen protokolliert werden müssen.


pruefeAendSSInfoList

private void pruefeAendSSInfoList()
Prüft, ob aufgrund der StartStop Datenliste Meldungen protokolliert werden müssen.


pruefeAendAppList

private void pruefeAendAppList()
Prüft, ob aufgrund der Aenderungen in der Appliaktionsliste Aktionen durchgeführt werden müssen. Es werden die als gelöschten markierten Einträge aus der Liste entfernt.


pruefeAendSSInfoDat_sync

private java.lang.Boolean pruefeAendSSInfoDat_sync(ApplUebDaten.StartStoppDaten ssdat,
                                                   java.util.Map<java.lang.String,ApplUebDaten.ApplDaten> appListe)
Synchronisiert pruefeAendSSInfoDat(de.bsvrz.sys.testsys.modulApplUeb.ApplUebDaten.StartStoppDaten, Map) auf ssdat. Parameter und return siehe obigen Link.


nichtPruefen

private java.lang.Boolean nichtPruefen(ApplUebDaten.StartStoppDaten ssdat)
Liefert true, falls der übergebene Block nicht geprüft werden soll. Private Hilfsklasse zu ApplUebPruefenpruefeAendSSInfoDat(de.bsvrz.sys.testsys.modulApplUeb.ApplUebDaten.StartStoppDaten, Map) DaV Transmitter + Konfiguration tauchen in AppListe nicht auf. Sie dürfen nicht geprüft werden.

Parameters:
ssdat - Liste mit einem StartStopp Datensatz
Returns:
true: nicht prüfen, false sonst

pruefeAendSSInfoDat

private java.lang.Boolean pruefeAendSSInfoDat(ApplUebDaten.StartStoppDaten ssdat,
                                              java.util.Map<java.lang.String,ApplUebDaten.ApplDaten> appListe)
Prüft, ob aufgrund des geänderten StartStop Datensatzes Meldungen protokolliert werden müssen.

Parameters:
ssdat - Liste mit einem StartStopp Datensatz
appListe - Liste mit den Appliaktionsdaten
Returns:
true: diesen Datensatz aus StartStopp Liste löschen

pruefeGraceZeit

private boolean pruefeGraceZeit(long graceZeit,
                                java.lang.Long sollZustZeit,
                                ApplUebDaten.StartStoppDaten ssdat)
prüft "grace" - Zeit im Fehlerfall ; Hilfsfunktion zu ApplUebPruefenpruefeAendSSInfoDat(de.bsvrz.sys.testsys.modulApplUeb.ApplUebDaten.StartStoppDaten, Map). Im Falle von Soll/Ist - Fehlern wird diese Routine gerufen. Liegt die Sollbedingung weniger als graceZeit ms an, so wird die Prüfung annulliert und die Routine liefert true.

Parameters:
graceZeit - "grace" Zeit, siehe Funktionbeschreibung.
sollZustZeit - Empfangszeit Soll Zustand (in ms)
ssdat - Prüfdatensatz
Returns:
true: Prüfungsroutine abbrechen. "grace"-Zeit noch nicht abgelaufen, false sonst

get_appdatInkarnation

private ApplUebDaten.ApplDaten get_appdatInkarnation(java.lang.String inkarnation,
                                                     java.util.Map<java.lang.String,ApplUebDaten.ApplDaten> appListe)
Liefert den Appliaktionsdatensatz mit der uebergebenen Inkarnation (ProzessId), null wenn nicht vorhanden

Parameters:
inkarnation - zu suchende Inkarnation
appListe - Liste mit den Appliaktionsdaten
Returns:
gefundener Satz oder null

startStoppOk

private java.lang.Boolean startStoppOk(java.lang.String rechnerPid)
Prüft, ob StartStopp auf dem übergebene Rechner läuft. Enthält die Rechnerliste genau einen Eintrag, dann wird Start/Stopp Zustand dieses Eintrags zurückgeliefert.

Parameters:
rechnerPid - typ.rechner ObjektId
Returns:
true, false, null: StartStopp ok, nicht ok, kann nicht entschieden werden

mywarte

private void mywarte(java.lang.Long warteZeit)
Wrapper fuer wait

Parameters:
warteZeit -

myNotify

public void myNotify()
Methode zum Unterbrechen der wait-Zyklen im Prüfe Thread


run

public void run()
Prüft Änderungen in pruefeAendSSInfoList()

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

main

public static void main(java.lang.String[] args)
Testroutine fuer das lokale Modul. Wird fuer verschiedene Tests im Laufe des Entwicklungs- und Wartungsprozesses verwendet.

Parameters:
args - Testargumente