Verwenden Sie diese gespeicherte Prozedur, um benutzerdefinierte Aktionen einzufügen, nachdem dbmlsync den Empfang des Uploads durch den MobiLink-Server geprüft hat.
Name |
Wert |
Beschreibung |
---|---|---|
failure cause (in) |
Siehe Wertebereich bei "Bemerkungen" weiter unten. |
Der Grund, warum ein Upload fehlgeschlagen ist. Weitere Hinweise finden Sie nachstehend im Abschnitt unter "Beschreibung". |
upload status (in) |
retry | committed | failed | unknown |
Gibt den Status an, der vom MobiLink-Server zurückgegeben wird, wenn dbmlsync versucht, den Empfang des Uploads zu prüfen. retry - Der MobiLink-Server und dbmlsync hatten unterschiedliche Werte für den Log-Offset, von dem der Upload starten sollte. Der Upload wurde vom MobiLink-Server nicht festgeschrieben. Das Dienstprogramm dbmlsync versucht, einen anderen Upload zu senden, der bei einem neuen Log-Offset beginnt. committed - Der Upload wurde vom MobiLink-Server empfangen und festgeschrieben. failed - Der MobiLink-Server hat den Upload nicht festgeschrieben. unknown - Dbmlsync wurde mit der Option -tu gestartet, sodass Uploads auf Transaktionsebene erfolgen. Bei jeder Transaktion, für die ein Upload erfolgt, werden die Hook-Prozeduren sp_hook_dbmlsync_upload_begin und sp_hook_dbmlsync_upload_end aufgerufen, der Upload-Statuswert ist in jedem Fall außer beim letzten Upload unknown. |
publication_n (in) |
Publikation |
Die synchronisierten Publikationen, wobei n eine Ganzzahl ist. Es gibt einen publication_n-Eintrag für jede Publikation im Upload. Die Nummerierung von n beginnt bei Null. |
MobiLink user (in) |
MobiLink-Benutzername |
Der MobiLink-Benutzer, für den Sie synchronisieren |
script version (in) |
Skriptversionsname |
Die MobiLink-Skriptversion, die für die Synchronisation verwendet werden soll |
authentication value (in) | Wert |
Dieser Wert wird von den Skripten authenticate_user, authenticate_user_hashed oder authenticate_parameters auf dem Server generiert. Der Wert ist eine leere Zeichenfolge, wenn der Upload-Status unbekannt ist oder die Hook-Prozedur upload_end nach dem Neusenden eines Uploads aufgerufen wird, weil ein Konflikt zwischen den in der entfernten und der konsolidierten Datenbank gespeicherten Log-Offsets aufgetreten ist. |
Wenn eine Prozedur dieses Namens vorhanden ist, wird sie aufgerufen, unmittelbar nachdem dbmlsync den Upload gesendet und die Bestätigung dafür vom MobiLink-Server erhalten hat.
Die Aktionen dieser Prozedur werden sofort nach ihrer Ausführung festgeschrieben.
Folgende Parameterwerte sind für die Zeile "failure cause" in der Tabelle #hook_dict möglich:
UPLD_ERR_ABORTED_UPLOAD Der Upload ist aufgrund eines Fehlers auf dem entfernten Server fehlgeschlagen. Häufige Gründe für ein solches Fehlschlagen sind Verbindungsfehler und mangelnde Speicherkapazität.
UPLD_ERR_COMMUNICATIONS_FAILURE Ein Kommunikationsfehler ist aufgetreten.
UPLD_ERR_LOG_OFFSET_MISMATCH Der Upload ist wegen eines Konflikts zwischen den Werten für den Log-Offset, die in der entfernten und in der konsolidierten Datenbank gespeichert sind, fehlgeschlagen.
UPLD_ERR_GENERAL_FAILURE Der Upload ist aus einem unbekannten Grund fehlgeschlagen.
UPLD_ERR_INVALID_USERID_OR_PASSWORD Benutzer-ID oder Kennwort war falsch.
UPLD_ERR_USERID_OR_PASSWORD_EXPIRED Benutzer-ID oder Kennwort ist abgelaufen.
UPLD_ERR_USERID_ALREADY_IN_USE Benutzer-ID wird bereits benutzt.
UPLD_ERR_DOWNLOAD_NOT_AVAILABLE Der Upload war in der konsolidierten Datenbank festgeschrieben, jedoch ist ein Fehler aufgetreten, der MobiLink daran gehindert hat, den Download zu erzeugen.
UPLD_ERR_PROTOCOL_MISMATCH dbmlsync hat unerwartete Daten vom MobiLink-Server erhalten.
UPLD_ERR_SQLCODE_n Hier ist n eine Ganzzahl. In der konsolidierten Datenbank ist ein SQL-Fehler aufgetreten. Die angegebene Ganzzahl ist der SQLCODE für den eingetretenen Fehler.
Nehmen wir an, Sie verwenden die folgende Tabelle, um Synchronisationsereignisse in der entfernten Datenbank zu protokollieren.
CREATE TABLE SyncLog( "event_id" INTEGER NOT NULL DEFAULT AUTOINCREMENT , "event_name" VARCHAR(128) NOT NULL , "ml_user" VARCHAR(128) NULL , "event_time" TIMESTAMP NULL, "table_name" VARCHAR(128) NULL , "upsert_count" VARCHAR(128) NULL , "delete_count" VARCHAR(128) NULL , "exit_code" INTEGER NULL , "status_retval" VARCHAR(128) NULL , "pubs" VARCHAR(128) NULL , "sync_descr " VARCHAR(128) NULL , PRIMARY KEY ("event_id"), ); |
Das folgende Beispiel protokolliert den MobiLink-Benutzer und den aktuellen Zeitstempel, nachdem dbmlsync überprüft hat, dass der MobiLink-Server den Upload erhalten hat.
CREATE PROCEDURE sp_hook_dbmlsync_upload_end () BEGIN DECLARE status_return_value VARCHAR(255); -- store status_return_value SELECT #hook_dict.value INTO status_return_value FROM #hook_dict WHERE #hook_dict.name = 'upload status'; INSERT INTO SyncLog (event_name, ml_user, status_retval, event_time) SELECT 'upload_end', #hook_dict.value, status_return_value, CURRENT TIMESTAMP FROM #hook_dict WHERE name = 'MobiLink user'; END; |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |