UltraLite client synchronization design

All data in an UltraLite database is synchronized by default. If you are new to deploying UltraLite as a MobiLink remote database, plan to use the default behavior initially.

Once you become comfortable with the synchronization process, you may decide to customize the behavior of the synchronization operation to capture more complex business logic. Designing custom synchronization behavior requires that you ask the following questions. If your business requirements are simple, you may only need to use a single synchronization feature. However, in very complex deployments, you may need to use multiple synchronization features to configure the synchronization behavior you require.

Design question If you answer yes, use the following
Do you want to download changes from the consolidated database but not have local changes uploaded to the database? The download_only table name suffix allows you to identify any tables for which the synchronization should be download only. Changes made to the local tables are not uploaded to the consolidated database.
Do you want to exclude tables from synchronization? The nosync table name suffix allows you to identify any tables that you do not want to synchronize.
Do you only want to synchronize entire tables even when data hasn't changed? The allsync table name suffix allows you to synchronize the entire table, even when no changes are detected.
Do you want to synchronize an entire table or just rows that meet specific conditions? Does some of the data require synchronization priority due to its importance or time-sensitivity?

A publication includes articles that list the tables that require synchronization. An article can include a WHERE clause that specifies the rows to upload based on whether the rows meet the defined criteria.

Multiple publications can address priority issues that require certain UltraLite data be uploaded before others.

Do you require a table order for synchronization because you have cycles of foreign keys? The Table Order synchronization parameter allows you to determine the order of synchronization operations when you have foreign key cycles. However, foreign key cycles are generally not recommended for UltraLite.
Do you want to control synchronization behavior? For example, do you need downloads to occur at the same time as uploads? Or do you want to change bi-directional synchronization to one-way only?

Use the appropriate synchronization parameter as part of:

  • Your application's synchronization structure (or the synchronization enumeration).

  • The ulsync utility's -e option.

Do you want your UltraLite client to be TLS-enabled? What encryption algorithm you choose determines how your device must be set up according to the platform that runs on that device.
 See also

UltraLite non-synchronizing tables
UltraLite download-only tables
UltraLite synchronize-all tables
Publishing data in UltraLite
Table order in UltraLite
Adding synchronization to your UltraLite application