Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 10.0.1 » MobiLink - Client Administration » Event Hooks for SQL Anywhere Clients

sp_hook_dbmlsync_begin Next Page


Use this stored procedure to process communications errors.

Rows in #hook_dict table




publication_n (in)


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.

script version (in)

script version name

The MobiLink script version that is used for the synchronization.

error message (in)error message textThis is the same text that is displayed in the dbmlsync log.
error id (in)numericAn ID that uniquely identifies the message. Use this row to identify the error message, as the error message text may change.
error hook user state (in|out)integer

This value can be set by the hook to pass state information to future calls to the sp_hook_dbmlsync_all_error, sp_hook_dbmlsync_communication_error, sp_hook_dbmlsync_misc_error, sp_hook_dbmlsync_sql_error, or sp_hook_dbmlsync_end hooks. The first time one of these hooks is called, the value of the row is 0. If the hook changes the value of the row, the new value is used in the next hook call.

When you use this hook to pass state information to the sp_hook_dbmlsync_end hook, you can cause the _end hook to perform actions such as retrying the synchronization.

stream error code (in)integerThe error reported by the stream.
system error code (in)integerA system-specific error code.

If an error occurs during startup before a synchronization has been initiated, the #hook_dict entries for MobiLink user and Script version are set to an empty string, and no publication_n rows are set in the #hook_dict table.

When communication errors occur between dbmlsync and the MobiLink server, this hook allows you to access stream-specific error information.

The stream error code parameter is an integer indicating the type of communication error.

For a listing of possible error code values, see MobiLink Communication Error Messages.

This procedure executes on a separate connection to ensure that operations it performs are not lost if a rollback is performed on the synchronization connection. If dbmlsync cannot establish a separate connection, the procedure is not called.

By default on Windows CE devices, synchronization tables are locked in exclusive mode, which means that this hook cannot successfully execute if it requires access to any of the synchronization tables. It also cannot execute if it needs to access synchronization tables and you set the dbmlsync extended option LockTables to EXCLUSIVE. See LockTables (lt) extended option.

Actions of this procedure are committed immediately after execution.

See also

Assume you use the following table to log communication errors in the remote database.

CREATE TABLE communication_error_log
  error_msg VARCHAR(10240),
  error_code VARCHAR(128)  

The following example sets up sp_hook_dbmlsync_communication_error to log communication errors.

CREATE PROCEDURE sp_hook_dbmlsync_communication_error()

 // get the error message text
 SELECT value INTO msg
  FROM #hook_dict
  WHERE name ='error message';

 // get the error code
 SELECT value INTO code
  FROM #hook_dict
  WHERE name = 'stream error code';

 // log the error information
 INSERT INTO communication_error_log(error_code,error_msg)
  VALUES (code,msg);