Die Anforderung
Nun soll jeweils automatisch des Nachts die neueste Version (d.h. das zuletzt erstellte Backup-File) auf einen separaten Share kopiert werden.
Dazu 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
Die 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“.
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.
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.
Einstellungen
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.