MobiLink unterstützt IBM DB2 LUW für Linux, Unix und Windows.
Vor dem Ausführen des Setupskripts sollten Sie die folgenden Anforderungen berücksichtigen:
Der gleiche Datenbankbenutzer, der das Setupskript ausführt, wird als Benutzer erwartet, der die MobiLink-Systemtabellen während der Synchronisation aktualisiert. Dieser Benutzer muss verwendet werden, um den MobiLink-Server zu starten und MobiLink-Anwendungen zu konfigurieren. Siehe Erforderliche Berechtigungen.
Der RDBMS-Benutzer, der mithilfe des MobiLink-Servers eine Verbindung mit der konsolidierten Datenbank herstellt, muss in der Lage sein, die MobiLink-Systemtabellen, -Prozeduren usw. ohne Qualifizierer zu verwenden (Beispiel: SELECT * from ml_user). Siehe Systemtabellen des MobiLink-Servers.
Um IBM DB2 für die Verwendung als konsolidierte MobiLink-Datenbank einzurichten, müssen Sie eine Setupprozedur durchführen, die Systemtabellen, gespeicherte Prozeduren, Trigger und Ansichten hinzufügt, die für die MobiLink-Synchronisation erforderlich sind. Es gibt mehrere Möglichkeiten, dies durchzuführen:
Führen Sie das Setupskript syncdb2.sql aus, das sich im Verzeichnis %SQLANY12%\MobiLink\Setup befindet. Bevor Sie die Datei ausführen, müssen Sie sie an einen anderen Speicherort kopieren und ändern. Führen Sie dazu Folgendes aus.
Prüfen und Aktualisieren der MobiLink-Systemeinrichtung von Sybase Central. Siehe MobiLink-Systemkonfiguration.
Um MobiLink-Systemtabellen mit dem Setupskript zu installieren, müssen Sie ein IBM DB2 LUW-Tablespace mit mindestens 8-kB-Seiten verwenden. Falls der Tablespace keine 8-kB-Seiten verwendet, führen Sie folgende Schritte aus.
Überprüfen Sie anhand mindestens eines Ihrer Pufferpools, ob 8-kB-Seiten verwendet werden. Wenn nicht, erstellen Sie einen Pufferpool mit 8-kB-Seiten.
Erstellen Sie einen neuen Tablespace und einen temporären Tablespace, die einen Pufferpool mit Seiten von 8 kB verwenden.
Weitere Hinweise finden Sie in Ihrer IBM DB2 LUW-Dokumentation.
Ergänzen Sie syncdb2.sql mit Ihren Verbindungsdaten:
Kopieren Sie syncdb2.sql an einen neuen Speicherort, wo die Datei geändert und wieder abgespeichert werden kann.
Das Skript syncdb2.sql enthält die Standard-Verbindungsanweisung connect to DB2Database
. Ändern Sie diese Zeile, um eine Verbindung zu Ihrer IBM DB2-Datenbank herzustellen. Verwenden Sie die folgende Syntax:
connect to DB2Database user userid using password ~ |
Dabei gilt: DB2-Datenbank, Benutzer-ID und Kennwort sind von Ihnen bereitgestellte Werte. (Im Skript syncdb2.sql wird die Tilde (~) als Trennzeichen zwischen Befehlen verwendet.)
Führen Sie syncdb2.sql aus:
db2 -c -ec -td~ +s -v -f syncdb2.sql |
Für die konsolidierte IBM DB2-Datenbank muss eine ODBC-Datenquelle (DSN) eingerichtet werden. Verwenden Sie dazu den ODBC-Treiber, der mit der IBM DB2-Datenbank zur Verfügung gestellt wurde. Siehe:
Sperrenerweiterung Um die Datenkonsistenz zwischen der konsolidierten und der entfernten Datenbank aufrechtzuerhalten, verwendet der MobiLink-Server die folgende Abfrage über die gespeicherte Prozedur ml_lock_rid, um die entfernte ID in jeder Synchronisationsphase zu sperren.
SELECT sync_key into p_sync_key FROM ml_database WHERE rid = a_given_remote_id WITH RR USE AND KEEP EXCLUSIVE LOCKS; |
Diese Abfrage sperrt die entfernte ID im Exklusivmodus, um gleichzeitige Synchronisationen mit derselben entfernten ID zu verhindern.
Wenn Sperrenfehler für entfernte MobiLink-IDs auftreten, wenn keine gleichzeitigen Synchronisationen derselben entfernten ID vorliegen, z.B. wenn der MobiLink-Fehlercode -10341 im Log des MobiLink-Servers ausgegeben wird, sollten Sie die DB2-Konfigurationsparameter maxlocks und locklist ändern, um eine Sperrenausweitung zu verhindern. Weitere Hinweise finden Sie in Ihrer DB2-Dokumentation.
Datentypen zuordnen Die Datentypen von Spalten müssen korrekt zwischen der konsolidierten und der entfernten Datenbank abgestimmt und zugeordnet werden. Siehe IBM DB2 LUW-Datentypzuordnung.
CHAR-Spalten In IBM DB2 LUW haben CHAR-Datentypen eine feste Länge und werden bis zur vollen Länge der Zeichenfolge mit Leerzeichen aufgefüllt. In entfernten MobiLink-Datenbanken (SQL Anywhere oder UltraLite) entspricht CHAR dem Datentyp VARCHAR: Werte werden nicht bis zu einer bestimmten Länge mit Leerzeichen aufgefüllt. Verwenden Sie in der konsolidierten Datenbank unbedingt VARCHAR anstelle von CHAR. Wenn Sie CHAR verwenden müssen, können Sie mit der mlsrv12-Befehlszeilenoption -b während der Synchronisation nachgestellte Leerzeichen aus Zeichenfolgen entfernen. Diese Option ist wichtig für Zeichenfolgenvergleiche, mit denen Konflikte erkannt werden.
Siehe mlsrv12-Option -b .
Tablespace-Kapazität Der Tablespace und der temporäre Tablespace einer IBM DB2 LUW-Datenbank, die als konsolidierte Datenbank verwendet werden soll, muss mindestens 8-kB-Seiten verwenden.
Außerdem gibt es Spalten, für die ein Tablespace vom Typ LONG erforderlich sind. Wenn es in der Standardkonfiguration keinen Tablespace vom Typ LONG gibt, müssen die Anweisungen zum Erstellen der Tabelle mit diesen Spalten entsprechend angegeben werden. Dazu ein Beispiel:
CREATE TABLE ... ( ... ) IN tablespace LONG IN long-tablespace |
Ein Beispiel in der Beispielanwendung finden Sie unter MobiLink-Beispiel CustDB.
Variablen für die gesamte Sitzung Frühere Versionen von IBM DB2 LUW (bis Version 8) unterstützen keine Variablen für die ganze Sitzung. Eine praktische Lösung ist der Einsatz einer Basistabelle mit Spalten für den MobiLink-Benutzernamen und andere sitzungsbezogene Daten. Diese Basistabelle enthält Zeilen, die gleichzeitige Synchronisationen darstellen.
Benutzerdefinierte Prozeduren IBM DB2 LUW bis Version 8.2 erfordert, dass Sie SQL-Prozeduren in eine ausführbare Bibliothek (z.B. eine DLL) kompilieren. Die so erstellte DLL/gemeinsam genutzte Bibliothek muss in ein bestimmtes Verzeichnis auf dem Server kopiert werden. Beachten Sie, dass Sie Prozeduren in verschiedenen Sprachen schreiben können, u. a. in C/C++ und Java.
Weitere Hinweise zu Java- und .NET-Synchronisationsskripten finden Sie unter:
Anführungszeichen in Systemprozeduraufrufen verdoppeln
Wenn Sie Ihrer konsolidierten IBM DB2-Datenbank mit einer MobiLink-Systemprozedur Skripten hinzufügen, müssen Sie die
Anführungszeichen verdoppeln. Beispiel: Wenn das Skript, das Sie mit ml_add_table_script hinzufügen, für eine beliebige andere
konsolidierte Datenbank die Zeile SET "DELETED"=''Y''
enthält, müssen Sie diese Zeile für IBM DB2 wie folgt schreiben: SET "DELETED" = ''''Y''''
.
Siehe MobiLink-Isolationsstufen.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |