Denkt man nicht daran - obwohl eigentlich simpel!

  • Da habe ich, vor 3 Jahren, ein AutoIt Script geschrieben, das automatisch, 2 x am Tag auf einem Win Server etwas erledigt. In der Anfangsphase Script kontroliert, die "kritischen" Übergänge von einem Monat zum anderen, von einem Jahr zum anderen geprüft - läuft. Ab und an mal einen Blick drauf - läuft.

    Aus dem Augen aus dem Sinn. Das Script erstellt eine besondere Art von Notfall Backup. Der Notfall ist dankenswerter weise nicht eingetreten - denn mein Script hat sich irgendwann - vor Monaten aufgehängt! Keiner hat es bemerkt. Nur der Timer hat es 2 x am Tag aufgerufen, und da das Script eben hängen blieb - blieben es alle anderen Aufrufe auch! Unten rechts hingen tatsächlich einige hundert Programmaufrufe :)

    Ihr ahnt es bereits. Schneller wurde der Server dadurch nicht. Vor einigen Tagen, bin ich dem ganzen, zufällig, auf die Spur gekommen. Weder an der Konsole noch via Remote lies sich der Server zu vernünftiger Zusammenarbeit überreden - fairerweise muss man zugeben, dass er seinem Job als Datenserver zuverlässig, wenn auch deutlich langsammer, erledigt hat. Um die gescheiterten Programmaufrufe zu beseitigen half tatsächlich nur eine Radikalkur - Strom weg!

    Um es kurz zu machen - der Server läuft wieder - mein Script auch. Es tut was es soll. Warum es sich aufgehängt hat? Leider keine Ahnung.

    Warum ich diese Zeilen schreibe?

    Ich hatte eine Idee! Nun überwache ich meine "automatic" Scripte, indem ich bei jedem Start nachfrage ob es eine Instanz des Programmes gibt. Wenn ja - mail an mich und Exit! Sind nur ein paar Zeilen, kosten nichts, kann man immer wieder verwenden, und verhindern so ein Missgeschick. (Bitte keine Nachrichten ich sei selber schuld, mann müsse auch Backups kontrolieren.... ist mir auch klar... aber wir sind eben alle nur Menschen mit 24 Stunden usw....)

    Vielleicht kann der eine oder andere die Idee mit der "Selbstüberwachung" gebrauchen.

    Frohen 2ten Advent

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Es ist schon manchmal merkwürdig was Skripte die Jahrelang anstandslos funktioniert haben für Anstalten machen^^

    Frohen 3ten Advent (darf man erst Morgen lesen... hehehe)

  • Ein ähnliches Problem hatte ich auch mal.

    Folgende Maßnahmen haben mir geholfen. Einerseits um zu verhindern, dass zu viele Instanzen des Skripts gestartet wurden und andererseits um zu verhindern, dass das Skript crashed und auf eine manuelle Eingabe wartet.

    • Verwendung von _Singleton
    • Protokollierung jeder Funktion des Skripts in einer Log-Datei. So lässt sich eingrenzen, wo das Skript hängt.
    • Einsatz eines Hooks von trancexx, damit bei Crash des Skripts keine MsgBox ausgegeben wird mit OK, Abbrechen Button etc. Damit können solche Fehler auch vom Skript abgefangen und protokolliert werden. Hilft ungemein!
  • Mars

    ja wenn man überlegt, dass das Script nun schon wieder 18 Tage anstandslos läuft?

    water

    danke für den Hinweis. Ich habe mir nun schlicht damit geholfen, dass ich beim Programmstart als erstes nachsehe ob es eine Instanz des Programmes gibt (das sollte nicht der Fall sein) wenn ja --> Aufgehängt. Dann Mail an mich und Exit.

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)