|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.sys.startstopp.prozessvew.ProzessVerwaltung
public class ProzessVerwaltung
Die Klasse verwaltet die einzelnen Prozesse die durch StartStopp gestartet werden sollen. Sie verfügt über Methoden zum Starten, Stoppen und Neustarten einzelner oder aller Prozesse. Die Klasse wird als Singleton ausgeführt.
Nested Class Summary | |
---|---|
static class |
ProzessVerwaltung.Inner
Innere Klasse zum Sicherstellen, dass wirklich nur eine Instanz der Klasse gebildet wird |
private class |
ProzessVerwaltung.ThreadBeendeStartStopp
Interne Klasse zum Beenden der StartStopp Applikation |
private class |
ProzessVerwaltung.ThreadLoescheProzess
Interne Klasse zum Löschen eines Prozesses |
private class |
ProzessVerwaltung.ThreadStarteKernsystem
Intern Klasse die zum Starten des Kernsystems verwendet wird. |
Field Summary | |
---|---|
private boolean |
_debug
Debug Einstellungen |
private static de.bsvrz.sys.funclib.debug.Debug |
logger
Debug Einstellungen |
private java.util.List<IKernsystemListener> |
m_angemeldeteListener
Liste mit den Klassen dich sich als Listener auf die Klasse angemeldet haben. |
private java.util.HashMap<java.lang.String,java.lang.Integer> |
m_dateiVerwaltung
Zähler wie oft welche Datei verwendet wird. |
private DaVKommunikation |
m_daVKommunikation
Verweis auf Singelton Instanz der Klasse DaVKommunikation |
private boolean |
m_fehlerInkarantion
Merker, ob in dem Inkarnationsanteil der Datei startStopp.xml ein sematischer Fehler vorliegt (z.B. |
private GlobaleDaten |
m_global
Verweis auf Singelton Instanz der Klasse GlobaleDaten |
private boolean |
m_kernSystemGestartet
Merker ob Kernsystem gestartet wurde |
private java.lang.Object |
m_neuDavVerbindungAufbauen
|
private ProzessDatenVerwaltung |
m_prozessDatenVerwaltung
Prozessdaten der Prozesse des lokalen Rechners |
private ProzessDatenVerwaltung |
m_prozessDatenVerwaltungRemote
Prozessdaten der Prozesse der remote Rechner |
private ProzessVerwaltung.ThreadBeendeStartStopp |
m_threadBeendeStartStopp
Thread der die StartStopp Applikation beendet |
private static long |
serialVersionUID
|
Constructor Summary | |
---|---|
private |
ProzessVerwaltung()
Parameterloser Konstruktor der Klasse |
Method Summary | |
---|---|
void |
addListener(IKernsystemListener listener)
Methode zum Hinzufügen eines Listeners |
void |
addProzessDatenRemote(ProzessDaten pd)
Methode zum Hinzufügen der Prozessdaten eines Remoteprozesses |
void |
beendeStartStoppApplikation(long absender,
boolean stoppeSofort)
gezieltes Beenden aller gestarteten Prozesse und Beenden der StartStopp Applikation |
void |
beendeStartVorgang(boolean beendeLaufendeInkarnationen)
Methode zum Beenden des Startvorgangs. |
void |
beendeStoppVorgang()
Methode zum Beenden des Stoppvorgangs. |
private void |
benachrichtigeListener()
Methode mit der die Klasse alle bei ihr angemeldeten Listener über die Änderung der Daten informiert. |
java.lang.String |
bestimmeProzessPid(java.lang.String startStoppBlockId,
java.lang.String name)
Methode zum Bestimmen der Prozessid. |
java.lang.String |
bildeEindeutigenNamen(java.lang.String name)
Methode prüft ob der übergebene Name bereits als Prozessname verwendet wird. |
java.util.List<ProzessDaten> |
getAlleProzessDaten()
Methode liefet die Prozessdaten aller Prozesse |
java.util.List<ProzessDaten> |
getAlleProzessDatenRemote()
Methode liefet die Prozessdaten aller Remoteprozesse als Liste |
int |
getAnzahlProzesse()
Methode liefert die Anzahl der Prozesses |
static ProzessVerwaltung |
getInstanz()
Methode zum Lesen der einzigen Instanz der Klasse |
java.lang.String |
getPidByName(java.lang.String name)
Methode bestimmt zu einem Prozess des lokalen Rechners die dazugehörende Pid |
java.lang.String |
getPidByNameRemote(java.lang.String name,
java.lang.String ipAdresse)
Methode bestimmt zu einem Prozess eines Remoterechners die dazugehörende Pid |
ProzessDaten |
getProzessDaten(java.lang.String id)
Methode liefert die Prozessdaten eines lokalen Prozesses zurück, der über seine ID angesprochen wird |
ProzessDaten |
getProzessDaten(java.lang.String startStoppBlockId,
java.lang.String rechnerAlias,
java.lang.String prozessName)
Methode bestimmt die Prozessdaten des Prozesses der durch die StartStopp Block Id, den Alias Namen eines Rechners und einem Prozessnamen beschrieben ist. |
ProzessDaten |
getProzessDatenRemote(java.lang.String id)
Methode liefert die Prozessdaten eines remote Prozesses (Prozess der auf anderem Rechner läuft) zurück, der über seine ID angesprochen wird |
void |
initialisiereInkarnationen(org.jdom.Element root,
long absender,
java.lang.String startStoppBlockId,
long simulationsVariante)
Methode zum Auslesen der Inkarnationsdaten aus einer XML-Struktur. |
boolean |
isEindeutigerName(java.lang.String name)
Methode prüft ob der übergebene Name als Prozessname eindeutig ist. |
boolean |
isInkarntionsTeilPlausibel()
Methode liefert den Plausibilitätszustand des Inkarantionsanteils der StartStopp.xml Datei |
boolean |
isKernSystemGestartet()
Methode liefert die Information, ob das Kernsystem gestartet ist und Informationen an des Kernsystem übertragen werden können. |
private boolean |
isZirkelSchlussInStartbedingung(ProzessDaten proc,
java.util.List<java.lang.String> zuPruefendeNamen,
java.util.List<ProzessDaten> procListe)
Methode prüft, ob der Name einer Applikation in seinen Startbedingungen direkt, bzw. indirekt vorkommt. |
private boolean |
isZirkelSchlussInStoppbedingung(ProzessDaten proc,
java.util.List<java.lang.String> zuPruefendeNamen,
java.util.List<ProzessDaten> procListe)
Methode prüft, ob der Name einer Applikation in seinen Stoppbedingungen direkt, bzw. indirekt vorkommt. |
void |
loescheAlleProzessDatenRemote()
Methode zum Entfernen aller Prozesseinträge, die auf anderen Rechnern gestartet wurden. |
void |
loescheProzess(java.lang.String prID,
long absender)
Methode zum Löschen eines Prozesses. |
void |
loescheProzessDatenRemote(java.lang.String ip)
Methode zum Entfernen der Prozesseinträge, die auf einem anderen Rechner gestartet wurden. |
void |
loescheProzesse(java.util.List<java.lang.String> prIds,
long absender)
Methode zum Löschen mehrerer Prozesse. |
static long |
myLong(java.lang.String s)
Hilfmethode zum Umwandeln eines Longwertes in einen String |
private void |
mySleep(long ms)
Sleep Funktionalität |
void |
neuStartProzess(java.lang.String prID)
Methode zum Neustarten eines Prozesses |
void |
neuStartProzess(java.lang.String prID,
long absender,
long simulationsVariante)
Methode zum Neustarten eines Prozesses |
void |
removeListener(IKernsystemListener listener)
Methode zum Entfernen eines Listeners |
void |
reset()
Methode zum Resetten der Datenstrukturen der Prozessverwaltung |
void |
setKernSystemGestartet(boolean kernSystemGestartet)
Methode setzt den Merker der signalisiert, dass das Kernsystem gestartet wurde. |
void |
setProzessDaten(java.lang.String id,
ProzessDaten prozessDaten)
Methode zum Setzen der Prozessdaten eines Prozesses |
void |
starteKernsystem()
Methode zum Starten des Kernsystems. |
void |
starteProzess(java.lang.String prID)
Methode zum Starten eines Prozesses |
void |
starteProzess(java.lang.String prID,
long absender,
long simulationsvariante)
Methode zum Starten eines Prozesses |
void |
starteProzessManuell(java.lang.String prID,
long absender,
long simulationsvariante)
Methode zum manuellen Starten eines Prozesses |
void |
starteProzessZyklisch(java.lang.String prID,
long absender,
long simulationsvariante)
Methode zum zyklsichen Starten eines Prozesses |
void |
stoppeAlleProzesse(boolean beendeKernsystem,
boolean stoppeSofort)
Methode zum Stoppen aller Prozesse. |
void |
stoppeProzess(java.lang.String prID)
Methode zum Stoppen eines Prozesses |
void |
stoppeProzess(java.lang.String prID,
long absender,
boolean stoppeSofort)
Methode zum Stoppen eines Prozesses |
private void |
verwalteDatei(java.lang.String dateiName)
Methode dient dazu festzustellen, ob eine Datei mehrfach verwendet wird. |
boolean |
wirdDateiMehrfachVerwendet(java.lang.String datei)
Methode liefert die Information ob eine Datei mehrfach verwendet wird (mehrere Inkarnationen nutzen die selbe Datei für ihre Ausgaben) |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final long serialVersionUID
private static final de.bsvrz.sys.funclib.debug.Debug logger
private final boolean _debug
private ProzessDatenVerwaltung m_prozessDatenVerwaltung
private ProzessDatenVerwaltung m_prozessDatenVerwaltungRemote
private java.util.HashMap<java.lang.String,java.lang.Integer> m_dateiVerwaltung
private GlobaleDaten m_global
private DaVKommunikation m_daVKommunikation
private boolean m_kernSystemGestartet
private ProzessVerwaltung.ThreadBeendeStartStopp m_threadBeendeStartStopp
private boolean m_fehlerInkarantion
private java.util.List<IKernsystemListener> m_angemeldeteListener
private java.lang.Object m_neuDavVerbindungAufbauen
Constructor Detail |
---|
private ProzessVerwaltung()
Method Detail |
---|
public static ProzessVerwaltung getInstanz()
public void reset()
public void starteProzess(java.lang.String prID)
prID
- Id des zu startenden Prozessespublic void starteProzess(java.lang.String prID, long absender, long simulationsvariante)
prID
- ProzessIDabsender
- Absender der Start auslöstpublic void starteProzessZyklisch(java.lang.String prID, long absender, long simulationsvariante)
prID
- ProzessIDabsender
- Absender der den zyklischen Start auslöstpublic void starteProzessManuell(java.lang.String prID, long absender, long simulationsvariante)
prID
- ProzessIDabsender
- Absender der den manuellen Start auslöstpublic void stoppeProzess(java.lang.String prID)
prID
- Id des zu stoppenden Prozessespublic void stoppeProzess(java.lang.String prID, long absender, boolean stoppeSofort)
prID
- ProzessIDabsender
- Absender der das Stoppen auslöststoppeSofort
- sofort Stoppen ohne warten auf Stoppbedingung bzw. Delaypublic void neuStartProzess(java.lang.String prID)
prID
- Id des neu zu startenden Prozessespublic void neuStartProzess(java.lang.String prID, long absender, long simulationsVariante)
prID
- Id des neu zu startenden Prozessesabsender
- Absender der Start auslöstpublic void loescheProzess(java.lang.String prID, long absender)
prID
- Id des zu löschenden Prozessesabsender
- Absender der das Löschen auslöstpublic void loescheProzesse(java.util.List<java.lang.String> prIds, long absender)
prIds
- Liste mit den Ids der zu löschenden Prozesseabsender
- Absender der das Löschen auslöstpublic void setProzessDaten(java.lang.String id, ProzessDaten prozessDaten)
id
- Id des ProzessesprozessDaten
- Prozessdaten des Prozessespublic int getAnzahlProzesse()
public ProzessDaten getProzessDaten(java.lang.String id)
public ProzessDaten getProzessDatenRemote(java.lang.String id)
public void initialisiereInkarnationen(org.jdom.Element root, long absender, java.lang.String startStoppBlockId, long simulationsVariante)
root
- Verweis auf Root Element der XML-Strukturabsender
- AbsenderstartStoppBlockId
- ID des StartStopp BlockssimulationsVariante
- Simulationsvariante des StartStopp Blocksprivate boolean isZirkelSchlussInStartbedingung(ProzessDaten proc, java.util.List<java.lang.String> zuPruefendeNamen, java.util.List<ProzessDaten> procListe)
proc
- Prozessdaten des aktuelle zu prüfenden ProzesseszuPruefendeNamen
- Liste mit den Namen die gesucht werden (= Pfad der Startbedingungen)procListe
- Liste mit den zu prüfenden Prozessdaten
private boolean isZirkelSchlussInStoppbedingung(ProzessDaten proc, java.util.List<java.lang.String> zuPruefendeNamen, java.util.List<ProzessDaten> procListe)
proc
- Prozessdaten des aktuelle zu prüfenden ProzesseszuPruefendeNamen
- Liste mit den Namen die gesucht werden (= Pfad der Stoppbedingungen)procListe
- Liste mit den zu prüfenden Prozessdaten
private void verwalteDatei(java.lang.String dateiName)
dateiName
- Name der Datei (aus startstopp.xml)public boolean wirdDateiMehrfachVerwendet(java.lang.String datei)
datei
- Name der Datei
public java.lang.String bildeEindeutigenNamen(java.lang.String name)
name
- Name der geprüft werden soll
public boolean isEindeutigerName(java.lang.String name)
name
- Name der geprüft werden soll
public java.lang.String bestimmeProzessPid(java.lang.String startStoppBlockId, java.lang.String name)
startStoppBlockId
- Id des zu diesem Prozess gehörenden StartStoppBlocksname
- Name der Inkarnation
public void starteKernsystem()
public boolean isKernSystemGestartet()
public void setKernSystemGestartet(boolean kernSystemGestartet)
kernSystemGestartet
- Kernsystem gestartetpublic java.lang.String getPidByName(java.lang.String name)
name
- Name des Prozess
public java.lang.String getPidByNameRemote(java.lang.String name, java.lang.String ipAdresse)
name
- Name des ProzessipAdresse
- IP-Adresse des Rechners auf dem der Prozess läuft
public static long myLong(java.lang.String s)
s
- String der umgewandelt werden soll
public java.util.List<ProzessDaten> getAlleProzessDaten()
public java.util.List<ProzessDaten> getAlleProzessDatenRemote()
public void beendeStartVorgang(boolean beendeLaufendeInkarnationen)
beendeLaufendeInkarnationen
- true: bereits gestartete Inkarnationen werden beendet,
false: bereits gestartet Inakrantionen laufen weiter.public void beendeStoppVorgang()
public void stoppeAlleProzesse(boolean beendeKernsystem, boolean stoppeSofort)
beendeKernsystem
- soll Kensystem beendet werden oder nichtstoppeSofort
- soll System sofort (d.h. ohne Warten auf Erfüllung der Stoppbedingung)
beendet werden.public void beendeStartStoppApplikation(long absender, boolean stoppeSofort)
absender
- Absender Auslöser der AktivitätstoppeSofort
- soll System sofort (d.h. ohne Warten auf Erfüllung der Stoppbedingung)
beendet werden.public boolean isInkarntionsTeilPlausibel()
public ProzessDaten getProzessDaten(java.lang.String startStoppBlockId, java.lang.String rechnerAlias, java.lang.String prozessName)
startStoppBlockId
- Id des Startstopp Blocks in dem der Rechner Alias definiert wurderechnerAlias
- Alias Bezeichnung des RechnersprozessName
- Prozessname
public void loescheProzessDatenRemote(java.lang.String ip)
ip
- IP-Adresse des Remoterechnerspublic void loescheAlleProzessDatenRemote()
public void addListener(IKernsystemListener listener)
listener
- Listener der hinzugefügt werden sollpublic void removeListener(IKernsystemListener listener)
listener
- Listener der entfernt werden sollprivate void benachrichtigeListener()
public void addProzessDatenRemote(ProzessDaten pd)
pd
- Prozessdaten des Remoteprozessesprivate void mySleep(long ms)
ms
- Zeit in Millsekunden
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |