In UltraLite beginnt die Synchronisation, indem eine bestimmte Verbindung mit dem MobiLink-Server über den konfigurierten Kommunikationsdatenstrom (auch als Netzwerkprotokoll bezeichnet) aufgenommen wird. Außer der Synchronisationsunterstützung für direkte Netzwerkverbindungen unterstützen Palm OS-Geräte auch die HotSync-Synchronisation und Windows Mobile-Geräte auch die ActiveSync-Synchronisation.
Jede entfernte UltraLite-Datenbank synchronisiert mit einem MobiLink-Server über ein Netzwerkprotokoll. Das Netzwerkprotokoll wird mit dem Parameter für den Synchronisationsdatenstrom eingestellt. Als Netzwerkprotokolle werden TCP/IP, HTTP, HTTPS und TLS unterstützt. Für das gewählte Protokoll müssen Sie auch Datenstromparameter übergeben, die andere erforderliche Verbindungsinformationen wie z.B. Host und Port des MobiLink-Servers definieren.
Sie müssen auch die MobiLink-Benutzerdaten und die Synchronisationsskriptversion mit den user_name- und version-Parametern übergeben.
Sie können das Synchronisationsverhalten steuern, indem Sie diverse Synchronisationsparameter einstellen. Wie die Parameter gesetzt werden, hängt von der jeweils verwendeten UltraLite-Schnittstelle ab.
Beachten Sie folgende wichtige Elemente des Synchronisationsverhaltens:
Synchronisationsrichtung Standardmäßig wird eine Zwei-Wege-Synchronisation ausgeführt. Wenn Sie nur eine Einweg-Synchronisation benötigen, müssen Sie die entsprechenden Parameter upload_only oder download_only verwenden. Mithilfe von Einweg-Synchronisationen können Sie die Zeit für Synchronisationen reduzieren. Außerdem müssen Sie bei reinen Download-Synchronisationen vor der Synchronisation nicht alle Änderungen der UltraLite-Datenbank festschreiben. Nicht festgeschriebene Änderungen von Tabellen, die nicht synchronisiert werden, verursachen durch die unvollständigen Transaktionen keine Probleme, da für sie kein Upload erfolgt.
Bei der reinen Download-Synchronisation müssen Sie sicher stellen, dass die Zeilen, die mit dem Download überlappen, nicht lokal geändert werden. Wenn Daten lokal geändert werden, schlägt die Synchronisation in der UltraLite-Anwendung fehl, und es kommt zu einem SQLE_DOWNLOAD_CONFLICT-Fehler.
Parallele Änderungen während der Synchronisation Während der Upload-Phase haben UltraLite-Anwendungen nur Lesezugriff auf UltraLite-Datenbanken. Während der Download-Phase ist der Lese- und Schreibzugriff erlaubt. Wenn eine Anwendung eine Zeile ändert, die anschließend auch vom Download geändert werden soll, schlägt der Download jedoch fehl und wird zurückgesetzt. Diesen parallelen Datenzugriff während der Synchronisation können Sie deaktivieren, indem Sie den Synchronisationsparameter disable_concurrency verwenden.
Übergeben Sie die für die Sitzung erforderlichen Synchronisationsparameter und Protokolloptionen als Felder einer Synchronisationsinformationsstruktur.
Beispiel: Mit der C/C++-API können Sie einer UltraLite-Anwendung Synchronisationsfunktionen hinzufügen, indem Sie die geeigneten Werte in der ul_synch_info-Struktur einstellen:
ul_synch_info info; // define a sync structure named "info" ULEnableTcpipSynchronization( &sqlca ); // use a TCP/IP stream conn->InitSynchInfo( &info ); // initialize the structure info.stream = ULSocketStream(); // specify the Socket Stream info.stream_parms= UL_TEXT( "host=myMLserver;port=2439" ); // set the MobiLink host information info.version = UL_TEXT( "custdb 11.0" ); // set the MobiLink version information info.user_name = UL_TEXT( "50" ); // set the MobiLink user name info.download_only =ul_true; // make the synchronization download-only |
Initialisieren Sie die Synchronisation.
Für eine direkte Synchronisation über TCP/IP rufen Sie eine API-spezifische Synchronisationsfunktion auf. Diese Funktionen geben einen booleschen Wert zurück, der Erfolg oder Fehlschlag des Synchronisationsvorgangs bekanntgibt. Wenn die Synchronisation fehlschlägt, können Sie detaillierte Fehlerstatusfelder in einer anderen Struktur prüfen, um zusätzliche Informationen zur Fehlerbedingung zu erhalten.
Bei der HotSync-Synchronisation müssen Sie die ULSetSynchInfo-Funktion verwenden und die ul_synch_info-Struktur als Argument übergeben. Damit wird die ul_synch_info-Struktur der aktuellen Datenbank für eine nachfolgende Synchronisation übergeben.
Bei der ActiveSync-Synchronisation müssen Sie die Synchronisationsnachricht vom ActiveSync-Provider abfangen und die DoSync-Funktion benutzen, um ULSynchronize aufzurufen.
Benutzen Sie eine Beobachter-Callbackfunktion, wenn Sie den Fortschritt der Synchronisation an den Benutzer melden wollen.
Wenn Sie eine Umgebung verwenden, in der DLLs fehlschlagen, weil die DLL sehr groß oder die Netzwerkverbindung nicht zuverlässig ist, können Sie wiederaufnehmbare Downloads einrichten. Weitere Hinweise finden Sie unter Fehlgeschlagene Downloads handhaben und Fehlgeschlagene Downloads wieder aufnehmen.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |