Additional Parameters synchronization parameter

This synchronization parameter allows an application to supply additional parameters that can not be readily specified using any other predefined parameters. Some parameters that are seldom used are specified in this parameter field.

The additional parameters are supplied as a string of keyword=value settings, separated with a semicolon.

Syntax

The syntax varies depending on the API you use.

Allowed values

The following properties can be specified as part of the additional parameters setting:

Property name Description

AllowDownloadDupRows

Prevents errors from being raised when a synchronization encounters downloaded rows with duplicate primary keys.

Set this property to 0 to raise errors and roll back the download; otherwise, set to 1 to raise warnings and continue the download.

This property is only available in UltraLite C/C++.

CheckpointStore

Adds additional checkpoints of the database during synchronization to limit database growth during the synchronization process.

Set this property to 1 to enable this feature, which is beneficial for large downloads with many updates but slows down synchronization; otherwise, set to 0, which is the default.

DisableConcurrency

Disallows database access from other threads during synchronization during the upload phase.

Set this property to 0 to allow concurrent database access; otherwise, set to 1. By default, this property is set to 0.

TableOrder

Sets the table order required for priority synchronization if the UltraLite default table ordering is not suitable for your deployment.

Set this property to a list of table names, arranged in the desired order for upload. For UltraLite, use a comma delimited list; for ulsync, use a semicolon delimited list. By default, the order is based on foreign key relationships. Typically, the default is acceptable when the foreign keys on your consolidated database match the UltraLite remote and there are no foreign key cycles.

Quote tables names with either single or double quotes. For example, "Customer,Sales" and 'Customer,Sales' are both supported in UltraLite.

If you include tables that are not included in the synchronization, they are ignored. Any tables that you do not list are appropriately sorted based on the foreign keys defined in the remote database.

The order of tables on the download is the same as those you define for upload.

You only need to explicitly set the table order if your UltraLite tables:

  • Are part of foreign key cycles. You must then list all tables that are part of a cycle.

  • Have different foreign key relationships in the consolidated database.

See also
Example

UltraLite for C/C++ applications can set additional parameters as follows:

ul_synch_info info;
// ...
info.additional_parms = UL_TEXT(
    "AllowDownloadDupRows=1;
    CheckpointStore=1;
    DisableConcurrency=1;
    TableOrder=Customer,Sales"
);