AppDog

Applikations-Watchdog

© Shamrock Software GmbH
Version 1.56 - März 2019


Inhalt des Handbuchs

AppDog ist ein Freeware-Programm von Shamrock Software für Windows 2000, XP, Vista, 7, 2003, 2008. Shamrock bietet für Freeware keinen Hotline-Support und garantiert nicht die Eignung für einen bestimmten Verwendungszweck oder für eine bestimmte Systemumgebung. Das Weiterverbreiten des Programms im Internet oder auf Datenträgern ist nur mit schriftlicher Genehmigung der Shamrock Software GmbH zulässig. Die Weitergabe gegen Entgelt ist ausdrücklich untersagt.

Download der aktuellen AppDog-Version - English manual

AppDog-Versionsgeschichte
Version Datum Änderungen
1.5607.03.19[ByTyitle] optional mit exaktem Fenstertitel
1.5509.06.17Optimierungen FileCopy
1.5207.12.13Disable/Enable auch für [ByTitle]-Anwendungen
1.5123.10.13Filesync-Zugriffsfehler in Appdog.txt
1.5024.05.13Getrennte Statuszeile für FileMove
1.4328.01.10Windows-Fehlerfenster wird ggf. geschlossen
1.4228.05.08AppDog-Fenstertitel wird nicht mehr für Mehrfachstart geprüft
1.4125.05.07.LOK-Datei verhindert Mehrfachstart von AppDog
1.4027.06.06[ByTitle] benutzt jetzt WM_NULL-Messages
1.3122.11.05[x] rechts oben minimiert nur noch statt zu beenden
1.2615.12.04FileMove- und FileAppend-Funktion
1.2310.05.04Backup-Funktion: appdog.ini, [Filesync]
1.1212.06.03Auto-Boot (42 Tage) abschalt- oder änderbar
1.1127.03.03Disable/Enable im Kontextmenü
1.1010.02.03Popup-Messages mit Mailslot statt NetBIOS
1.0707.02.02AppClose zur Anzeige von Fenstertiteln und zum Beenden
1.0416.03.01Errors.txt bei Schutzverletzungen für NetMail-Alarmierung
1.0317.01.01Schutzverletzungs-Fenster werden erkannt und geschlossen
1.0014.09.00Erstversion mit Anbindung an CapiDog/CapiCall/CapiFax


Funktionsweise und Eigenschaften

AppDog dient dazu, auf einem unbewacht rund um die Uhr laufenden Windows-Rechner die dauerhafte Funktionsfähigkeit aller erforderlichen Programme sicherzustellen, beispielsweise bei einer Sprachmailbox oder einem Mail-Server.

AppDog bietet zwei Methoden an, um die Funktion der zu überwachenden Applikationen sicherzustellen: Speziell an AppDog angepasste Programme können per Ping-Pong-Antwort auf eine entsprechende Anfrage von AppDog mit einer Windows-Message antworten, um zu zeigen, dass sie korrekt laufen. Wenn AppDog erkennt, dass eine solche Applikation zwar noch läuft (Fenstertitel existiert), aber nicht arbeitet (keine Ping-Pong-Antwort), versucht es, das Programm zu beenden und neu zu starten.

Sonstige Applikationen werden von AppDog einfach daran erkannt, dass ein Fenster mit einem in AppDog vorher festgelegten Titel existiert und Test-Messages von Windows entgegennimmt. Das allein beweist zwar nicht das korrekte Funktionieren einer Applikation, zeigt aber immerhin, dass sie noch läuft. Wenn der Fenstertitel nicht gefunden wird, versucht AppDog automatisch, die Applikation zu starten.

Auch eine Backup-Funktion ist in AppDog enthalten. Damit werden Dateien aus einstellbaren Quellverzeichnissen und in einstellbaren Zeitabständen via Netzwerk z.B. auf ein Warmreserve-System kopiert.

Da der Windows-Systemtimer nach 49,7 Tagen überläuft (Millisekunden-Dword springt auf Null zurück) und das zahlreichen Applikationen bei der Berechnung von Zeitdifferenzen Probleme bereitet, kann AppDog den PC nach 42 Tagen (oder einer anderen Anzahl von Tagen) booten, aber nicht am Samstag oder Sonntag und nur zwischen 8 und 13 Uhr, also stets innerhalb der üblichen Bürozeiten. Die Funktion ist in appdog.ini mit AutoRebootPeriod=0 standardmäßig deaktiviert.

Zum Anschluss externer Alarmgeräte kann AppDog am TxD-Pin einer seriellen Schnittstelle ein 500-Hz-Signal ausgeben. Eine externe Logik kann dieses Signal auswerten und beim Ausbleiben einen Alarm auslösen.

Installation, Betrieb, Deinstallation

ZIP-Datei entpacken

Die im Internet verfügbare Archivdatei AppDog.Zip enthält die Dateien AppDog.exe (ausführbare Datei), AppDog.ini (Konfigurationsdatei, siehe unten) sowie AppDog.htm (dieses Handbuch). Das Utility AppClose zeigt ohne Kommandozeilen-Parameter alle Windows-Fenster an, wovon allerdings einige gewöhnlich unsichtbar sind, und erlaubt mit einem Fenstertitel in der Kommandozeile (ggf. auch abgekürzt, soweit eindeutig) das gezielte Beenden bestimmter Fenster.

Entpacken Sie AppDog.ZIP einfach in ein beliebiges Verzeichnis der Festplatte. Falls Sie ein Programm von Shamrock einsetzen, z.B. CapiCall oder CapiFax, ist es natürlich naheliegend, die AppDog-Dateien in dasselbe Verzeichnis zu speichen, aber das ist funktional nicht zwingend erforderlich.

Konfiguration mit AppDog.ini

AppDog wird von einer Textdatei AppDog.ini gesteuert. Bei den einzelnen Einträgen ist Groß- oder Kleinschreibung egal. Die Datei kann zum Beispiel so aussehen:

[Common]
WatchCom=Com1
Warning=15
AutoRebootPeriod=0 (oder ggf. Tagesanzahl)
Allgemeine Angaben:
Ausgabe von 500 Hz auf COMx-TxD
Sekunden, bis rote Warnzeile erscheint
Kein Auto-Boot nach 42 Tagen
[ByMessage]
NetMail-Router=c:\netmail\gateway.exe
NetMail-Mailer=c:\netmail\mailer.exe
CapiCall PRO - Voiceserver=c:\capicall\cc_serv.exe
CapiFax-Server=c:\capifax\cfax_srv.exe
Shamrock CapiDog|=c:\capicall\capidog.exe
Programme mit Ping-Pong-Support:
In jeder Zeile steht links der Fenster-
titel (oder ein eindeutiger Teil davon)
und rechts die Befehlszeile zum Start.
Fenstertitel dürfen auch abgekürzt wer-
den, solange sie sicher eindeutig sind.
Soll der Fenstertitel exakt verglichen werden,
fügt man dem Titel ein | an.
[ByTitle]
Systemmonitor=c:\windows\sysmon.exe
Programme ohne Ping-Pong-Support:
Zeilenaufbau wie bei [ByMessage]
[FileSync]
Writelog=1
AutoTime=60
AutoTimeDel=90
MinimumAge=60
1=Quellpfad1\*.*,Zielpfad1\
2=Quellpfad2\*.*,Zielpfad2\
(weitere Gruppen möglich, also 2_... usw.)
Optionaler Abschnitt für Backup:
Logdatei Filesync.txt erzeugen
Backup-Abstand in Minuten
Löschzyklus, falls Backup nicht möglich
Mindestalter [min] zu sichernder Dateien
Gruppe 1: Quelle und Ziel
Gruppe 2: Quelle und Ziel
und so weiter
[FileMove]
1=Quellpfad1\*.*,Zielpfad1\
2=Quellpfad2\*.*,Zielpfad2\ (usw.)
Optional: Dateien verschieben
Die Dateien werden minütlich verschoben,
also im ursprünglichen Pfad gelöscht
[FileAppend]
1=Quellpfad1\*.*,Zielpfad1\
2=Quellpfad2\*.*,Zielpfad2\ (usw.)
Optional: Dateiinhalt anhängen
Die Daten werden minütlich an gleich-
namige Dateien am Zielort angehängt

Die in AppDog.ini aufgeführten Programme brauchen in Windows nicht mehr als Autostart-Applikationen eingebunden zu werden. Es genügt, wenn nur ein Link zu AppDog.exe in der Autostart-Gruppe existiert. Appdog startet dann automatisch alle erforderlichen Programme, wenn Windows hochfährt.

Wenn Sie mit der rechten Maustaste auf eine Zeile im AppDog-Fenster klicken, erscheint ein Kontextmenü, mit dem Sie testhalber manuell eine laufende Applikation beenden oder eine gerade nicht laufende starten können. Disable (bzw. Enable) erlaubt es, eine Applikation vorübergehend nicht mehr zu überwachen. Mit "Alles beenden" kann man außer den Applikationen auch AppDog selbst beenden. Um nur AppDog zu beenden, klicken Sie mit der rechten Maustaste auf das AppDog-Symbol in der Windows-Taskbar, es erscheint dann ein Kontextmenü.

Durch Starten des Programms AppClose an der Eingabeaufforderung (ohne Kommandozeilen-Parameter) erhalten Sie eine Liste von allen gerade aktiven Programmen mit deren Fenstertiteln. Einige dieser Programme sind Windows-intern und nicht auf dem Bildschirm sichtbar. Sie können ein Programm gezielt beenden, indem Sie hinter AppClose einen Fenstertitel angeben. Falls er Leerräume enthält, sind Anführungszeichen nötig. Beispiel:
C:\>appclose "mein programm"
Der Fenstertitel darf auch abgekürzt werden, d. h. ein beliebiger Teil des Titels kann angegeben werden, um ein Programm zu beenden.

Ping-Pong-Funktion

Das AppDog-Programm kann die Funktion bestimmter Applikationen, die speziell dafür erstellt wurden, dadurch überwachen, dass es ihnen etwa alle 5 Sekunden einen Tastendruck (ASCII-Wert 160) schickt, auf den sie mit einer Windows-Message (API-Funktion Postmessage) an das Fenster "AppDog" antworten müssen.

Die Postmessage-Funktion von Windows besitzt zwei Übergabe-Parameter. Im ersten muss das eigene Fenster-Handle (hwnd) der überwachten Applikation stehen, so dass AppDog die Quelle der Message erkennen kann. Im zweiten Parameter sollte die Applikation 0 angeben, wenn sie gefahrlos beendet und neu gestartet werden darf, andernfalls 1. Beispielsweise sollte ein Mail-Programm, während es gerade eine E-Mail sendet, 1 zurückliefern, andernfalls 0.

Applikationen, die diesen Mechanismus unterstützen, werden im Abschnitt [ByMessage] von AppDog.ini eingetragen. Programme, bei denen das nicht der Fall ist - und das sind die meisten! - müssen dagegen unter [ByTitle] eingetragen werden; AppDog kann dann zwar nicht feststellen, ob sie wirklich das tun, was sie sollen, aber zumindest ihre Funktion ähnlich wie der Windows-Task-Manager an einem Fenster mit dem entsprechenden Titel und dem Verarbeiten von Null-Messages erkennen.

Backup-Funktion

Außer zur Überwachung von Programmen kann AppDog auch dazu benutzt werden, regelmäßig ein Backup der lokalen Festplatte auf einen anderen Netzwerk-Rechner vorzunehmen. Dazu dient der optionale Abschnitt [Filesync] in Appdog.ini. Es können mehrere Dateigruppen mit Quell- und Zielverzeichnissen angegeben werden. Das Backup umfasst rekursiv auch alle darunter liegenden Verzeichnisse und erstellt benötigte Zielverzeichnisse dabei automatisch. Das Quellverzeichnis ist typischerweise eine lokale Festplatte und das Zielverzeichnis entweder ein UNC-Pfad wie \\server\c\netmail\ oder ein Pfad auf einem Netzlaufwerk wie n:\netmail\.

Das Kopieren der Dateien erfolgt, soweit Shamrock-Applikationen wie NetMail, CapiFax oder CapiCall benutzt werden, nur dann, wenn diese gerade keine Verbindung haben, z.B. Mail-Austausch, Fax-Senden/Empfangen oder Sprach-Anruf. Damit wird sichergestellt, dass es keine Datei-Zugriffskonflikte oder Inkonsistenzen gibt. Mit spezieller Rücksichtnahme auf NetMail werden keine Verzeichnisse kopiert, die \Received\ beinhalten oder auf .DIR enden (temporäre Host-Transferverzeichnisse)..

Falls längere Zeit (im obigen Beispiel 60 Minuten) kein Datei-Kopieren möglich ist, weil Applikationen dauerhaft online sind, versucht AppDog nach einer einstellbaren Zeit (im Beispiel 90 Minuten) zumindest, Dateien auf dem Backup-PC zu löschen, die es auf dem Quell-Laufwerk nicht mehr gibt, da das konfliktfrei möglich ist.

Falls gewünscht (Parameter Writelog=1 unter [FileSync] in AppDog.ini), wird eine Protokolldatei Filesync.txt geschrieben. Diese sieht zeilenweise z.B. so aus:
10.05.04 09:01:34  12s 204 835  48 MB -29 +11 (+35)
In diesem Fall dauerte das Backup 12 Sekunden, es wurden 204 Quellverzeichnisse gefunden, insgesamt wurden 835 Dateien auf dem Quell-Laufwerk geprüft, die zusammen 48 MB Größe haben. 29 Dateien wurden auf dem Backup-PC gelöscht, da sie auf dem Quell-Laufwerk nicht mehr existierten, und 11 wurden zum Ziellaufwerk kopiert. 35 Dateien wurden nicht kopiert, weil sie noch zu jung sind (MinimumAge-Parameter).

Deinstallation

AppDog nimmt keine Einträge in der Windows-Registry vor. Zur Deinstallation genügt es deshalb, die Dateien AppDog.exe, AppDog.ini und AppDog.htm zu löschen.

Fragen und Antworten zu AppDog

Welche Applikationen unterstützen die Ping-Pong-Funktion für AppDog?

Die von Shamrock Software ab Ende September 2000 gelieferten Software-Versionen können auf eine Anfrage von AppDog eine Antwort generieren: CapiDog 1.17, CapiFax 1.16 (Faxserver), CapiCall 3.04 (Voice- und SMS-Server), NetMail (Mailer, Gateway, Transfer, RSFile), WinTel 2.08 (Host32).

Worauf ist in Windows zu achten?

Unter Windows XP und später sollten Sie darauf achten, dass unter Systemeigenschaften - Erweitert die "Fehlerberichterstattung" deaktiviert ist, damit eine Anwendung ohne zusätzliches Abfragefenster beendet werden kann.

Ist eine SMS-Alarmierung bei Fehlfunktionen möglich?

Bei Schutzverletzungen startet Appdog nicht nur die jeweilige Applikation automatisch neu, sondern schreibt zusätzlich auch eine entsprechende Zeile in eine Datei Errors.txt. Wenn Sie NetMail von Shamrock benutzen und Appdog im gleichen Verzeichnis starten, erkennt das NetMail-Gateway Änderungen an Errors.txt und kann Sie dann z.B. per SMS-Nachricht automatisch über Fehlfunktionen alarmieren. Falls Sie zusätzlich die Sprachmailbox-Software CapiCall von Shamrock haben, ist auch eine Alarmierung per Sprachanruf möglich.

Wie kann man in Visual Basic die Ping-Pong-Funktion implementieren?

Fügen Sie unter Allgemein/Deklarationen folgende API-Funktionen ein:

Private Declare Function PostMessage _
  Lib "user32" Alias "PostMessageA" _
  (ByVal hwnd As Long, ByVal wMsg As Long, _
  ByVal wParam As Long, ByVal lParam As Any) As Long
Private Declare Function FindWindow Lib "user32" Alias _
 "FindWindowA" (ByVal lpClassName As String, _
  ByVal lpWindowName As String) As Long

Für den KeyPress-Event der Form benutzen Sie dann folgenden Code:

Private Sub Form_KeyPress(KeyAscii As Integer)
 Dim h&, r&, busy&
 If KeyAscii = 160 Then 'Message von AppDog
  busy = 0 'Darf jederzeit neu gestartet werden
  h = FindWindow(vbNullString, "AppDog")
  If h Then r& = PostMessage(h, 1028, Form1.hwnd, busy)
 End If
End Sub

© Shamrock Software GmbH