Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Unterstützung zur Prozessüberwachung nötig (https://www.delphipraxis.net/211252-unterstuetzung-zur-prozessueberwachung-noetig.html)

johndoe049 21. Aug 2022 17:20

Unterstützung zur Prozessüberwachung nötig
 
Hallo,

nachdem ich mir Firebird angesehen habe und dort auch den Guardian gesehen habe (Der Dienst, der die Datenbank bei einem Absturz neu startet) bin ich am überlegen, ob das nicht auch für eine Software von uns sinnvoll wäre.

Die Idee wäre:
- Benutzer startet nicht die Software selbst, sondern nur einen Guardian.
- Der Guardian startet die richtige Software
- Reagiert die richtige Software nicht mehr auf Prozesskommunikation oder übersteigt diverse Paramenter wie CPU Auslastung, Arbeitsspeicher, wird der entsprechende Prozess terminiert und neu gestartet.

Frage, die sich mir stellt, ist das mit Delphi einfach zu erledigen oder gibt es ggf. einen entsprechenden Source Code von anderen, den man einbinden kann (Freeware oder Kommerziell)

Im Moment ist das ganz einfach über einen Thread geregelt. Reagiert der nicht schnell genug, wird der beendet und neu gestartet.

Datenverlust kommt keiner zustande. Startwerte werden zwischengespeichert, bis die Aktionen beendet und bestätigt sind.

Wenns länger wie 2-3 Tage zum programmieren ist verwerfe ich die Idee wieder.

KodeZwerg 21. Aug 2022 21:38

AW: Unterstützung zur Prozessüberwachung nötig
 
Zitat:

Zitat von johndoe049 (Beitrag 1510466)
Wenns länger wie 2-3 Tage zum programmieren ist verwerfe ich die Idee wieder.

Wenn es gut werden soll und auch getestet, wird es mit 2-3 Tagen wohl nichts werden.
(Da Du mehrere Parameter berücksichtigen möchtest und nicht nur die reine Kommunikation.)

Kaufempfehlungen (also alles ist fertig so wie Du es möchtest) kenne ich leider keine :-(

johndoe049 21. Aug 2022 23:27

AW: Unterstützung zur Prozessüberwachung nötig
 
Zitat:

Zitat von KodeZwerg (Beitrag 1510476)
Zitat:

Zitat von johndoe049 (Beitrag 1510466)
Wenns länger wie 2-3 Tage zum programmieren ist verwerfe ich die Idee wieder.

Wenn es gut werden soll und auch getestet, wird es mit 2-3 Tagen wohl nichts werden.
(Da Du mehrere Parameter berücksichtigen möchtest und nicht nur die reine Kommunikation.)

Kaufempfehlungen (also alles ist fertig so wie Du es möchtest) kenne ich leider keine :-(

2-3 Tage wären nur für das Programmieren. Testen erfolgt teilweise automatisiert und würde mit den anderen Anpassungen erfolgen.

Der schöne Günther 22. Aug 2022 06:38

AW: Unterstützung zur Prozessüberwachung nötig
 
Wir hatten uns so etwas auch mal überlegt, haben es aber gelassen. Wenn man seiner eigenen Software nicht mehr so weit vertraut, dass sie alleine vernünftig laufen kann und es zum Normalzustand wird, die Software aus und wieder einzuschalten weil irgendetwas nicht geht, oder nicht so, wie es normalerweise sollte- Dann läuft da etwas ganz grundlegend falsch. Übertrag das doch mal auf ein anderes Konzept aus dem täglichen Leben zum anfassen - Hätten wir gerne, das Heizanlagen, Autos oder die Kasse am Supermarkt sich ebenso verhält?

johndoe049 22. Aug 2022 07:34

AW: Unterstützung zur Prozessüberwachung nötig
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1510481)
Wir hatten uns so etwas auch mal überlegt, haben es aber gelassen. Wenn man seiner eigenen Software nicht mehr so weit vertraut, dass sie alleine vernünftig laufen kann und es zum Normalzustand wird, die Software aus und wieder einzuschalten weil irgendetwas nicht geht, oder nicht so, wie es normalerweise sollte- Dann läuft da etwas ganz grundlegend falsch. Übertrag das doch mal auf ein anderes Konzept aus dem täglichen Leben zum anfassen - Hätten wir gerne, das Heizanlagen, Autos oder die Kasse am Supermarkt sich ebenso verhält?

Dann sollten externe Hersteller, z.B. von Multi IO Adaptern Ihre Hausaufgaben machen und einen fehlerfreien Treiber zur Verfügung stellen. Unsere Erfahrung ist, dass seit einigen Jahren die Hardware aus China bessere Treiber zur Verfügung stellt als renommierte deutsche Hersteller.

Dementsprechend auf deine Frage: Wenn die Heizanlage, Auto oder Kasse aus Deutschland kommt, kann man von dem Verhalten ausgehen.

Nur um es zu erklären: Die Software wird von einer Firma für die Berechnung von Lichtdesign verwendet. Je nach Größe der Anlage kommen sehr viele Lampen und sehr hohe Schaltspannungen zustande. Wenn alle Einzeldaten eingegeben sind, kann es schon mal sein, dass 750.000 Lampen und 10.000 Netzteile in allen möglichen Schaltkombinationen für die Berechnung von Maximalpeaks von Spannung, Strom, Blindstrom, etc. verwendet werden. Das kann man nicht alles im voraus im Design berücksichtigen. Auch die Datenbank für die möglichen Schaltzustände ist teilweise abenteuerlich groß.

In Lateinamerika sind solche Anlagen schon mal etwas grösser wie in Europa.

Delphi.Narium 22. Aug 2022 08:07

AW: Unterstützung zur Prozessüberwachung nötig
 
Einen Dienst schreiben kann man mit Delphi.

Ebenfalls kann man mit Delphi die Prozessliste abarbeiten und dort die Details wie CPU-Last, Speicherverbrauch, ... auslesen.

Diese Werte kann man mit Delphi vorübergehend oder dauerhaft speichern.

Delphi bietet auch die Möglichkeit, gespeicherte Daten auszuwerten.

Einen Prozess kann man auch mit Delphimitteln beenden.

Der Start eines Programmes ist mit Delphimitteln ebenfalls möglich.

Damit sollten alle von Dir geforderten Überwachungsmöglichkeiten / -parameter abgedeckt sein, ebenso die Anforderung an das Beenden und Neustarten eines Prozesse.

Aufwand:

1 Tag, um genau zu definieren, was Du mit Deinem Überwachungsprogramm erreichen willst, sowie Recherche nach den entsprechenden Funktionen, Sourcen, ... (Die JCL/JVCL enthalten dazu eine Menge in ihren Sourcen)
Eventuell könnte aber auch Windows Management Instrumentation (WMI) / Common Information Model (CIM) eine Alternative zur Auswertung der erforderlichen Parameter (systemweit im ganzen Netzwerk) sein. Hier hab' ich aber keine wirkliche Erfahrung, so dass ich den dort erforderlichen Aufwand nicht abschätzen kann. Prinzipiell ist das aber auch eine, mit Delphimitteln umsetzbare, Lösungsmöglichkeit.

1 Tag zur Implementierung.

1 Tag, um die Implementierung rudimentär zu Testen und ggfls. Fehler zu beseitigen.

Danach kann es in den automatisierten Test und dann in die Produktion gehen.

Sollte (für meine Begriffe) aber realisierbar sein.

(Voraussetzung, Du hast diese drei Tage wirklich ausschließlich für diesen "Job", als "Nebenschauplatz" wird's vermutlich etwas länger dauern.)

Zitat:

Zitat von Der schöne Günther (Beitrag 1510481)
Wir hatten uns so etwas auch mal überlegt, haben es aber gelassen. Wenn man seiner eigenen Software nicht mehr so weit vertraut, dass sie alleine vernünftig laufen kann und es zum Normalzustand wird, die Software aus und wieder einzuschalten weil irgendetwas nicht geht, oder nicht so, wie es normalerweise sollte- Dann läuft da etwas ganz grundlegend falsch. Übertrag das doch mal auf ein anderes Konzept aus dem täglichen Leben zum anfassen - Hätten wir gerne, das Heizanlagen, Autos oder die Kasse am Supermarkt sich ebenso verhält?

Prinzipiell hast Du recht, aber als Admin musste ich über Jahre hinweg nicht zur den stabilen "Dauerlauf" unserer eigenen Software sicherstellen, sondern auch den von Fremdsoftware (auch bekannter, großer, weltweit aggierender Softwarehersteller). Und die Erfahrung war: Da läuft im Dauerbetrieb nicht alles immer so stabil, wie es meist den Anschein hat oder man es von professioneller Software erwarten würde.

Und da war ein Dienst, der das alles überwachte (über mehrere Rechner im Netzwerk hinweg) und bei Fehlern entsprechend meldete, durchaus hilfreich. 'nen automatischen Neustart von Software oder gar Rechner, hab' ich damals aber nicht implementiert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz