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-Servertechnologie verwenden » Synchronisationsmethoden

 

MobiLink-Isolationsstufen

MobiLink verbindet sich auf der bestmöglichen Isolationsstufe mit einer konsolidierten Datenbank, wenn die Isolationsstufen im RDBMS aktiviert sind. Die Standardisolationsstufen werden gewählt, um bei Gewährleistung der Datenkonsistenz beste Leistungfähigkeit zu erzielen.

Im Allgemeinen verwendet MobiLink die Isolationsstufe SQL_TXN_READ_COMMITTED für Uploads und, wenn möglich, die Snapshot-Isolation für Downloads (falls dies nicht möglich ist, wird SQL_TXN_READ_COMMITTED verwendet). Die Snapshot-Isolation verhindert, dass Downloads blockiert werden, bis Transaktionen in der konsolidierten Datenbank abgeschlossen sind.

Bei der Snapshot-Isolation können Daten doppelt eingelesen werden (wenn z.B. bei längeren Transaktionen derselbe Snapshot längere Zeit verwendet wird). MobiLink-Clients sind jedoch in der Lage, dies automatisch zu verarbeiten, sodass der einzige Nachteil in der Übertragungsdauer und dem Verarbeitungsaufwand in der entfernten Datenbank liegt.

Die Isolationsstufe 0 (READ COMMITTED) eignet sich für gewöhnlich nicht zur Synchronisation und kann Dateninkonsistenzen verursachen.

Die Isolationsstufe wird sofort eingestellt, nachdem eine Verbindung zur Datenbank hergestellt wurde. Es werden noch ein paar weitere Verbindungseinstellungen durchgeführt und dann wird die Transaktion festgeschrieben. Der COMMIT-Befehl wird von dem meisten RDBMS verlangt, damit die Isolationsstufe (und möglicherweise andere Einstellungen) wirksam werden können.

SQL Anywhere Version 10

SQL Anywhere Version 10 unterstützt die Snapshot-Isolation. Standardmäßig verwendet MobiLink die Isolationsstufe SQL_TXN_READ_COMMITTED für Uploads und die Snapshot-Isolation für Downloads.

MobiLink kann die Snapshot-Isolation nur verwenden, wenn Sie sie in Ihrer konsolidierten SQL Anywhere-Datenbank aktivieren. Wenn die Snapshot-Isolation nicht aktiviert ist, verwendet MobiLink die Standardisolation SQL_TXN_READ_COMMITTED.

Wenn es einer Datenbank ermöglicht wird, die Snapshot-Isolation zu verwenden, kann sich dies auf die Performance auswirken, da Kopien aller geänderten Zeilen aufbewahrt werden müssen, unabhängig von der Anzahl der Transaktionen, welche die Snapshot-Isolation verwenden. Weitere Hinweise finden Sie unter Snapshot-Isolation aktivieren.

Sie aktivieren die Snapshot-Isolation für Uploads mit der mlsrv11-Option -esu und deaktiveren Sie mit der mlsrv11-Option -dsd. Wenn Sie die MobiLink-Standardisolationsstufe in einem Verbindungsskript ändern müssen, sollten Sie dies in den Skripten begin_upload oder begin_download vornehmen. Wenn Sie die Standard-Isolationsstufe im Skript begin_connection ändern, werden Ihre Einstellungen unter Umständen zu Beginn der Upload- und Downloadtransaktionen überschrieben.

Weitere Hinweise finden Sie unter Option -esu und Option -dsd.

SQL Anywhere vor Version 10

Wenn Sie eine frühere Version als SQL Anywhere Version 10 verwenden, ist die MobiLink-Standardisolationsstufe SQL_TXN_READ_COMMITTED. Sie können den Standardwert für die gesamte MobiLink-Sitzung im Skript begin_connection ändern. Für den Upload und Download ändern Sie ihn in den Skripten begin_upload bzw. begin_download.

Adaptive Server Enterprise

Bei Adaptive Server Enterprise ist die MobiLink-Standardisolationsstufe SQL_TXN_READ_COMMITTED. Sie können den Standardwert für die gesamte MobiLink-Sitzung im Skript begin_connection ändern. Für den Upload und Download ändern Sie ihn in den Skripten begin_upload bzw. begin_download.

Oracle

Oracle unterstützt die Snapshot-Isolation, nennt sie jedoch READ COMMITTED. Standardmäßig verwendet MobiLink die Snapshot/READ COMMITTED-Isolationsstufe für Uploads und Downloads.

Sie können den Standardwert für die gesamte MobiLink-Sitzung im Skript begin_connection ändern. Für den Upload und Download ändern Sie ihn in den Skripten begin_upload bzw. begin_download.

Damit der MobiLink-Server die Snapshot-Isolation optimal nutzen kann, muss der vom MobiLink-Server verwendete Oracle-Account für die Oracle-Systemansicht V_$TRANSACTION berechtigt sein. Ist dies nicht der Fall, wird eine Warnung ausgegeben und die Zeilen werden unter Umständen beim Download ausgelassen. Diese Berechtigung kann nur SYS erteilen. Die Oracle-Syntax zur Erteilung dieser Berechtigung lautet:

grant select on SYS.V_$TRANSACTION to Benutzername
Microsoft SQL Server 2005 und höher

Microsoft SQL Server 2005 unterstützt die Snapshot-Isolation. Standardmäßig verwendet MobiLink die Isolationsstufe SQL_TXN_READ_COMMITTED für Uploads und die Snapshot-Isolation für Downloads.

MobiLink kann die Snapshot-Isolation nur verwenden, wenn Sie sie in Ihrer konsolidierten SQL Server-Datenbank aktivieren. Wenn die Snapshot-Isolation nicht aktiviert ist, verwendet MobiLink die Standardisolation SQL_TXN_READ_COMMITTED. Ausführliche Informationen finden Sie in Ihrer SQL Server-Dokumentation.

Sie aktivieren die Snapshot-Isolation für Uploads mit der mlsrv11-Option -esu und deaktiveren Sie mit der mlsrv11-Option -dsd. Wenn Sie die MobiLink-Standardisolationsstufe in einem Verbindungsskript ändern müssen, sollten Sie dies in den Skripten begin_upload oder begin_download vornehmen. Wenn Sie die Standard-Isolationsstufe im Skript begin_connection ändern, werden Ihre Einstellungen unter Umständen zu Beginn der Upload- und Downloadtransaktionen überschrieben.

Weitere Hinweise finden Sie unter Option -esu und Option -dsd.

Um die Snapshot-Isolation in SQL Server verwenden zu können, muss die Benutzer-ID, mit der Sie den MobiLink-Server mit der Datenbank verbinden, auf die SQL Server-Systemtabelle SYS.DM_TRAN_ACTIVE_TRANSACTIONS zugreifen dürfen. Wenn diese Berechtigung nicht erteilt wurde, verwendet MobiLink die Standardisolation SQL_TXN_READ_COMMITTED.

Wenn Ihre konsolidierte Datenbank auf einem Microsoft SQL Server läuft, auf dem auch andere Datenbanken ausgeführt werden und Sie für Uploads oder Downloads die Snapshot-Isolation verwenden und Ihre Upload- oder Download-Skripten auf keine anderen Datenbanken auf dem Server zugreifen, sollten Sie die MobiLink-Serveroption -dt angeben. Diese Option bewirkt, dass MobiLink alle Transaktionen mit Ausnahme derjenigen in der aktuellen Datenbank ignoriert. Sie erhöht den Durchsatz und verringert die Duplikation von Zeilen beim Download.

Weitere Hinweise finden Sie unter Option -dt.

Microsoft SQL Server vor Version 2005

Wenn Sie eine frühere Version als Microsoft SQL Server Version 10 verwenden, ist die MobiLink-Standardisolationsstufe SQL_TXN_READ_COMMITTED. Sie können den Standardwert für die gesamte MobiLink-Sitzung im Skript begin_connection ändern. Für den Upload und Download ändern Sie ihn in den Skripten begin_upload bzw. begin_download.

Siehe auch