------------------------------------------------------ MobiLink complete event model. Legend: - // This is a comment. - <name> The pseudo code for <name> is listed separately in a later section, under a banner: ------------------------ name ------------------------ - VariableName <- value Assign the given value to the given variable name. Variable names are in mixed case. - event_name If you have defined a script for the given event name, it is invoked. ------------------------------------------------------ CONNECT to consolidated database begin_connection_autocommit begin_connection COMMIT for each synchronization request with the same script version { <synchronize> } end_connection COMMIT DISCONNECT from consolidated database ------------------------------------------------------ synchronize ------------------------------------------------------ <authenticate> <begin_synchronization> <upload> <prepare_for_download> <download> <end_synchronization> ------------------------------------------------------ authenticate ------------------------------------------------------ Status <- 1000 UseDefaultAuthentication <- TRUE if( authenticate_user script is defined ) { UseDefaultAuthentication <- FALSE TempStatus <- authenticate_user if( TempStatus > Status ) { Status <- TempStatus } } if( authenticate_user_hashed script is defined ) { UseDefaultAuthentication <- FALSE TempStatus <- authenticate_user_hashed if( TempStatus > Status ) { Status <- TempStatus } } if( authenticate_parameters script is defined ) { TempStatus <- authenticate_parameters if( TempStatus > Status ) { Status <- TempStatus } if( UseDefaultAuthentication ) { if( the user exists in the ml_user table ) { if( ml_user.hashed_password column is not NULL ) { if( password matches ml_user.hashed_password ) { Status <- 1000 } else { Status <- 4000 } } else { Status <- 1000 } } else if( -zu+ was on the command line ) { Status <- 1000 } else { Status <- 4000 } } if( Status >= 3000 ) { // Abort the synchronization. } else { // UserName defaults to MobiLink user name // sent from the remote. if( modify_user script is defined ) { UserName <- modify_user // The new value of UserName is later passed to // all scripts that expect the MobiLink user name. } } COMMIT ------------------------------------------------------ begin_synchronization ------------------------------------------------------ begin_synchronization // Connection event. for each table being synchronized { begin_synchronization // Call the table level script. } for each publication being synchronized { begin_publication } COMMIT ------------------------------------------------------ end_synchronization ------------------------------------------------------ for each publication being synchronized { if( begin_publication script was called ) { end_publication } } for each table being synchronized { if( begin_synchronization table script was called ) { end_synchronization // Table event. } } if( begin_synchronization connection script was called ) { end_synchronization // Connection event. } for each table being synchronized { synchronization_statistics // Table event. } synchronization_statistics // Connection event. for each table being synchronized { time_statistics // Table event. } time_statistics // Connection event. COMMIT |
For the details of upload processing, see Events during upload.
For the details of download processing, see Events during download.
Discuss this page in DocCommentXchange. Send feedback about this page using email. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |