Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » MobiLink - Serveradministration » MobiLink-Server-APIs » Direkte Zeilenbehandlung » Einführung in die direkte Zeilenbehandlung

 

Tipps für die Entwicklung mit direkter Zeilenbehandlung

Eindeutige Primärschlüssel

Für die MobiLink-Synchronisation mit direkter Zeilenbehandlung muss die Datenquelle eindeutige Primärschlüssel besitzen, die nicht aktualisiert werden. In einer nicht-relationalen Datenquelle, z.B. einer Tabellenkalkulation oder Textdatei, bedeutet das, dass eine Spalte eindeutige, sich nicht ändernde Werte enthalten muss, die die Zeile identifizieren.

Weitere Hinweise finden Sie unter Eindeutige Primärschlüssel aufrechterhalten.

Spaltennamen

Wenn die direkte Zeilenbehandlung verwendet wird, sind die Spaltennamen von Tabellen nur verfügbar, wenn der MobiLink-Client so konfiguriert ist, dass er Spaltennamen sendet. Alternativ dazu können Sie mithilfe von Spaltenindizes auf Zeilendaten zugreifen.

Weitere Hinweise zur Verwendung von Spaltennamen finden Sie unter:

Letzte Downloadzeit für Downloads verwenden

Sofern möglich, sollten Sie Ihre Anwendung mit direkter Zeilenbehandlung wie eine zeitstempelbasierte SQL-Anwendung einrichten und die Spalte last_modified und darauf basierende Download-Daten verwalten. Bei dieser Methode werden unvorhergesehene Probleme vermieden, die bei anderen Download-Methoden auftreten können.

Weitere Hinweise finden Sie unter Zeitstempelbasierte Downloads.

Transaktionsverwaltung für Uploads

Es ist nicht möglich, Transaktionen in konsolidierten MobiLink-Datenbanken festzuschreiben. Sie können jedoch Transaktionen in der Datenquelle festschreiben, die die direkte Zeilenbehandlung verwendet. Beachten Sie bei der Einstellung der Transaktionsverwaltung folgende Tipps:

  • Upload vor MobiLink-Festschreibungen festschreiben    Bei der Anwendung eines Uploads schreibt MobiLink die Änderungen am Ende des end_upload-Ereignisses fest. Sie müssen sicherstellen, dass alle Upload-Änderungen, die beibehalten werden sollen, vor dem Ende des end_upload-Skripts festgeschrieben werden. Andernfalls kann bei einem Fehler oder Ausfall ein Zustand erreicht werden, in dem die Anwendung davon ausgeht, dass der Upload angewendet wurde, aber MobiLink die Daten nicht übernommen hat. Dies könnte zu einem Datenverlust führen.

  • Redundante Uploads verarbeiten   Falls ein Fehler oder Ausfall auftritt, nachdem die Anwendung und bevor der MobiLink-Server eine hochgeladene Zeile festschreibt, kommt es möglicherweise zu einem inkonsistenten Zustand des MobiLink-Servers und der Datenquelle. Sie können dieses Problem beheben, indem Sie redundante Uploads zulassen und eine Logik einsetzen, die sicherstellt, dass der redundante Upload richtig angewendet wird. Vor allem muss sichergestellt werden, dass der Upload nicht erneut angewendet wird, wenn die Anwendung ihn ein zweites Mal sendet.

Fehler behandeln

Für die Behandlung von Fehlern muss die Verwendung einer geeigneten Transaktionsverwaltung sichergestellt werden, wie oben beschrieben. Außerdem muss der Java- oder .NET-Code, der Zeilen verarbeitet, alle auftretenden Ausnahmebedingungen an den MobiLink-Server senden. Falls ein Fehler auftritt, bevor der MobiLink-Server oder Ihre Anwendung Änderungen festgeschrieben hat, wird die Transaktion von MobiLink zurückgesetzt und somit ein konsistenter Zustand der Anwendung bewahrt.

Klasseninstanz

MobiLink erstellt für die direkte Zeilenbehandlung für jede Datenbankverbindung eine Klasseninstanz. Die Klasseninstanz wird am Ende einer Synchronisation nicht zerstört: Sie wird erst zerstört, wenn die Datenbankverbindung geschlossen wird. Variablen auf Klassenebene behalten solange ihre Werte aus früheren Synchronisationen bei.