MultiUser Support

Gespeichert von Gernot Wittrock am

Schutz der Datenbanken vor gleichzeitigen Änderungen mehrerer Anwender und dadurch Verhinderung von Datenverlusten.

Um das Arbeiten in Gruppen von mehreren Anwendern an ein und derselben Datenbank zu ermöglichen, sperrt Mahaf jede geöffnete Datenbank gegen alle anderen Versuche, sie ohne Schreibschutz zu öffnen.
Das hat zur Folge, dass zur selben Zeit nur ein Benutzer die Datenbank bearbeiten kann, alle übrigen können sie nur lesen. Beim Öffnen der Datenbank bekommt ggf. jeder eine Mitteilung, wer diese von welchem PC aus geöffnet hat.

Das Programm legt zu diesem Zweck im Verzeichnis der Datenbank eine Ini-Datei mit dem Namen der Datenbank an.
In dieser Datenbank stehen der Name der Arbeitsstation und der Namen des angemeldeten Benutzers welcher sie gerade bearbeitet.

Tipp
Sollte das Programm einmal abstürzen und die Ini-Datei dadurch nicht gelöscht werden kann die betreffende Datenbank nicht mehr bearbeitet werden. Zur Freigabe der Schreibrechte an der Datenbank kann die Ini-Datei dann manuell gelöscht werden.

Achtung
Diese Datei nur löschen, wenn sicher gestellt ist, dass die zugehörige Datenbank nicht bearbeitet wird. Es kann sonst zu Datenverlusten kommen.

Hintergrundwissen
Sollte eine Datenbank geöffnet sein, steht in ihrem Verzeichnis eine Ini-Datei mit dem Namen der Datenbank. Diese wurde beim Öffnen der Datenbank angelegt, wird alle 9 Minuten neu geschrieben und wird beim Schliessen der Datenbank gelöscht.
Will ein Mahaf-Client nun eine Datenbank öffnen, sucht er ihre Ini-Datei. Wenn keine da ist, öffnet er die Datenbank und gibt dem Benutzer Schreibrechte. Ist eine vorhanden, schreibt das Programm eine leere Datei in das Verzeichnis und vergleicht deren Erstellungsdatum mit dem der Ini-Datei (wenn die Anwendung und die Datenbank auf verschiedenen Rechnern liegen könnten deren Uhren unterschiedliche Zeiten angeben, das wird mit dieser Methode abgefangen).
Sollten diese Zeiten mehr als 10 Minuten auseinander liegen, wird die Ini gelöscht und die Datenbank mit Schreibrechten geöffnet. Andernfalls bekommt der Anwender die beschriebene Nachricht und kann die Datenbank nur lesen.

Vorsicht beim Ändern der Zeit des PCs auf dem die Datenbank liegt. Sollte diese geöffnet sein kann eine Zeitänderung von mehr als fünf Minuten die Datenbank wieder in den beschreibbaren Modus setzen obwohl sie noch geöffnet ist. Dies kann Datenverluste zur Folge haben wenn sie dann doppelt geöffnet wird. Das Problem besteht aber nur maximal für 9 Minuten, dann wird die Ini-Datei immer neu geschrieben.