Verwenden Sie diese gespeicherte Prozedur, um programmgesteuert zu entscheiden, wann ein Rescan erforderlich ist.
Name | Wert | Beschreibung |
---|---|---|
publication_n (in) |
Publikation |
Nicht mehr empfohlen. Verwenden Sie stattdessen subscription_n. Die synchronisierten Publikationen, wobei n eine Ganzzahl ist. Es gibt einen publication_n-Eintrag für jede synchronisierte Publikation. Die Nummerierung von n beginnt bei Null. |
MobiLink user (in) |
MobiLink-Benutzername |
Der MobiLink-Benutzer, für den Sie synchronisieren |
discarded storage (in) |
Zahl |
Die Anzahl an Byte von verworfenem Speicher nach der letzten Synchronisation |
rescan (in|out) |
true | false |
Wenn vom Hook auf TRUE gesetzt, führt dbmlsync einen kompletten Rescan vor der nächsten Synchronisation durch. Beim Eintritt ist dieser Wert auf FALSE gesetzt. |
script version (in) |
Skriptversionsname |
Die MobiLink-Skriptversion, die für die Synchronisation verwendet werden soll |
subscription_n (in) | Subskriptionsname(n) | Die synchronisierten Subskriptionen, wobei n eine Ganzzahl ist. Dies ist ein subscription_n-Eintrag für jede synchronisierte Subskription. Die Nummerierung von n beginnt bei Null. |
Wenn mehr als eine Option -n oder -s in der Befehlszeile angegeben wird, können in dbmlsync Fragmentierungen auftreten, sodass Speicherinhalt gelöscht wird. Der gelöschte Speicherinhalt kann durch erneutes Scannen des Datenbank-Transaktionslogs wiederhergestellt werden. Mit diesem Hook können Sie festlegen, ob dbmlsync das Datenbank-Transaktionslog neu scannen soll, um den Speicher wiederherzustellen.
Wenn keine andere Bedingung erfüllt ist, die einen Rescan erzwingt, wird dieser Hook sofort nach dem sp_hook_dbmlsync_process_exit_code-Hook aufgerufen.
Hook-Prozeduren können von jedem Benutzer mit dem MANAGE REPLICATION-Systemprivileg erstellt werden. Um jedoch zu gewährleisten, dass ein Hook auf die #hook_dict-Tabelle zugreifen kann, die verwendet wird, um Daten an und aus Hooks zu übergeben, müssen Hooks eine der folgenden Anforderungen erfüllen:
Eigentümer muss ein Benutzer sein, der die Systemprivilegien SELECT ANY TABLE und UPDATE ANY TABLE hat.
Sie müssen durch die SQL SECURITY INVOKER-Klausel der CREATE PROCEDURE-Anweisung definiert sein.
Das folgende Beispiel bewirkt einen Log-Scan, wenn der verworfene Speicher größer als 1000 Byte ist.
CREATE PROCEDURE sp_hook_dbmlsync_log_rescan () BEGIN IF EXISTS(SELECT * FROM #hook_dict WHERE name = 'Discarded storage' AND value>1000) THEN UPDATE #hook_dict SET value ='true' WHERE name='Rescan'; END IF; END; |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |