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-Ereignisse » Synchronisationsereignisse

 

upload_statistics (Tabellenereignis)

Verfolgt statistische Daten der Synchronisation für Uploadvorgänge einer bestimmten Tabelle.

Parameter

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 benutzen. Weitere Hinweise finden Sie unter SQL-Java-Datentypen und SQL-.NET-Datentypen.

In SQL-Skripten können Sie Ereignisparameter mit ihrem Namen oder mit einem Fragezeichen angeben. Namen und Fragezeichen dürfen jedoch in einem Skript nicht gemischt verwendet werden. Wenn Sie Fragezeichen verwenden, müssen die Parameter in der nachfolgend gezeigten Reihenfolge stehen und sind nur dann optional, wenn keine nachfolgenden Parameter angegeben wurden (z.B. müssen Sie 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

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.username

VARCHAR(128). Der MobiLink-Benutzername

1

s.table

VARCHAR(128). Der Tabellenname

2

s.warnings

INTEGER. Die Anzahl der beim Upload der Tabelle ausgegebenen Warnungen.

3

s.errors

INTEGER. Die Anzahl der Fehler, einschließlich der bearbeiteten Fehler, die beim Upload der Tabelle aufgetreten sind.

4

s.inserted_rows

INTEGER. Anzahl der Zeilen, die erfolgreich in die konsolidierte Datenbank eingefügt wurden.

5

s.deleted_rows

INTEGER. Anzahl der Zeilen, die erfolgreich aus der konsolidierten Datenbank gelöscht wurden.

6

s.updated_rows

INTEGER.

7

s.conflicted_inserts

INTEGER. Immer Null.

8

s.conflicted_deletes

INTEGER. Immer Null.

9

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.

10

s.ignored_inserts

INTEGER. Gesamtanzahl der Upload-Einfügungen, die ignoriert wurden. Sie wurden ignoriert, da 1) kein upload_insert-Skript im Normalmodus oder kein upload_new_row_insert-Skript im erzwungenen Konfliktmodus vorhanden ist oder da 2) Fehler aufgetreten sind, als der MobiLink-Server das entsprechende Skript aufrief und das Ereignis handle_error oder handle_odbc_error den Wert 1000 zurückgab.

11

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.

12

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.

13

s.bytes

INTEGER. Verwendete Speichermenge im MobiLink-Server zum Speichern des Uploads.

14

s.deadlocks

INTEGER. Gesamtzahl der Deadlocks in der konsolidierten Datenbank, die für die Synchronisation festgestellt wurden.

15

Standardaktion

Keine.

Bemerkungen

Mit dem Ereignis upload_statistics können Sie für jeden beliebigen Benutzer wesentliche statistische Daten zu Synchronisationen im Zusammenhang mit der betreffenden Tabelle sammeln. Das Tabellenskript upload_statistics wird unmittelbar vor dem Festschreiben am Ende der Uploadtransaktion aufgerufen.

Siehe auch
SQL-Beispiel

Das folgende Beispiel fügt eine Zeile in eine Tabelle ein, um Upload-Statistiken aufzuzeichnen.

CALL ml_add_connection_script(
 'ver1',
 'upload_statistics',
 'INSERT INTO my_upload_statistics ( 
   user_name, 
   table_name, 
   num_warnings, 
   num_errors, 
   inserted_rows, 
   deleted_rows, 
   updated_rows,
   conflicted_inserts, 
   conflicted_deletes,
   conflicted_updates, 
   ignored_inserts,
   ignored_deletes, 
   ignored_updates, bytes,
   deadlocks )
  VALUES( 
   {ml s.username}, 
   {ml s.table}, 
   {ml s.warnings}, 
   {ml s.errors}, 
   {ml s.inserted_rows}, 
   {ml s.deleted_rows}, 
   {ml s.updated_rows}, 
   {ml s.conflicted_inserts}, 
   {ml s.conflicted_deletes}, 
   {ml s.conflicted_updates}, 
   {ml s.ignored_inserts}, 
   {ml s.ignored_deletes}, 
   {ml s.ignored_updates}, 
   {ml s.bytes}, 
   {ml s.deadlocks} )'  )

Das folgende Beispiel ist für eine konsolidierte Oracle-Datenbank geeignet.

CALL ml_add_connection_script(
 'ver1',
 'upload_statistics',
 'INSERT INTO upload_tables_audit (
  id,
  user_name,
  table,
  warnings,
  errors,
  inserted_rows,
  deleted_rows,
  updated_rows,
  conflicted_inserts,
  conflicted_deletes,
  conflicted_updates,
  ignored_inserts,
  ignored_deletes,
  ignored_updates, 
  bytes, 
  deadlocks )
 VALUES ( 
   ut_audit.nextval,
   {ml s.username}, 
   {ml s.table}, 
   {ml s.warnings}, 
   {ml s.errors}, 
   {ml s.inserted_rows}, 
   {ml s.deleted_rows}, 
   {ml s.updated_rows}, 
   {ml s.conflicted_inserts}, 
   {ml s.conflicted_deletes}, 
   {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.

Java-Beispiel

Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine Java-Methode namens uploadStatisticsTable als das Skript für das Tabellenereignis upload_statistics, wenn die Skriptversion ver1 synchronisiert wird.

CALL ml_add_java_table_script(
  'ver1',
  'table1',
  'upload_statistics',
  'ExamplePackage.ExampleClass.uploadStatisticsTable' )

Im Folgenden sehen Sie die Java-Beispielmethode uploadStatisticsTable. Sie protokolliert einige Statistiken im MobiLink-Nachrichtenlog. (Das Protokollieren von Statistiken im MobiLink-Nachrichtenlog ist zum Zeitpunkt der Entwicklung möglicherweise nützlich, verlangsamt aber einen Produktionsserver.)

public String uploadStatisticsTable(
  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 ); 
  return ( null );
}
.NET-Beispiel

Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine .NET-Methode namens UploadTableStats als das Skript für das Tabellenereignis upload_statistics, wenn die Skriptversion ver1 und die Tabelle table1 synchronisiert werden.

CALL ml_add_dnet_table_script(
  'ver1',
  'table1',
  'upload_statistics',
  'TestScripts.Test.UploadTableStats'
)

Im Folgenden sehen Sie die .NET-Beispielmethode uploadStatisticsTable. Sie protokolliert einige Statistiken im MobiLink-Nachrichtenlog. (Das Protokollieren von Statistiken im MobiLink-Nachrichtenlog ist zum Zeitpunkt der Entwicklung möglicherweise nützlich, verlangsamt aber einen Produktionsserver.)

public string UploadTableStats(
  string user,
  string table,
  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 );
  return ( null ); 
}