Use this stored procedure to programmatically decide when a rescan is required.
Name |
Value |
Description |
---|---|---|
publication_n (in) |
publication |
The publications being synchronized, where n is an integer. There is one publication_n entry for each publication being uploaded. The numbering of n starts at zero. |
MobiLink user (in) |
MobiLink user name |
The MobiLink user for which you are synchronizing. |
discarded storage (in) |
number |
The number of bytes of discarded memory after the last synchronization. |
rescan (in|out) |
true | false |
If set to True by the hook, dbmlsync performs a complete rescan before the next synchronization. On entry, this value is set to False. |
script version (in) |
script version name |
The MobiLink script version to be used for the synchronization. |
When more than one -n option is specified in the command line, dbmlsync may experience fragmentation which results in discarded memory. The discarded memory can be recovered by rescanning the database transaction log. This hook allows you to decide if dbmlsync should rescan the database transaction log to recover memory.
When no other condition has been met that would force a rescan, this hook is called immediately after the sp_hook_dbmlsync_process_exit_code hook.
The following example sets the rescan field in the #hook_dict table to TRUE if the discarded storage is greater than 1000 bytes.
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; |
Discuss this page in DocCommentXchange. Send feedback about this page using email. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |