Benutzen Sie diese gespeicherte Prozedur, um Datenbankfehler zu verarbeiten, die während der Synchronisation auftreten. Sie können beispielsweise den Hook sp_hook_dbmlsync_sql_error implementieren, um beim Eintreten eines bestimmten SQL-Fehlers eine bestimmte Aktion durchzuführen.
Name |
Wert |
Beschreibung |
---|---|---|
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 |
error message (in) | Fehlermeldungstext | Dies ist der Text, der auch im dbmlsync-Log angezeigt wird. |
error id (in) | Nummerisch | Eine ID, die die Meldung eindeutig identifiziert. In dieser Zeile können Sie die Fehlermeldung identifizieren, da der Meldungstext abweichen kann. |
error hook user state (in|out) | Ganzzahl |
Dieser Wert kann vom Hook eingestellt werden, um Statusinformationen in zukünftigen Aufrufen an die Hooks sp_hook_dbmlsync_all_error, sp_hook_dbmlsync_communication_error, sp_hook_dbmlsync_misc_error, sp_hook_dbmlsync_sql_error oder sp_hook_dbmlsync_end zu übergeben. Wenn einer dieser Hooks zum ersten Mal aufgerufen wird, beträgt der Wert der Zeile "0". Wenn der Hook den Wert der Zeile ändert, wird der neue Wert im nächsten Hook-Aufruf verwendet. Wenn Sie mit diesem Hook Statusinformationen an den Hook sp_hook_dbmlsync_end übergeben, können Sie den _end-Hook veranlassen, bestimmte Aktionen durchzuführen, beispielsweise die Synchronisation erneut zu starten. |
SQL code (in) | SQL-Fehlercode | Der SQL-Fehlercode, der von der Datenbank zurückgegeben wird, wenn der Vorgang fehlgeschlagen ist. Diese Werte werden in sqlerr.h im Unterverzeichnis SDK\Inlcude der SQL Anywhere 11-Installation definiert. |
SQL state (in) | SQLSTATE-Wert | Der SQL-Zustand, der von der Datenbank zurückgegeben wird, wenn der Vorgang fehlgeschlagen ist. |
Wenn beim Start ein Fehler auftritt, bevor eine Synchronisation initiiert werden konnte, werden die #hook_dict-Einträge für den MobiLink-Benutzer und die Skriptversion auf eine leere Zeichenfolge zurückgesetzt, und in der #hook_dict-Tabelle werden keine publication_n-Zeilen eingestellt.
Sie können SQL-Fehler mit SQL Anywhere SQLCODE oder dem ANSI SQL-Standard SQLSTATE ermitteln. Eine Liste der SQLCODE- oder SQLSTATE-Werte finden Sie unter SQL Anywhere - Fehlermeldungen.
Diese Prozedur wird in einer eigenen Verbindung ausgeführt, damit sichergestellt ist, dass die dadurch bewirkten Vorgänge nicht verloren gehen, wenn ein Zurücksetzen der Synchronisationsverbindung erfolgt. Wenn dbmlsync keine getrennte Verbindung herstellen kann, wird die Prozedur nicht aufgerufen.
Auf Windows Mobile-Geräten werden Synchronisationstabellen exklusiv gesperrt. Das bedeutet, dass dieser Hook nicht erfolgreich ausgeführt werden kann, wenn er auf eine der Synchronisationstabellen zugreifen muss. Er kann auch nicht ausgeführt werden, wenn er auf Synchronisationstabellen zugreifen muss und Sie die erweiterte Option LockTables von dbmlsync auf EXCLUSIVE gesetzt haben. Weitere Hinweise finden Sie unter Erweiterte Option LockTables (lt).
Die Aktionen dieser Prozedur werden sofort nach ihrer Ausführung festgeschrieben.
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 |