Apache Derby als Fileserver

Als Fileserver wird Apache Derby eingesetzt. Apache Derby ist ein Projekt der Apache Software Founda­tion, das ein Java-basiertes, relationales Datenbank-Management-System entwickelt. Es kann als Live-Ca­che fungieren, d.h. komplett im Hauptspeicher betrieben werden. Derby ist sehr einfach installierbar und bei der Auslieferung nur 2 MB groß. Die Inhalte von Derby-Datenbanken sind betriebssystemüber­greifend kompatibel.

Man kann also beispielsweise auf Betriebssystem A eine Datenbank erstellen, die Dateien auf ein Betriebssystem B kopieren und dort weiterarbeiten. Bei den meisten herkömmlichen Datenbanken müsste dagegen erst ein Dump der Datenbank auf A erstellt werden, der mit einem Import- oder Recovery-Werkzeug auf B eingespielt werden müsste. Bei der Entwicklung von Java-Anwendungen wird Derby über JDBC angesprochen. Derby bietet einen eingebetteten JDBC-Modus und einen Netz­werk-JDBC-Modus an. Bei letzterem können andere Java-Anwendungen über TCP/IP auf eine Derby-Datenbank zugreifen.

Fileserver-Datenbank

In der Fileserver-Datenbank wird eine Kopie der BLOB-Tabelle aufgebaut. Sie enthält die Metadaten der Dokumentdatei. Diese Metadaten werden vom zentralen CRM-Applikationsserver erzeugt und zum Fileserver transferiert. Dadurch sind eindeutige BLOB-Namen und IDs im Gesamtsystem sichergestellt.

Unterschiedliche Dateiversionen auf dem Fileserver und dem Applikationsserver werden anhand des BLOB-Änderungsdatums (PSC_UPD) identifiziert. Das Änderungsdatum wird nach Abschluss eines Datei­transfers vom Fileserver zum Applikationsserver in der BLOB-Tabelle des Applikationsservers gesetzt, an den Fileserver übermittelt und in die Fileserver-Datenbank eingetragen.

Zur Fehlerbehandlung überwacht eine Transfer-Tabelle in der Fileserver-Datenbank die Übertragungen. Wenn ein Dokument transferiert werden muss, wird dessen GID (Global Identifier) in die Tabelle eingetragen. Wurde der Transfer erfolgreich abgeschlossen (PSC_UPD an die Fileserver-Datenbank über­mittelt), wird der Datensatz wieder gelöscht.