| Autor |
Beitrag |
Bronstein
      
Beiträge: 578
Erhaltene Danke: 1
WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
|
Verfasst: Do 05.06.08 20:20
Hallo,
ich habe ein Programm, das auf mehreren Rechnern in unserer Firma läuft und Daten von Scannern verarbeitet.
Jetzt suche ich eine Möglichkeit, um zu prüfen ob das Programm noch auf jedem Rechner läuft oder ob ein Rechner abgestürzt oder versehentlich das Programm beendet wurde.
Hat das schon jemand mal gemacht oder hat eine Idee wie ich das realisieren könnte?
_________________ Es gibt keine dummen Fragen nur dumme Antworten!!!
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Do 05.06.08 20:24
Hi,
INHO brauchst du einen Server, der die Rechner speichert, auf denen das Progi läuft. Diesen fragst du dann. @Rechner abgestürzt: Musst du pingen.
mfG,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
Dunkel
      
Beiträge: 682
Mac OS X Snow Leopard
Xcode 3.1
|
Verfasst: Do 05.06.08 20:36
Sowas nennt sich "Watchdog". Das ist ein kleines Programm welches in definierten Zeitabständen ein "Ping" an das zu überprüfende Programm schickt und auf eine zeitnahe Antwort wartet, bleibt diese Antwort aus, dann stimmt irgendwas nicht -> Alarm, automatischer Neustart des Programms/Rechners, sonst eine Aktion ausführen. Auf jeden Fall sollte solch eine Überwachung auf eine zweite Echse / zweiten Prozess ausgelagert werden, besser noch auf einen autarken Rechner (was bei Dir ja der Fall sein wird, so wie sich Dein Problem liest).
_________________ Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Fr 06.06.08 08:36
Das Thema hatten wir doch schonmal...
Die andere Variante ist übrigens ein Heartbeat: dein Verteiltes Programm schickt solange es läuft immer mal ein Paket an den Monitor-Rechner. Dieser passt dann auf von wo er noch Pakete kriegt und leitet ggf Maßnahmen ein (Meldung, Restart usw.)
Hat aber alles das gleiche Problem, da ja auch der Monitor ausfallen könnte. Und dann wirst du nicht mehr feststellen können, obs noch läuft.
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Bronstein 
      
Beiträge: 578
Erhaltene Danke: 1
WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
|
Verfasst: Fr 06.06.08 18:21
@Martok
so hatte ich mir das auch gedacht. Wie schick und empfange ich aber so ein Packet?
Mir fällt jetzt gerade nur die Lösung ein, dass ich ein Textfile von den einzelnen Rechnern auf dem Server ableg. Der Server prüft dann regelmäig ob ein File von dem jeweiligen Rechner da ist, falls ja löscht er es, ansonsten schlägt er Alarm.
Ich glaub nicht dass das die beste Lösung ist!
Oder wie würdet ihr das machen?
_________________ Es gibt keine dummen Fragen nur dumme Antworten!!!
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 06.06.08 18:57
Moin!
Bronstein hat folgendes geschrieben: | | Oder wie würdet ihr das machen? |
Mach eine TCP-Verbindung auf und schick alle 5 Minuten ein Byte rüber. Wenn die Verbindung abbricht, kriegst du einen Fehler von der WSA -> Problem.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Bronstein 
      
Beiträge: 578
Erhaltene Danke: 1
WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
|
Verfasst: Fr 06.06.08 21:23
Hallo,
mit TCP habe ich noch gar nix gemacht per Delphi.
Welche Komponente verwende ich da. Hast du zufällig ein Beispiel?
_________________ Es gibt keine dummen Fragen nur dumme Antworten!!!
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 06.06.08 22:36
Moin!
Bronstein hat folgendes geschrieben: | mit TCP habe ich noch gar nix gemacht per Delphi.
Welche Komponente verwende ich da. Hast du zufällig ein Beispiel? | Einsteiger-Tutorial
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
littleDave
      
Beiträge: 111
Erhaltene Danke: 2
Win 7
Delphi 7 Prof, Turbo Delphi, VS 2008 Team System, VS 2010 Premium
|
Verfasst: Sa 07.06.08 12:36
Ich würd dir empfehlen, ein bereits vorhandenes Protokoll zu verwenden, das genau für dieses Problem erstellt wurde: SNMP (Simple Network Management Protocol):
Wikipedia-Link
Ein SNMP-Server sowie ein SNMP-Client ist bei den Indies dabei.
Ist vielleicht für nen Anfang etwas übertrieben, aber für später ist es ganz sinnvoll.
|
|