Zur Zeit beschäftige ich mit soalib. Einer Library mit der sich unter Anderem Datenbanktabellen (Java, C++,C#) synchronisieren lassen. Leider ist weder die Dokumentation ausführlich, noch erhält man aussagekräftige Fehlermeldungen.
Was auch zur Undurchsichtigkeit bei trägt sind die zwei Verzeichnisse, die von soalib verwendet werden. Der Server befindet sich unter server/runtime, dort befindet sich ein Log für Mappings und Synchronisierungen. Ein Verzeichnis mit den Konfigurationsdaten befindet sich im Verzeichnis soalib des Benutzers. Dort findet man die Verbindungsinformationen, Tablemapping Informationen und die Stati der Synchronisationen.
Der Weg zu einer funktionierenden Tabellensynchronisation besteht dann aus drei Schritten. Dem Erzeugen eines Verbindungsschlüssels für jede Datenbank. Dem Erzeugen der Tabellenabbildungen und der Synchronisation.
Das Erzeugen der Schlüssels ist relativ einfach. Beim Erzeugen der Mappings sollte man die Mappingprüffunktion verwenden und prüfen ob die Mappings OK sind, denn es wird auch eine Datei für inkonsistente Mappings erzeugt. Dies ist allerdings nicht ausreichend für eine funktionierende Synchronisation. Beginnt man mit dem Synchronisieren sollte man Schritt für Schritt die Tabellen durchgehen. Ich habe darauf geachtet, das für die Tabelle ein Verzeichnis mit dem Synchronisationsstatus unter dem soalib Ordner im Benutzerverzeichnis angelegt wurde, denn die Synchronisation bricht im Fehlerfall meist ab, ohne einen konkreten Fehler anzuzeigen.
Worauf man bei den Tabellen achten sollte:
- Die Tabellennamen dürfen keinen Bindestrich enthalten
- Tabellen auf die in Foreign Keys verwiesen wird, müssen im Mappingfile sein
- Ein Mapping mit tinyint(1) funktionierte nicht, nur tinyint(3)
Datenbank Synchronisation
15. November 2008 | Keine Kommentare