Adaptive Server Anywhere-Clients
MobiLink-Clients unter Adaptive Server Anywhere 7.0 wurden mit SQL-Anweisungen konfiguriert, die nun nicht mehr weiterentwickelt werden. Insbesondere wurden anstelle von Publikationen und Subskriptionen "Synchronisationsdefinitionen" verwendet. Die älteren Anweisungen werden nicht mehr unterstützt. Sie haben einige Nachteile:
Eine Subskriptionsdefinition entspricht einer einzelnen Publikation mit einer einzelnen Subskription. Subskriptionen bei mehreren Publikationen werden nicht unterstützt. Ein einzelner MobiLink-Benutzer kann dagegen jetzt mehrere Publikationen subskribieren. Damit erhalten Sie die Möglichkeit, die Synchronisation auf Teile Ihres Datenbestands zu begrenzen.
Einige Benutzer fanden die alte Terminologie verwirrend. Eine MobiLink-Benutzer-ID wurde zum Beispiel früher im Zusammenhang mit einem Adaptive Server Anywhere-Client "Standort" genannt. Ein MobiLink-Benutzer wird nun als MobiLink-Benutzer oder Synchronisationsbenutzer bezeichnet.
Die neuen Anweisungen entsprechen denen, die in SQL Remote, der nachrichtenbasierten Replikationstechnologie von Sybase, ebenfalls verwendet werden.
Sie können alle oder einen beliebigen Teil der Daten in einer entfernten Adaptive Server Anywhere-Datenbank synchronisieren. Sie können komplette Tabellen oder nur bestimmte Spalten und Zeilen synchronisieren.
Die Synchronisationsdefinition in der Adaptive Server Anywhere-Client-Datenbank beschreibt die Daten, die repliziert werden sollen, und den Standort des geeigneten MobiLink-Synchronisationsservers.
In der synchronisierten Datenbank gespeicherte Synchronisationsskripten steuern, wie die übertragenen Zeilen verarbeitet und welche Zeilen an den entfernten Standort übertragen werden sollen. Diese Skripten sind nicht vom Typ der entfernten Datenbank abhängig.
Eine Synchronisationsdefinition kann Daten von mehreren Datenbanktabellen beinhalten. Der Beitrag einer Tabelle zu einer Synchronisationsdefinition wird als Artikel bezeichnet. Jeder Artikel kann aus einer kompletten Tabelle oder einer Teilmenge der Zeilen und Spalten einer Tabelle bestehen.
Sobald eine entfernte Datenbank eingerichtet ist, müssen die beiden Datenbanken regelmäßig auf einen Stand gebracht werden, sodass sie dieselben Datenbestände enthalten. Die Synchronisation wird mit dem Befehlszeilen-Dienstprogramm "dbmlsync" durchgeführt.
Eine Tabelle, die zu einer Synchronisationsdefinition hinzugefügt wurde, darf nicht geändert werden. Durch das Ändern der Tabelle würde der Synchronisationsprozess gestört werden. Sollte eine solche Änderung notwendig sein, so darf dieser Schritt erst unmittelbar nach der Synchronisation ausgeführt werden.
Die einzige Möglichkeit sicherzustellen, dass die ALTER STATEMENT-Anweisung unmittelbar nach der Synchronisation ausgeführt wird, besteht darin, diese Anweisung in ein Skript aufzunehmen und dieses Skript dann mit der Option -i des Befehlszeilen-Dienstprogramms dbmlsync auszuführen.
Wenn Sie UltraLite-Anwendungen zur Verwendung als MobiLink-Clients entwickelt haben, sind die folgenden Hinweise sicherlich hilfreich. Viele Elemente einer Synchronisationsdefinition haben eine Entsprechung in UltraLite.
| Adaptive Server Anywhere 9.0-Client | Adaptive Server Anywhere 7.0-Client | UltraLite-Clients | MobiLink-Synchronisationsserver |
|---|---|---|---|
| MobiLink-Synchronisationsbenutzer | Standort | Benutzername | MobiLink-Benutzer |
| Typ | Typ | Datenstrom | Verbindungstyp |
| Adresse | Adresse | Verbindungsparameter | Serveradresse |
| Skriptversion | Skriptversion | Version | Skriptversion |
| Publikation | Teil einer Definition in einer entfernten Datenbank oder Teil einer Vorlage in einer Referenzdatenbank | keine —alle Tabellen werden synchronisiert | Publikation |
| Subskription | Teil einer Definition in einer entfernten Datenbank oder Teil eines Standorts in einer Referenzdatenbank | keine | keine |
Eine Synchronisationsdefinition ist ein Datenbankobjekt der Version 7.0, das die Daten in einer entfernten Adaptive Server Anywhere-Datenbank beschreibt, die mit einem bestimmten MobiLink-Synchronisationsserver synchronisiert werden soll. Wenn Sie Adaptive Server Anywhere 9.0 oder später verwenden, müssen stattdessen Publikationen und Synchronisationssubskriptionen benutzt werden.
Weitere Hinweise finden Sie unter Entfernte Datenbank erstellen.
Eine Synchronisationsdefinition sollte nur in einer entfernten Datenbank von Adaptive Server Anywhere 7.0 vorkommen. Konsolidierte MobiLink-Server werden mithilfe von Skripten konfiguriert.
Eine Synchronisationsdefinition legt die folgenden Angaben fest:
Name Der Name der Synchronisationsdefinition, der nur innerhalb der entfernten Datenbank bekannt ist
Standort Ein Name, der diesen bestimmten MobiLink-Client eindeutig identifiziert
Typ Der Typ des Datenstroms, der verwendet wird, um mit dem MobiLink-Synchronisationsserver zu kommunizieren
Adresse Die Parameter, die zum Verbinden mit dem MobiLink-Synchronisationsserver benötigt werden
Skriptversion Die Version der Synchronisationsskripten, die der MobiLink-Synchronisationsserver beim Synchronisieren dieses Clients verwenden soll
Artikel Eine Beschreibung der Daten, die synchronisiert werden sollen. Sie können komplette Tabellen oder nur einzelne Zeilen und Spalten synchronisieren.
Die folgende Anweisung erstellt eine Synchronisationsdefinition namens "testpub", die festlegt, welche Daten mit dem Standort "demo_sync_site" synchronisiert werden sollen.
CREATE SYNCHRONIZATION DEFINITION testpub SITE 'demo_sync_site' TYPE 'tcpip' ADDRESS 'host=localhost;port=2439;' OPTION sv='version1' (table People( person_id, fname, lname ),table Pets);
In dieser Anweisung gilt Folgendes:
Der Name dieser Synchronisationsdefinition ist "testpub". Dieser Name ist nur innerhalb der entfernten Datenbank bekannt.
Der Name "demo_sync_site" identifiziert diesen Client eindeutig für den MobiLink-Synchronisationsserver. Dieser Name muss in der MobiLink-Systemtabelle ml_user in der konsolidierten Datenbank erscheinen.
Die Synchronisation soll über eine TCP/IP-Verbindung stattfinden. Die Verbindungsparameter erscheinen in einer Zeichenfolge in der ADDRESS-Klausel.
Die TCP/IP-Verbindungsparameter zeigen an, dass der MobiLink-Synchronisationsserver auf Port 2439 des aktuellen Systems bereit ist. Nur die aufgelisteten Spalten der Tabelle "Personen" werden synchronisiert. Die Klausel OPTION ist einbezogen, damit der MobiLink-Synchronisationsserver version1 der Synchronisationsskripten verwendet, wenn er Daten von diesem Client verarbeitet. Der Standardwert dieses Parameters ist default. Beachten Sie, dass die Liste der Spalten ebenfalls in Klammern eingeschlossen ist.
Wenn dieser Client synchronisiert wird, soll der MobiLink-Synchronisationsserver die Gruppe der Synchronisationsskripten verwenden, die mit dem Namen "version1" bezeichnet werden. Dieser Skriptversionsname muss in der MobiLink-Systemtabelle "ml_script_version" in der konsolidierten Datenbank erscheinen.
Alle Spalten und Zeilen der Tabelle Pets und die aufgelisteten Spalten der Tabelle People sollen synchronisiert werden.
Die vollständige Syntax der Anweisungen für die MobiLink-Synchronisation finden Sie unter MobiLink-SQL-Anweisungen.
Um eine entfernte Datenbank mit mehreren MobiLink-Synchronisationsservern zu synchronisieren, erstellen Sie mehrere Synchronisationsdefinitionen innerhalb der entfernten Datenbank. Jede Synchronisationsdefinition muss einen eindeutigen Standortnamen haben, da aus der Sicht des MobiLink-Synchronisationsservers jede einzelne Synchronisationsdefinition ein eigener logischer Client ist.
Die Synchronisation derselben Daten in einer entfernten Datenbank mit mehreren MobiLink-Synchronisationsservern wird derzeit nicht unterstützt.
Wenn Sie eine Adaptive Server Anywhere 7-Datenbank als MobiLink-Client verwenden wollen, benutzen Sie eine Synchronisationsdefinition zur Beschreibung der zu übertragenden Daten. In Version 8.0 und später sollten sie allerdings als Publikationen und Synchronisationssubskriptionen neu geschrieben werden.
Angenommen, Sie wollen die Tabellen Customer und Sales_Order der Beispieldatenbank synchronisieren. Sie könnten die folgende Synchronisationsdefinition erstellt haben.
CREATE SYNCHRONIZATION DEFINITION testpub SITE 'demo_ml_user' TYPE 'tcpip' ADDRESS 'host=localhost;port=2439;' OPTION sv='version1' (TABLE Customer, TABLE Sales_Order);
Statt dessen sollten Sie jetzt folgendermaßen vorgehen.
Zunächst publizieren Sie die Tabellen Customer und Sales_Order.
CREATE PUBLICATION testpub (TABLE Customer, TABLE Sales_Order);
Als Nächstes erstellen Sie für den MobiLink-Benutzer eine Subskription zu dieser Publikation. In diesem Fall ist der MobiLink-Benutzer demo_ml_user. Es ist nicht erforderlich, dass ein Datenbankbenutzer mit demselben Namen vorhanden ist. MobiLink-Benutzer und Datenbankbenutzer sind voneinander unabhängig.
CREATE SYNCHRONIZATION SUBSCRIPTION TO testpub FOR demo_ml_user TYPE 'tcpip' ADDRESS 'host=localhost;port=2439;' OPTION sv='version1'
Die Angaben sind dieselben, nur sind sie in zwei kleinere Anweisungen aufgeteilt.
Die SITE-Klausel in der Synchronisationsdefinition gibt an, dass dieser MobiLink-Client die MobiLink-Benutzer-ID "demo_sync_site" synchronisiert. Die Synchronisation soll über eine TCP/IP-Verbindung stattfinden. Der Synchronisationsserver soll die Version "version1" der Synchronisationsskripten bei der Kommunikation mit diesem Client verwenden.
Im zweiten Fall werden die synchronisierten Tabellen publiziert. Anschließend wird für den MobiLink-Benutzer demo_sync_site eine Subskription erstellt. Die Klauseln TYPE, ADDRESS und OPTION haben dieselbe Syntax.
SQL Anywhere Studio 9.0.1
Copyright © 1989–2004 Sybase Inc. Teil-Copyright © 2001–2004 iAnywhere Solutions Inc. Alle Rechte vorbehalten.