Ermöglicht den Zugriff auf Synchronisationsstatistiken für Upload-Vorgänge.
In der folgenden Tabelle stellt die Beschreibung den SQL-Datentyp bereit. Wenn Sie Ihr Skript in Java oder .NET schreiben, müssen Sie den entsprechenden Datentyp verwenden. Siehe SQL-Java-Datentypen und SQL-.NET-Datentypen.
In SQL-Skripten können Sie Ereignisparameter mit ihrem Namen oder mit einem Fragezeichen angeben. Die Verwendung von Fragezeichen ist veraltet und es wird empfohlen, benannte Parameter zu verwenden. Sie können nicht Namen und Fragezeichen in einem Skript mischen. Wenn Sie Fragezeichen verwenden, müssen die Parameter in der unten gezeigten Reihenfolge stehen und sind nur dann optional, wenn keine nachfolgenden Parameter angegeben wurden. (Sie müssen beispielsweise Parameter 1 verwenden, wenn Sie Parameter 2 verwenden möchten.) Wenn Sie benannte Parameter verwenden, können Sie beliebige Teilmengen der Parameter in beliebiger Reihenfolge angeben.
Parametername für SQL-Skripten | Beschreibung | Reihenfolge (veraltet für SQL) |
---|---|---|
s.remote_id | VARCHAR(128). Die entfernte ID von MobiLink. Sie können die entfernte ID nur dann referenzieren, wenn Sie benannte Parameter verwenden. | Nicht anwendbar |
s.script_version | VARCHAR(128). Optionaler IN-Parameter, mit dem angegeben wird, dass der MobiLink-Server die bei der aktuellen Synchronisation verwendete Skriptversionszeichenfolge an diesen Parameter übergibt. Fragezeichen können nicht verwendet werden, um diesen Parameter anzugeben. | Nicht anwendbar |
s.username |
VARCHAR(128). Der MobiLink-Benutzername. |
1 |
s.warnings |
INTEGER. Anzahl der aufgetretenen Warnungen. |
2 |
s.errors |
INTEGER. Anzahl der aufgetretenen Fehler. |
3 |
s.inserted_rows |
INTEGER. Anzahl der Zeilen, die erfolgreich in die konsolidierte Datenbank eingefügt wurden. |
4 |
s.deleted_rows |
INTEGER. Anzahl der Zeilen, die erfolgreich aus der konsolidierten Datenbank gelöscht wurden. |
5 |
s.updated_rows |
INTEGER. Anzahl der Zeilen, die erfolgreich in der konsolidierten Datenbank aktualisiert wurden. |
6 |
s.conflicted_updates |
INTEGER. Die Anzahl der aktualisierten Zeilen, die einen Konflikt verursacht haben. Eine Zeile wird nur dann einbezogen, wenn für sie ein Konfliktlösungsskript erfolgeich aufgerufen wurde. |
9 |
s.ignored_inserts |
INTEGER. Gesamtanzahl der Upload-Einfügungen, die ignoriert wurden. Die Zeilen wurden ignoriert, weil 1) kein upload_insert-Skript im Normalmodus vorhanden ist oder 2) beim Aufrufen des entsprechenden Skripts durch den MobiLink-Server Fehler aufgetreten sind und das Ereignis handle_error oder handle_odbc_error der Wert 1000 zurückgegeben hat. |
10 |
s.ignored_deletes |
INTEGER. Die Anzahl der Upload-Löschungszeilen, die zu Fehlern führten, während das Skript upload_delete aufgerufen wurde, wenn handle_error oder handle_odbc_error definiert ist und den Wert 1000 zurückgegeben hat oder wenn für die angegebene Tabelle kein upload_delete-Skript definiert ist. |
11 |
s.ignored_updates |
INTEGER. Anzahl der Upload-Aktualisierungszeilen, die einen Konflikt verursacht haben, aber kein Konfliktlösungsskript erfolgreich aufgerufen oder kein upload_update-Skript definiert ist. |
12 |
s.bytes |
INTEGER. Verwendete Speichermenge im MobiLink-Server zum Speichern des Uploads. |
13 |
s.deadlocks |
INTEGER. Gesamtzahl der Deadlocks in der konsolidierten Datenbank, die für die Synchronisation festgestellt wurden. |
14 |
Keine.
Mit dem Ereignis upload_statistics können Sie für jeden beliebigen Benutzer statistische Daten zu Uploadvorgängen sammeln. Das Verbindungsskript upload_statistics wird unmittelbar vor dem Festschreiben am Ende der Upload-Transaktion aufgerufen.
Das folgende Beispiel fügt Synchronisationsstatistiken für Uploadvorgänge in die Tabelle upload_summary_audit ein.
CALL ml_add_connection_script ( 'ver1', 'upload_statistics', 'INSERT INTO upload_summary_audit ( ml_user, warnings, errors, inserted_rows, deleted_rows, updated_rows, conflicted_updates, ignored_inserts, ignored deletes, ignored_updates, bytes, deadlocks ) VALUES ( {ml s.username}, {ml s.warnings}, {ml s.errors}, {ml s.inserted_rows}, {ml s.deleted_rows}, {ml s.updated_rows}, {ml s.conflicted_updates}, {ml s.ignored_inserts}, {ml s.ignored_deletes}, {ml s.ignored_updates}, {ml s.bytes}, {ml s.deadlocks} ) ' ) |
Nachdem statistische Daten in die Audit-Tabelle eingefügt wurden, können Sie sie zur Überwachung der Synchronisationen einsetzen und ggf. Optimierungen durchführen.
Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine Java-Methode namens uploadStatisticsConnection als das Skript für das Verbindungsereignis upload_statistics, wenn die Skriptversion ver1 synchronisiert wird.
CALL ml_add_java_connection_script( 'ver1', 'upload_statistics', 'ExamplePackage.ExampleClass.uploadStatisticsConnection' ) |
Im Folgenden sehen Sie die Java-Beispielmethode uploadStatisticsConnection. Sie protokolliert einige Statistiken im MobiLink-Nachrichtenlog. (Das Protokollieren von Statistiken im MobiLink-Meldungslog ist während der Entwicklung möglicherweise nützlich, verlangsamt aber einen Produktionsserver.)
package ExamplePackage; public class ExampleClass { String _curUser = null; public void uploadStatisticsConnection( String user, int warnings, int errors, int insertedRows, int deletedRows, int updatedRows, int conflictedInserts, int conflictedDeletes, int conflictedUpdates, int ignoredInserts, int ignoredDeletes, int ignoredUpdates, int bytes, int deadlocks ) { java.lang.System.out.println( "updated rows: " + updatedRows ); }} |
Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine .NET-Methode namens UploadStats als das Skript für das Verbindungsereignis upload_statistics, wenn die Skriptversion ver1 synchronisiert wird.
CALL ml_add_dnet_connection_script( 'ver1', 'upload_statistics', 'TestScripts.Test.UploadStats' ) |
Im Folgenden sehen Sie die .NET-Beispielmethode UploadStats. Sie protokolliert einige Statistiken im MobiLink-Nachrichtenlog. (Das Protokollieren von Statistiken im MobiLink-Meldungslog ist während der Entwicklung möglicherweise nützlich, verlangsamt aber einen Produktionsserver.)
namespace TestScripts { public class Test { string _curUser = null; public void UploadStats ( string user, int warnings, int errors, int insertedRows, int deletedRows, int updatedRows, int conflictInserts, int conflictDeletes, int conflictUpdates, int ignoredInserts, int ignoredDeletes, int ignoredUpdates, int bytes, int deadlocks ) { System.Console.WriteLine( "updated rows: " + updatedRows ); }}} |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |