de.bsvrz.sys.startstopp.prozessvew
Class Inkarnation

java.lang.Object
  extended by de.bsvrz.sys.startstopp.prozessvew.Inkarnation
All Implemented Interfaces:
java.io.Serializable

public class Inkarnation
extends java.lang.Object
implements java.io.Serializable

Klasse realisiert eine Inkarnation. In dieser Klasse wird eine Inkarnation (Prozess aus dem StartStopp Block) gestartet und gewartet bis der Prozess beendet ist. Start- und Stopbedingungen des Prozesse

Author:
Dambach Werke GmbH
See Also:
Serialized Form

Nested Class Summary
private  class Inkarnation.ThreadNeuStartInkarnation
          Interne Klasse zum Neustarten einer Inkarnation.
private  class Inkarnation.ThreadStarteInkarnation
          Interne Klasse zum Starten einer Inkarnation.
private  class Inkarnation.ThreadStarteInkarnationZyklisch
          Interne Klasse zum zyklischen Starten einer Inkarnation.
private  class Inkarnation.ThreadStoppeInkarnation
          Interne Klasse zum Stoppen einer Inkarnation.
 
Field Summary
private  boolean _debug
          Debug Einstellung
private static de.bsvrz.sys.funclib.debug.Debug logger
          Debug Einstellungen
private  boolean m_beendeStart
          Merker zum Beenden des Startvorgangs
private  boolean m_beendeStopp
          Merker zum Beenden des Stoppvorgangs
private  BetriebssystemProzess m_betriebssystemProzess
          Verweis auf Betriebssystemebene der Inkarantion
private  DaVKommunikation m_daVKommunikation
          Singelton Instanz für Klasse DaVKommunikation
private  GlobaleDaten m_globaleDaten
          Singelton Instanz für Klasse GlobaleDaten
private  Logbuch m_logbuch
          Singelton Instanz für Klasse Logbuch
private  java.lang.String m_name
          Name der Inkarnation
private  SkriptVewEnums.E_ZUSTAND m_oldZustand
          Alter Zustand der Inkarantion
private  ProzessDaten m_pd
          Prozessdaten der Inkarantion
private  java.lang.String m_prID
          Prozess Id
private  java.lang.Process m_proc
          eigentlicher gestarteter Process
private  ProzessVerwaltung m_prozessVerwaltung
          Singelton Instanz für Klasse ProzessVerwaltung
private  StartStoppPräferenz m_startStoppSperren
          Instanz für Preferenzeinstellungen
private  boolean m_stoppen
          Merker ob Inkarnation gestoppt werden soll
private  Inkarnation.ThreadNeuStartInkarnation m_threadNeuStartInkarnation
          Thread zum Neustarten der Inkarnation
private  Inkarnation.ThreadStarteInkarnation m_threadStarteInkarnation
          Thread zum Starten der Inkarnation
private  Inkarnation.ThreadStarteInkarnationZyklisch m_threadStarteInkarnationZyklisch
          Thread zum zyklischen Starten der Inkarnation
private  Inkarnation.ThreadStoppeInkarnation m_threadStoppeInkarnation
          Thread zum Stoppen der Inkarnation
private  SkriptVewEnums.E_ZUSTAND m_zustand
          Zustand der Inkarnation
private static long serialVersionUID
           
 
Constructor Summary
Inkarnation(java.lang.String prID)
          Konstruktor der Klasse
 
Method Summary
 void beendeStart()
           
 void beendeStopp()
          Methode zum Beenden des Stoppvorgangs
 java.lang.String getName()
           
 ProzessDaten getPd()
           
 java.lang.Process getProzess()
          Methode liefert den eigentlichen Prozess zurück
 boolean isStartBedingungErfuellt()
          Methode rüft ob alle Startbedingungen eines Prozesses erfüllt sind.
 boolean isStoppBedingungErfuellt()
          Methode rüft ob alle Stoppbedingungen eines Prozesses erfüllt sind
private  void logbuch(java.lang.String text)
          Inkarantionsspezifischen Eintag in Logbuch schreiben.
 void neuStartInkarnation(long absender, long simulationsVariante)
          Methode zum Neustarten einer Inkarantion.
 void setName(java.lang.String name)
           
 void setzeZustand(SkriptVewEnums.E_ZUSTAND zustand, long absender)
          Methode zum Setzen des Status einer Inkarnation und Publizieren des Status über den DaV.
 void starteInkarnation(long absender, long delay)
          Methode zum Starten einer Inkarantion.
 void starteInkarnationZyklisch(long absender)
          Methode zum zyklischen Starten einer Inkarantion.
private  void startVerhaltenBeiFehler(long absender)
          Methode zum Auswerten des Startverhaltens bei Fehler
 void stoppeInkarnation(long absender, boolean stoppeSofort)
          Methode zum Stoppen einer Inkarantion.
private  boolean stoppVerhaltenBeiFehler(long absender)
          Methode zum Auswerten des Stoppverhaltens bei Fehler
private  void ueberwacheProzess(long absender)
          Methode die wartet, bis ein Prozess beendet ist
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

logger

private static final de.bsvrz.sys.funclib.debug.Debug logger
Debug Einstellungen


_debug

private final boolean _debug
Debug Einstellung

See Also:
Constant Field Values

m_prozessVerwaltung

private ProzessVerwaltung m_prozessVerwaltung
Singelton Instanz für Klasse ProzessVerwaltung


m_pd

private ProzessDaten m_pd
Prozessdaten der Inkarantion


m_proc

private java.lang.Process m_proc
eigentlicher gestarteter Process


m_daVKommunikation

private DaVKommunikation m_daVKommunikation
Singelton Instanz für Klasse DaVKommunikation


m_globaleDaten

private GlobaleDaten m_globaleDaten
Singelton Instanz für Klasse GlobaleDaten


m_prID

private java.lang.String m_prID
Prozess Id


m_zustand

private SkriptVewEnums.E_ZUSTAND m_zustand
Zustand der Inkarnation


m_oldZustand

private SkriptVewEnums.E_ZUSTAND m_oldZustand
Alter Zustand der Inkarantion


m_beendeStart

private boolean m_beendeStart
Merker zum Beenden des Startvorgangs


m_beendeStopp

private boolean m_beendeStopp
Merker zum Beenden des Stoppvorgangs


m_logbuch

private Logbuch m_logbuch
Singelton Instanz für Klasse Logbuch


m_name

private java.lang.String m_name
Name der Inkarnation


m_stoppen

private boolean m_stoppen
Merker ob Inkarnation gestoppt werden soll


m_threadStarteInkarnation

private Inkarnation.ThreadStarteInkarnation m_threadStarteInkarnation
Thread zum Starten der Inkarnation


m_threadStoppeInkarnation

private Inkarnation.ThreadStoppeInkarnation m_threadStoppeInkarnation
Thread zum Stoppen der Inkarnation


m_threadNeuStartInkarnation

private Inkarnation.ThreadNeuStartInkarnation m_threadNeuStartInkarnation
Thread zum Neustarten der Inkarnation


m_threadStarteInkarnationZyklisch

private Inkarnation.ThreadStarteInkarnationZyklisch m_threadStarteInkarnationZyklisch
Thread zum zyklischen Starten der Inkarnation


m_betriebssystemProzess

private BetriebssystemProzess m_betriebssystemProzess
Verweis auf Betriebssystemebene der Inkarantion


m_startStoppSperren

private StartStoppPräferenz m_startStoppSperren
Instanz für Preferenzeinstellungen

Constructor Detail

Inkarnation

public Inkarnation(java.lang.String prID)
Konstruktor der Klasse

Parameters:
prID - ProzessID der Inkarnation
Method Detail

starteInkarnation

public void starteInkarnation(long absender,
                              long delay)
Methode zum Starten einer Inkarantion. Die Methode startet einen Thread der das eigentliche Starten der Inkarnation veranlasst. Dieser Thread wartet dann auf des Ende der Inkarnation.

Parameters:
absender - Absender der das Starten der Inkarnation veranlasst hat
delay - Verzögerung des Starts in Sekunden

starteInkarnationZyklisch

public void starteInkarnationZyklisch(long absender)
Methode zum zyklischen Starten einer Inkarantion. Die Methode startet einen Thread der das eigentliche zyklische Starten der Inkarnation veranlasst. Dieser Thread läuft solange, bis die Applikation beendet wird oder die Startart der Inkarnation geändert wird.

Parameters:
absender - Absender

stoppeInkarnation

public void stoppeInkarnation(long absender,
                              boolean stoppeSofort)
Methode zum Stoppen einer Inkarantion. Die Methode startet einen Thread der das eigentliche Stoppen der Inkarnation veranlasst. Abhängig von dem Parameter stoppeSofort wartet der Thread wird die Stoppbedingung ausgewertet oder nicht.

Parameters:
absender - Absender der das Stoppen auslöst
stoppeSofort - Sofort abbrechen oder Stoppbedinung bzw. Verzögerungszeit noch berücksichtigen

neuStartInkarnation

public void neuStartInkarnation(long absender,
                                long simulationsVariante)
Methode zum Neustarten einer Inkarantion. Die Methode startet einen Thread der das eigentliche Neustarten der Inkarnation veranlasst. Beim Neustart wird


ueberwacheProzess

private void ueberwacheProzess(long absender)
Methode die wartet, bis ein Prozess beendet ist


setzeZustand

public void setzeZustand(SkriptVewEnums.E_ZUSTAND zustand,
                         long absender)
Methode zum Setzen des Status einer Inkarnation und Publizieren des Status über den DaV. Bei Änderungen des Status wird eine entsprechende Betriebsmeldung versendet.

Parameters:
zustand - neuer Status
absender - Absender

isStartBedingungErfuellt

public boolean isStartBedingungErfuellt()
Methode rüft ob alle Startbedingungen eines Prozesses erfüllt sind.

Returns:
true Startbedingungen sind erfüllt, false mindestens ein Startbedinung ist nicht erfüllt.

isStoppBedingungErfuellt

public boolean isStoppBedingungErfuellt()
Methode rüft ob alle Stoppbedingungen eines Prozesses erfüllt sind

Returns:
true Stoppbedingungen sind erfüllt, false mindestens ein Stoppbedinung ist nicht erfüllt.

startVerhaltenBeiFehler

private void startVerhaltenBeiFehler(long absender)
Methode zum Auswerten des Startverhaltens bei Fehler

Parameters:
absender - Absender

stoppVerhaltenBeiFehler

private boolean stoppVerhaltenBeiFehler(long absender)
Methode zum Auswerten des Stoppverhaltens bei Fehler

Parameters:
absender - Absender
Returns:
true: Stoppen erneut veruschen, false: Stoppvorgang beendet

beendeStart

public void beendeStart()

beendeStopp

public void beendeStopp()
Methode zum Beenden des Stoppvorgangs


logbuch

private void logbuch(java.lang.String text)
Inkarantionsspezifischen Eintag in Logbuch schreiben.

Parameters:
text - Text für Logbuch

getName

public java.lang.String getName()
Returns:
liefert die Variable name zurück

setName

public void setName(java.lang.String name)
Parameters:
name - setzt die Variable name

getPd

public ProzessDaten getPd()
Returns:
liefert die Variable pd zurück

getProzess

public java.lang.Process getProzess()
Methode liefert den eigentlichen Prozess zurück

Returns:
Prozess