Backup-Tool-Komponente

Die Anforderung

Nun soll jeweils automatisch des Nachts die neueste Version (d.h. das zuletzt erstellte Backup-File) auf einen separaten Share kopiert werden.

JP_emptyDazu bietet sich der 4D-Befehl COPY DOCUMENT an.

  • Der Befehl muß den Pfad zum Original-Dokument kennen und den Pfad zum Ziel-Ordner.
  • Die Aktion sollte nur selten ausgeführt werden. Eine effiziente Planung ist den Kopiervorgang direkt nach dem Backup zu starten. Dazu gibt es die Datenbank-Methode On Backup Shutdown, die den Kopiervorgang starten kann. Liegt der Ziel-Ordner auf einem Speichermedium im Netz, sollte die Planung zusätzlich eine Uhrzeit vorsehen. Ggf. muß solange versucht werden, bis das Volume und damit der Ziel-Ordner erreichbar.
  • Ein bereits kopiertes Backup-Dokument muß nicht nochmal kopiert werden.
  • Treten Fehler auf, sind diese zu protokollieren, damit man sie abstellen kann.

Die notwendigen Einstellungen und Rückmeldungen sind im dargestellten Dialog zusammengefaßt. Buttons, wie der den Ziel-Ordner auszuwählen und die Einstellung der Uhrzeit, sind nur dann sichtbar, wenn sie benötigt werden.

Die Komponente

JP_PreviewDie Fähigkeiten sind in eine Komponente verpackt: DBZ_Tools. Das ist eine V14-Komponente, kompiliert für 32-Bit und 64-Bit. Sie läuft erprobterweise ebenso in V15. Ihre Funktionalität in V13 oder gar V12 ist nicht geprüft.

Soll die Komponente nach dem Backup laufen, ist in der Datenbank-Methode On Backup Shutdown dieser Code einzufügen.

$1 ist als Longint zu definieren. Es wird geprüft, ob die Komponente vorhanden ist und wenn ja, wird die Komponente aufgerufen und ihr die Aufruf-Quelle über Current method name übergeben. Das startet einen Kopier-Prozess mit Namen „DBZ_Copy_Backup“.

JP_OnBackupShutdown

Soll die Komponente auch nach einer eingestellten Uhrzeit den Kopiervorgang starten, bitte in der Datenbank-Methode On Startup diesen Code einfügen. Das startet einen Überwachungsprozess mit Namen „DBZ_Copy_Service“.

Der Code in On Startup agiert wie der in On Backup Shutdown. Im Screenshot ergänzt um die Funktionalität von 4D Pop.

JP_OnStartUp
JP_preferences Beide On Database Event-Methoden funktionieren nicht wie dargestellt in einer französischen 4D. Dort bitte jeweils statt Current methode name den englischen On Database Event-Namen verwenden.

Der Überwachungsprozess verwendet die Einstellungen.

Ist nach Backup nicht markiert, ruft On Backup Shutdown die Komponente auf, findet es-soll-nicht-sein und führt nicht aus.

Er startet nach der vorgegebenen Uhrzeit den Kopierprozess und legt sich dann bis zum nächsten Tag zur Ruhe. Ist das Netzwerk-Volume nicht geladen, wird alle 5 Minuten nachgesehen, bis es verfügbar ist, dann kopiert und dann wird geruht bis zum nächsten Tage.

JP_MethodeAusfC3BChrenEinstellungen

Die Einstellungen können jederzeit über

  • das Menü Start/Methode… ausgeführt werden
  • per Aufruf von DBZ_BackupMngr aus einer eigenen Methode oder
  • aus einem Menü-Eintrag

aufgerufen werden. DBZ_BackupMngr erwartet keinen Parameter und startet sich als eigenen Prozeß.

Kleine Hilfen in den Einstellungen

  • Klick auf die Pfade für Backup und Ziel, zeigt sie auf der Platte
  • ist der Ziel-Ordner angegeben, kann aus den Einstellungen kopiert werden
  • gibt es Fehler im Protokoll, kopiert ein Button das Dokument auf den Schreibtisch
  • die Einstellungen liegen als JSON im Ressourcen-Ordner der Komponente

Komponente laden

Download der Komponente über diesen Link. Der Text der Methoden für On Startup und On Backup Shutdown ist Teil des ZIP-Paketes. Rückmeldung bitte per eMail. Danke!

Client/Server

Dazu braucht es einen Update der Komponente – der leider nicht fertig war. Inzwischen, 1. April 2016, funktioniert auch die Server-Variante. Gibt es mit dem Sourcecode.

Lizenz

Die Nutzung der Komponente kostet nichts. Den Sourcecode gibt es auf Nachfrage gegen einen Obolus.