Guten Morgen,
ich programmier hier in meiner Fachinformatiker-Ausbildung zur Zeit ein Java-Interface für unser Reporting (läuft noch alles über Cobol), um meine Java-Kenntnisse zu erweitern und wenn man mit dem Zeug am Ende was anfangen könnte,... mal schaun.
Dabei soll jeder Report (Auswertungen auf Basis betriebsinterner Datenbanken) eine von einer best. im Interface definierten Report-Klasse abgeleitete Klasse sein. Gestartet werden sollen die Reports nach Erhalt eines best.
Signals über einen auch in Java geschriebenen Launcher, quasi eine Abfrage des Status
in einer Endlosschleife.
Stellt dieser fest: "Aha, Datum x erreicht", schmeißt er die Reports y, die an diesem Datum fällig sind, raus.
(Natürlich kann man die Signale auch anders festlegen.)
Bisher wird innerhalb dieser Schleife einfach ein Objekt des jeweiligen Reports gestartet, wenn er laut Report-Datenbank fällig ist.
Dadurch hab ich allerdings keine Möglichkeit, evtl. Endlosschleifen etc. innerhalb der Reports abzubrechen.
Exception schmeißt man halt einfach weiter, aber was macht man, wenn es eben zu keiner Exception kommt?
Gibt es Klassen für kontrolliertes Threading? Im Prinzip sollte der Launcher ja nicht nur alles der Reihe nach starten, sondern wenigstens ansatzweise als Prozess-Manager fungieren, wobei bedacht werden muss, dass die Prozesse ja über Nacht laufen und er von daher von sich aus abbrechen soll, wenn ihm das Verhalten eines Report-Objekts komisch vorkommt, z.B., wenn nach einer best. Zeit kein Datentransfer mehr stattfindet o.ä.
Natürlich sollten die Reports sinnvollerweise erstmal getestet werden, bevor sie an den Start gehen, is schon klar, aber deswegen können derartige Fehler immer noch nicht ganz ausgeschlossen werden, mein ich.
Hat jemand schon mal was ähnliches programmiert oder zumindest angedacht und vielleicht einen Tip?
Ciao!
Michi
ich programmier hier in meiner Fachinformatiker-Ausbildung zur Zeit ein Java-Interface für unser Reporting (läuft noch alles über Cobol), um meine Java-Kenntnisse zu erweitern und wenn man mit dem Zeug am Ende was anfangen könnte,... mal schaun.
Dabei soll jeder Report (Auswertungen auf Basis betriebsinterner Datenbanken) eine von einer best. im Interface definierten Report-Klasse abgeleitete Klasse sein. Gestartet werden sollen die Reports nach Erhalt eines best.
Signals über einen auch in Java geschriebenen Launcher, quasi eine Abfrage des Status
in einer Endlosschleife.
Stellt dieser fest: "Aha, Datum x erreicht", schmeißt er die Reports y, die an diesem Datum fällig sind, raus.
(Natürlich kann man die Signale auch anders festlegen.)
Bisher wird innerhalb dieser Schleife einfach ein Objekt des jeweiligen Reports gestartet, wenn er laut Report-Datenbank fällig ist.
Dadurch hab ich allerdings keine Möglichkeit, evtl. Endlosschleifen etc. innerhalb der Reports abzubrechen.
Exception schmeißt man halt einfach weiter, aber was macht man, wenn es eben zu keiner Exception kommt?
Gibt es Klassen für kontrolliertes Threading? Im Prinzip sollte der Launcher ja nicht nur alles der Reihe nach starten, sondern wenigstens ansatzweise als Prozess-Manager fungieren, wobei bedacht werden muss, dass die Prozesse ja über Nacht laufen und er von daher von sich aus abbrechen soll, wenn ihm das Verhalten eines Report-Objekts komisch vorkommt, z.B., wenn nach einer best. Zeit kein Datentransfer mehr stattfindet o.ä.
Natürlich sollten die Reports sinnvollerweise erstmal getestet werden, bevor sie an den Start gehen, is schon klar, aber deswegen können derartige Fehler immer noch nicht ganz ausgeschlossen werden, mein ich.
Hat jemand schon mal was ähnliches programmiert oder zumindest angedacht und vielleicht einen Tip?
Ciao!
Michi