What's New in SQL Anywhere Studio
What's New in Version 9.0.0
Behavior changes in version 9.0
The following is a list of behavior changes from previous versions of the software.
dbmlsync option -i and extended option SiteScriptName are no longer supported dbmlsync -i and dbmlsync -e sc are no longer supported. They are replaced with a new hook called sp_hook_dbmlsync_schema_upgrade.
For more information, see sp_hook_dbmlsync_schema_upgrade.
Download acknowledgement is now OFF by default For Adaptive Server Anywhere remotes, the SendDownloadAck extended option now defaults to OFF. For UltraLite remotes, the send_download_ack field of the ul_synch_info struct now defaults to ul_false.
When you upgrade to version 9, you must explicitly set this option ON if the application depends on knowing that the remote has applied a download before the commit of the download transaction.
For more information, see SendDownloadACK (sa) extended option and Send Download Acknowledgement synchronization parameter.
Some dbmlsync hooks may not work by default on Windows CE devices The dbmlsync extended option LockTables has been modified to allow you to specify whether tables are locked in shared mode or exclusive mode. The default setting for LockTables, ON, continues to lock tables in shared mode for all platforms other than Windows CE. However, on Windows CE devices, ON now means that tables are locked in exclusive mode. This change provides significant performance enhancements for Windows CE applications.
The dbmlsync event hooks sp_hook_dbmlsync_download_com_error, sp_hook_dbmlsync_download_fatal_sql_error, and sp_hook_dbmlsync_download_log_ri_violation are all executed on separate connections. They will not be able to execute correctly if they attempt to access any synchronization tables that are locked in exclusive mode. If your deployment uses any of these hooks on Windows CE, you may need to set LockTables to SHARE.
For more information, see LockTables (lt) extended option, sp_hook_dbmlsync_download_com_error, sp_hook_dbmlsync_download_fatal_sql_error, and sp_hook_dbmlsync_download_log_ri_violation.
MobiLink synchronization server error codes The MobiLink synchronization server now provides more information about errors. All MobiLink server error codes are less than -10000, starting at -10001. For dbmlsync, the error appears in the GUI and the output file. For UltraLite, the error is available as a string in the ul_synch_info struct.
For more information, see MobiLink Synchronization Server Error Messages.
Upload cursors deprecated The following scripts are deprecated: upload_cursor, new_row_cursor, and old_row_cursor. You should use statement-based scripts for the upload stream.
For more information, see Writing scripts to upload rows.
-zac and -zec deprecated The MobiLink synchronization server options for generating cursor-based scripts, -zac and -zec, have been deprecated. You can continue to use -za and -ze to automatically generate statement-based scripts.
For more information, see -za option and -ze option.
-zd removed The MobiLink synchronization server option -zd, which caused the last_download timestamp to be passed last, has been removed. This parameter is now always passed first.
mlxtract deprecated The mlxtract utility is deprecated.
For information, see Creating a remote database.
end_synchronization scripts always called Prior to version 9.0, the end_synchronization script might not be called if synchronization failed. Now, the script is always called if a begin_synchronization script is called. This means that any cleanup activities you have placed in the end_synchronization script will be performed regardless of whether the synchronization was successful.
In addition, end_synchronization scripts have a new parameter, sync_ok, that indicates whether the synchronization was successful (1), or failed (0).
For more information, see end_synchronization connection eventand end_synchronization table event.
Stream dlls and shared objects renamed The names of stream dlls and shared objects have been changed to improve consistency with Adaptive Server Anywhere. The following table details the changes:
Old name | New name |
---|---|
dbhttp9 | dbmlhttp9 |
dbhttps9 | dbmlhttps9 |
dbjrsa9 | dbmljrsa9 |
dbjtls9 | dbmljtls9 |
dbrsa9 | dbmlrsa9 |
dbsock9 | dbmlsock9 |
dbtls9 | dbmltls9 |
For more information, see Deploying MobiLink Applications.
ScoutSync no longer supported ScoutSync is no longer supported.
Schema information no longer reloaded at each synchronization Prior to version 9.0, dbmlsync reloaded schema information from the database before each synchronization. It now reloads schema information only at dbmlsync startup. You can revert to the old behavior using the dbmlsync -sc option. If you do not use -sc, dbmlsync should be shut down before any schema changes are made to remote databases. Making schema changes without shutting down dbmlsync could lead to synchronization errors or other unexpected behavior.
For more information, see -sc option.
Synchronization now aborts if key scripts are missing Prior to version 9.0, synchronization would continue even if certain scripts were missing that might result in the loss of data. MobiLink now aborts in this instance. You can use the dbmlsrv9 -fr option to cause an error to be generated instead of failure.
For more information, see -fr option.
keep_alive synchronization parameter is always ON The keep_alive synchronization parameter for TCP/IP and HTTP protocols is now ignored and is always set to ON. This was previously the default setting. To control liveness for TCP/IP connections, you can use the liveness_timeout parameter.
For more information, see the liveness_timeout parameter in CREATE SYNCHRONIZATION USER statement [MobiLink] or -x option.