Netzwerkunterbrüch

Hallo,

ich habe folgendes Problem bei mehreren Kunden die mit 4D Server / Client arbeiten:
Es kommt regelmässig vor, dass auf dem Netzwerk kurze Unterbrüche entstehen welche verursachen, dass sich die Clients aufhängen. Auf dem Client erscheint eine Fehlermeldung “NULL end-point” mit der Aufforderung, den Client neu zu starten.
In unserer Applikation gibt es jedoch Clients welche automatisierte Tasks ausführen und nicht von einem Benutzer überwacht werden. Dies führt dazu, dass das System still steht und keine Daten mehr verarbeitetet werden.
Gibt es eine Möglichkeit, solche Situationen abzufangen und den Client automatisch neu zu starten? Ich habe in folgendem Forumsbeitrag http://forums.4d.com/Post/DE/11878360/1/11879155#11879155 den Hinweis gelesen, dass man die automatische Freigabe von Client-Verbindungen ausschalten kann. Habe jedoch nicht rausgefunden wie ich das machen könnte.

Vielen Dank für Hinweise im Voraus!

Welche 4D Version verwendet die Application. Das ist ein Uraltes Problem von 4D v13, nein ?

: Beat GILGEN

… Hinweis gelesen, dass man die automatische Freigabe von
Client-Verbindungen ausschalten kann. Habe jedoch nicht rausgefunden
wie ich das machen könnte.

4D Server > Datenbank-Eigenschaften > Client-Server > Kreuz “Client beim Starten anmelden (für Execute on Client)” entfernen.

: Beat GILGEN

… Fehlermeldung … mit der Aufforderung, den Client neu zu
starten.
In unserer Applikation gibt es jedoch Clients welche automatisierte
Tasks ausführen

So ein Service-Client kann auch aus anderen Gründen mal abstürzen und sollte deshalb von einer dritten Seite regelmäßig überwacht werden, die dann z. B. eine Mail an den Admin schickt.

Solche Überwachungs-Systeme (Nagios etc.) checken aber meist nur, ob der Prozess noch läuft, und der läuft ja im besagten Fall weiter, das bringt also nichts. Es gibt aber andere Optionen, z. B. dass der 4D-Client alle paar Minuten eine Lebenszeichen-Datei in einen bestimmten Ordner schreibt, und das Überwachungsprogramm löscht sie wieder.

Noch besser ist es, wenn das Überwachungsprogramm dann auch gleich den 4D-Client wieder startet. Aber dazu muss es ihn zunächst einmal abschießen, weil er ja noch halbtot rumhängt. Das geht z. B. mit dem DOS-Kommando TASKKILL.

Ein Überwachungsprogramm als Batch-Script könnte z. B. so aussehen:

@ECHO OFF
REM ####### 4D_WACHE.BAT #######

:Marke_Start
IF EXIST %userprofile%\desktop\4D_Client_lebt.txt GOTO Marke_Gut
GOTO Marke_Bad

:Marke_Gut
DEL %userprofile%\desktop\4D_Client_lebt.txt
GOTO Marke_Fertig

:Marke_Bad
TASKKILL /F /IM 4D.exe
TIMEOUT /t 5
Call %userprofile%\desktop\Starte_4D_Client.bat

:Marke_Fertig
TIMEOUT /t 300
GOTO Marke_Start

Hab’s aber nicht getestet, wird also vermutlich nicht funktionieren, ist nur als Anregung gedacht.
Der 4D-Client müsste dann mindestens alle 5 Minuten eine Datei “4D_Client_lebt.txt” auf den Desktop schreiben, und es müsste eine Batch-Datei geben, mit der man den 4D-Client starten kann, die also z. B. 4D.exe mit einer 4DLink-Datei aufruft.

Vielen Dank für das ausführliche Feedback. Die Applikation läuft mit 4D V14.6.
Ich hatte gehofft, dass es einen 4D-Befehl gibt um vom Client aus auf solche Situationen zu reagieren. Die Idee einer Supervisor-Applikation hatten wir auch schon in Erwägung gezogen.