Replication Properties Dialog

General Tab
Scheduler Tab
Alerts Tab
Preferences Tab

Opening the Replication Properties Dialog

General Tab

Replication Name

Type a name for the replication. This name will be stored in the metadata and used to identify the replication in the Replication Browser. It is helpful to include information about the source and/or target tables in the replication name.

Description

Optional. Type a description for the replication. This information will be stored in the metadata and can be accessed when you need more information about the replication.

Source Connection

Choose a source connection name from the drop-down list.

Source Table

Choose a source table from the drop-down list.

Target Connection

Choose a target connection name from the drop-down list.

Target Table

Choose a target table from the drop-down list.

Replication Mode

Choose a replication mode from the options below.

Refresh

Mass replication is executed once based on the time setting specified in the Scheduling screen. All records in the target table are deleted before performing the refresh operation, although this behavior can be modified by writing a script for the Refresh_onBeforeTruncate event.

Mirroring

Continuous replication based on the source database transaction log, where the transaction log is checked according to the mirroring interval set in the Replication wizard or on the Preferences tab of this dialog.

Mass replication (refresh) can be executed once in order to fill the target records. Real-time mirroring begins as soon as the refresh changes have taken place. The incremental replication is executed at user-determined intervals.

Synchronization

Mass replication (refresh) can be executed once in order to fill the target records. Real-time bi-directional mirroring begins as soon as the refresh changes have taken place. The incremental replication is executed at user-determined intervals.

Automatic Field Mapping

Check this option to define mapping from target to source fields. Mappings created in this way are saved as part of the metadata. If you do not check this option, you will need to define scripts to create mappings when the replication runs.

Click Mapping to open the Fields Mapping dialog. Use this dialog to customize the mapping between source and target tables.

Use Script

Check this option if you want to define a replication script to run during replication. Define the script by clicking Script to open the Replication Script Editor.

Scheduler Tab

Start Time

Select a start date and time. Click Now to set the current time and date.

  • For the Refresh schedule, when the Replicator is running, this time will be used to determine when to schedule the first replication.

  • For the Mirroring schedule, when the Replicator is running, this time will be used to determine when to schedule the first interruption to mirroring.

  • For the Verifier schedule, when the Verifier Scheduler service is running, this time will be used to determine the first verification process.

Selecting a Date
You can select a date either by typing in the month, day and year, or by clicking the down arrow to view a scrollable monthly calendar.

To type in a date, first select the month, then type in a new value, then select the day and type in a new value and finally select the year and type in a new value.

If you click the down arrow, it displays the date that corresponds to the value currently set in the field. Use the left and right arrows to locate the month you want, then select a date by clicking on it. The window closes when you select a date and the date is displayed in the Start Time field.

Selecting a Time
To select a time, first select the hours, minutes or seconds, then type a new number or use the up and down arrows to increase or decrease the number.

Refresh Schedule

Run One Time Only
Select this option if you want to replicate data only once.

Run Recurrently
Select this option if you want to replicate data on a regular schedule. When you select this option, the Schedule button is activated. Click Schedule to open the Scheduler dialog.

NOTE: To run a complete refresh replication immediately the replication is enabled and the start time has been reached, check the Run Initial Refresh option on the right mouse button of the replication name in the Metadata Explorer, Replication Browser or Replication Monitor. Subsequent replications occur as scheduled. Target table records are deleted prior to running the initial refresh operation. You can avoid truncation of target tables by writing a script for the Refresh_onBeforeTruncate event.

For mirroring replications which include an initial refresh, Syniti DR handles all transactions which occur while the initial refresh was taking place as part of the first mirroring phase by considering all transactions between the initial refresh start and the initial refresh end as a special case and verifying that all these transactions are handled appropriately.

For a synchronization replication, the initial refresh is always performed from the source connection to the target connection. Note that any transaction submitted during the time that the refresh is running might not be replicated. It is strongly suggested that you avoid updating the designated source and target tables until the refresh is done.

Mirroring Schedule

Run Continuously
Select this option to continuously mirror activity between the source and target database. The start of mirroring is determined by settings in the Scheduling screen. If you have enabled replication and set the start time, then mirroring will begin at the start time specified. If you have also checked the option to execute an initial refresh, then mirroring will begin once the database refresh is complete. If Enable Replication is not checked, neither the initial refresh or continuous mirroring will begin at the time specified in Start Time.

Schedule Interruptions
Select this option if you need to schedule one or more interruptions to the mirroring schedule. When you select this option, the Schedule button is activated. Click Schedule to open the Scheduler dialog.

Verifier Schedule

Run One Time Only
Select this option if you want to perform a verification only once.

Run Recurrently
Select this option if you want to run verifications on a regular schedule. When you select this option, the Schedule button is activated. Click Schedule to open the Scheduler dialog.

Alerts Tab

Use this tab to create and manage email alert messages for the selected replication. It provides a way to define email messages for specific events that occur when the replication is running.

Replication Alerts Grid

The grid displays alerts that have been defined using the Add Alert button. Select an alert to edit or remove it.

Add Alert

Click Add Alert to define a an email message alert in the Replication Alert Properties dialog. Note that newly defined email alert messages will only be sent after stopping and restarting the Replication Agent.

Remove Alert

Select an alert in the grid, then click Remove Alert to delete the email alert.

Edit Alert

Select an alert in the grid, then click Edit Alert to open the Replication Alert Properties dialog and edit the email alert.

Preferences Tab

General

Thread Priority: If running multiple replications concurrently (via the setting in the Replication Agent Options dialog General tab), you can set the priority for the selected replication. See also Managing Performance Using Thread Settings.

Replication Latency: The maximum latency value allowed.

Record Pool Size: This is an optimization feature that allows you to set the size of the buffer used to store records in memory while processing records for replication. The default size is 1000 records. For example, if you are performing a SELECT on a large table, you may need to increase the buffer size. However, the buffer size should only be increased where there is sufficient system memory. In general, increasing this number can enhance performance if the reading task is faster than the writing task, i.e. operations involved in reading records from the source table are faster than operations involved in writing changes to the target table.

Stop on Schema Change: False by default. When set to true, instructs the Replication Agent to disable a replication whenever a schema change operation is detected, either when validating the replication or when the Replication Agent finds a schema change record in the log. See Managing Source/Target Database Schema Changes for more detail on how to use this option.

Override Identity Fields: False by default. For use with mapped Identity fields in Microsoft SQL Server and IBM Db2 for i target tables only. When set to True, this allows writing of the source Identity value to the target using extra clauses to “overwrite” the ID. If the property is set to False, but the Identity field is mapped, the database generates an error on attempting to write to a target Identity field.

Fetch Size: The read block size for connections using Oracle .NET Data Provider only. The default value is 1000000 (set using the Default Fetch Size property in the Connection Properties dialog.) For versions Syniti DR9.7.1 and above, the value in this field also applies to mirroring fetch size. When the replication type is synchronization, this property is enable if Oracle has been set as target.

Refresh

Refresh Filter Source: Allows you to specify a WHERE condition to apply during refresh applications to filter the records that are replicated. Click to open the Expression Generator and write a SQL expression to apply during the refresh replication.

Order By Clause Source: Provides access to the Expression Generator to create an expression for additional control over processing records.

Skip Target Truncate: The default settings is False and enables the truncation of a target table data before starting a refresh. Set to True to skip the truncation prior to starting the refresh.

Refresh Filter Target: Allows you to specify a WHERE condition to apply during the deletion of records on the target table prior to a refresh operation. Click to open the Expression Generator and write a SQL expression to apply during the refresh replication.

Refresh Interval: Default value is 60 seconds. Allows you to configure how long to wait before retrying a refresh in cases where the refresh replication was unable to start. The value must be expressed in seconds and greater than 0.

Refresh Recovery: When checked, and a refresh replication is interrupted while running, the Replication Agent is able to pick up the replication from the point at which it was interrupted. However, for this option to work, the source table involved in the replication must have one or more primary keys defined. If there are no primary keys, and the option is checked, a warning is printed in the log and recovery from the interruption is not possible. Refresh will begin at the first record.  If you are using a replication group, refresh recovery will start at the replication where the error occurred rather than starting at the first replication in the group. If you check this option, you may find that the replication runs more slowly. If performance is adversely affected, uncheck the option.

Record ID : Only valid when Refresh Recovery is set to True. Indicates the current record index to which the replication is set. The drop-down menu allows you to reset the index.

Refresh Staging: Not supported for all databases. Default value is False. Set to True to first populate a staging table with records from the source, then merge the content to the target table. This is useful for very large tables when an initial refresh truncate/delete is performed, but reading and writing the target data could leave the target database temporarily without data before the insert is performed. When Refresh Staging is set to true, all data is stored in the staging table and the data is merged to the actual target table after processing all source records: the target table is not emptied out and target database users are able to access data during the refresh process. The staging table is truncated after the refresh is complete.

Insert Mode: The options are:

  • SingleInsert--inserts record by record using SQL INSERT statements

  • BulkInsert--inserts blocks of records. Block size is determined by the Block Size option. Choose this option for increased performance if using one of the data access providers which currently support bulk inserts:
    Syniti Ritmo/i (IBM Db2 for i) .NET Provider
    SAP HANA ODBC driver
    SAP HANA .NET Provider
    SAP Sybase ASE .NET Provider
    SAP Sybase IQ .NET Data Provider
    Microsoft SQL Server .NET Provider (using SQL Server's SqlBulkCopy)
    MySQL .NET Data Provider
    PostgreSQL .NET Data Provider
    Oracle .NET provider.
    For SQL Server, note that BulkInsert is the default option.
    Record details are not reported in the log when BulkInsert is set.

  • SimulatedBulk--For databases that do not support bulk insertion, Syniti DR simulates the effect by grouping records into blocks before performing an insert. This is a way to optimize performance.

Bulk Type: Depending on the database type and provider type, some of the following options may not be available.

  • ArrayBinding--inserts multiple rows at a time using an array of parameters

  • Native--uses the native functionality of the provider, if available

  • FTP--bulk insert implemented through FTP

Block size: Set the value for the number of rows to insert in a single operation using the Bulk option above.

Isolation level: This option allows you to choose a specific isolation level on the Refresh operation. Choose from the following options available through your .NET Framework data provider:

Unspecified

No level is determined.

Chaos

The pending changes from more highly isolated transactions cannot be overwritten.

ReadUncommitted

A dirty read is possible, meaning that no shared locks are issued and no exclusive locks are honored.

ReadCommitted

Shared locks are held while the data is being read to avoid dirty reads, but the data can be changed before the end of the transaction, resulting in non-repeatable reads or phantom data.

RepeatableRead

Locks are placed on all data that is used in a query, preventing other users from updating the data. Prevents non-repeatable reads but phantom rows are still possible.

Serializable

A range lock is placed on the DataSet, preventing other users from updating or inserting rows into the dataset until the transaction is complete.

Skip Record Count: Default is False. Set to true to skip the SELECT COUNT(*) operation during refresh replications. This command is used only to show replication progress in the Replication Monitor, and omitting the operation may improve performance.

Fire Triggers: When the target database is SQL Server and the Insert Mode is set to BulkInsert, this option can be set to True to fire any triggers defined on the target database. The default value is False to provide optimal performance during replication.

Use Partitions: Check this option to define multiple partitions or subsets within a replication during the refresh operation, so that multiple parallel threads move a specific subset of the data. This is useful to improve performance during refresh operations. Click Add Partition or select a partition and click Edit Partition to open the Partition Properties dialog.

Mirroring

Mirroring Filter Source: Allows you to specify a WHERE condition to apply during mirroring applications to filter the records that are replicated.

Read Interval: The frequency (in seconds) with which you want to check the log during replication. For example, if the setting is 90 seconds, Syniti DR will check the journal/log every 90 seconds to see if any transactions have occurred that need to be replicated to the target table.

Command Pool Size: The number of prepared SQL commands that are kept ready for execution during mirroring. Commands are added to the pool as they are used the first time on a last in, first out approach. Before executing a command, Syniti DR verifies if the command is already prepared in the pool. If it is, the command from the pool is used (saving time, because it is already prepared), otherwise a new command is created, prepared and executed. After execution the command is moved to the top of the pool. When the pool is full and a new command is needed, the last command in the pool is closed and released to make space for the new command. The default pool size of 10 can be modified up to the number of prepared commands that your database will support. This is an optimization feature and can improve performance.

Conflict Resolver: This property applies only to synchronization replications and determines how conflicts will be resolved. If you have not defined a synchronization replication, the property and value are inactive and cannot be modified. If you have defined a synchronization replication, you can choose from the following values:

  • SourceServerWins: This is the default value. Changes applied to the table defined in the source connection are also applied to the table defined in the target connection(s), overriding any changes that have occurred in the target connection table.

  • TargetServerWins:Changes applied to the tables defined in the target connections are also applied to the table defined in the source connection, overriding any changes that have occurred in the source connection table. This option also requires you to set a priority for the target tables involved so that, if changes occur in more than one target table, Syniti DR can determine which changed value to use. Set the priority for target connections as follows.

  1. In the Metadata Explorer, select the group.

  2. From the right mouse button menu, choose Group Properties.

  3. In the Group Properties dialog, go to the Preferences tab.

  4. Click in the Conflict Resolver Priority field to view the target connections.

  5. Order the target connections by selecting the connection, then using the up and down arrows to determine its priority.

  • FirstComeWins: The timestamps of the changes in the tables designated as source and target(s) are compared and the change that applied earliest is applied to all tables.

  • Use Script: This option generates an event that can be handled by writing a function Replication_onConflict. The script editor can be accessed from the General Tab Use Script option. You can write a function that handles the values from the tables in any way you wish using VB .NET.

NOTE: In the rare case that foreign key values are updated when synchronization has been defined, the synchronization algorithm may not work and may cause foreign key constraint violation issues. Please contact our support team via the Help Center if you need to modify foreign key values for replications with synchronization.

Commit Mode: Default is AutoCommit where each statement is replicated as a standalone transaction. This means that only statements that fail will not be replicated. The CommitmentControl option applies all the statements associated with a transaction as a whole to the target. CommitmentControl is supported on Oracle (Log Reader and Log Server Agent), Microsoft SQL Server, IBM Db2 for i, IBM Db2 LUW, IBM Informix.

Mirroring Options - From Source to Target

Commit Mode: Default is AutoCommit where each statement is replicated as a standalone transaction. This means that only statements that fail will not be replicated. The CommitmentControl option applies all the statements associated with a transaction as a whole to the target. CommitmentControl is supported on Oracle (Log Reader and Log Server Agent), Microsoft SQL Server, IBM Db2 for i, IBM Db2 LUW, IBM Informix.

Mirroring Insert Mode: A default value can be assigned in the Connection Properties dialog for the target connection, but the value can be changed here for each replication. The options are

  • SingleInsert--inserts record by record using SQL INSERT statements

  • BulkInsert--inserts blocks of records. Block size is determined by the Block Size option. Choose this option for increased performance if available

Mirroring Block Size: Set the value for the number of rows to insert in a single operation when using the BulkInsert option above.

Commit Isolation Level: This option allows you to choose a specific isolation level when the Commit Mode is set to CommitmentControl. Choose from the following options.

Unspecified

No level is determined.

Chaos

The pending changes from more highly isolated transactions cannot be overwritten.

ReadUncommitted

A dirty read is possible, meaning that no shared locks are issued and no exclusive locks are honored.

ReadCommitted

Shared locks are held while the data is being read to avoid dirty reads, but the data can be changed before the end of the transaction, resulting in non-repeatable reads or phantom data.

RepeatableRead

Locks are placed on all data that is used in a query, preventing other users from updating the data. Prevents non-repeatable reads but phantom rows are still possible.

Serializable

A range lock is placed on the DataSet, preventing other users from updating or inserting rows into the dataset until the transaction is complete.

Snapshot

No locks on underlying data in a snapshot transaction, so other transactions can execute. 

Transaction Read Point - Source Connections

This section of the dialog may contain database-specific fields in addition to the ones listed below.

Transaction ID: The ID for the transaction at which you want to start replication.  If you want to change the transaction ID, click ... to open the Read Point dialog.

In the Transaction Read Point dialog, you can either retrieve the current transaction or the transaction for a specified date and time.

For SQL Server and trigger-based replications, if you choose the Current Sequence option, you can also check the Refresh Transactional Replication Objects option. This is useful, for example, when you know that SQL Server replication objects (article, publisher) have been manually removed or may need to be repaired or restored.  A replication will not run if the database objects used for transactional replications are missing or corrupted.

If you enter a date and time, Syniti DR retrieves the first transaction after the time entered.  This information is available and can be changed in the Replication Properties dialog after the wizard is completed.

The transaction ID is set and transactional objects are refreshed (if checked) when you close the dialog.

Commit TID: A read-only property that indicates the location in the current command index for the transaction that is being processed.

Transaction Timestamp: The timestamp for the transaction above.

Log Files Folder:The location of the log.

Log File Name: The name of the log file.

Log Catalog: Catalog used for the log tables generated by the triggers (as applicable).

Log Schema: Schema used for the log tables generated by the triggers (as applicable).

Master Table Name: Appears only when replicating from a source database that uses triggers. A read-only property that displays the name of the master table created by Syniti DR in the source database and used to store information for trigger-based replications.

Log Table ID: Appears only when replicating from a source database that uses triggers. A read-only property that displays the ID included in the name of the log table created by Syniti DR in the source database and used to store information for trigger-based replications. The full name of the table would be _DBM__LOG_#, where # is the ID displayed in this field.

Mirroring Options - From Target to Source

NOTE: The settings below are used only when performing synchronization.

Commit Mode: Default is AutoCommit where each statement is replicated as a standalone transaction. This means that only statements that fail will not be replicated. The CommitmentControl option applies all the statements associated with a transaction as a whole to the target. CommitmentControl is supported on Oracle (Log Reader and Log Server Agent), Microsoft SQL Server, IBM Db2 for i, IBM Db2 LUW, IBM Informix.

Mirroring Insert Mode: A default value can be assigned in the Connection Properties dialog for the target connection, but the value can be changed here for each replication. The options are

  • SingleInsert--inserts record by record using SQL INSERT statements

  • BulkInsert--inserts blocks of records. Block size is determined by the Block Size option. Choose this option for increased performance if available

Mirroring Block Size: Default 10000. Only valid if the insert mode is BulkInsert.

Commit Isolation Level: This option allows you to choose a specific isolation level when the Commit Mode is set to CommitmentControl. Choose from the following options.

Unspecified

No level is determined.

Chaos

The pending changes from more highly isolated transactions cannot be overwritten.

ReadUncommitted

A dirty read is possible, meaning that no shared locks are issued and no exclusive locks are honored.

ReadCommitted

Shared locks are held while the data is being read to avoid dirty reads, but the data can be changed before the end of the transaction, resulting in non-repeatable reads or phantom data.

RepeatableRead

Locks are placed on all data that is used in a query, preventing other users from updating the data. Prevents non-repeatable reads but phantom rows are still possible.

Serializable

A range lock is placed on the DataSet, preventing other users from updating or inserting rows into the dataset until the transaction is complete.

Snapshot

No locks on underlying data in a snapshot transaction, so other transactions can execute.

Transaction Read Point - Target Connection

Transaction ID: The ID for the transaction at which you want to start replication.  If you want to change the transaction ID, click ... to open the Read Point dialog.

In the Transaction Read Point dialog, you can either retrieve the current transaction or the transaction for a specified date and time.

For SQL Server and trigger-based replications, if you choose the Current Sequence option, you can also check the Refresh Transactional Replication Objects option. This is useful, for example, when you know that SQL Server replication objects (article, publisher) have been manually removed or may need to be repaired or restored.  A replication will not run if the database objects used for transactional replications are missing or corrupted.

If you enter a date and time, Syniti DR retrieves the first transaction after the time entered.  This information is available and can be changed in the Replication Properties dialog after the wizard is completed.

The transaction ID is set and transactional objects are refreshed (if checked) when you close the dialog.

Commit TID: A read-only property that indicates the location in the current command index for the transaction that is being processed.

Transaction Timestamp: The timestamp for the transaction above.

Log Files Folder: The location of the log.

Log File Name: The name of the log file.

Log Catalog: Catalog used for the log tables generated by the triggers (as applicable).

Log Schema: Schema used for the log tables generated by the triggers (as applicable).

Master Table Name: Appears only when replicating from a source database that uses triggers. A read-only property that displays the name of the master table created by Syniti DR in the source database and used to store information for trigger-based replications.

Log Table ID: Appears only when replicating from a source database that uses triggers. A read-only property that displays the ID included in the name of the log table created by Syniti DR in the source database and used to store information for trigger-based replications. The full name of the table would be _DBM__LOG_#, where # is the ID displayed in this field.

Verifier

These options are also available in the Verifier Options dialog. Note that if you set an option below, you need to close and re-open the Verifier tab before the changes are visible in the Verifier Options dialog. Changes you make to Verifier settings in the Replication Properties dialog will be saved to the Syniti DR metadata and available to any Verifier activity for the replication.

Records Count Only: False by default. When checked, the verification process compares only the number of records in the source and target tables.

Compare Primary Keys Only: False by default. When checked, the Verifier compares only the primary key field value(s) in source and target tables to determine differences between the tables. Note that Reconcile Data is not enabled when Verify Primary Key Only has been selected because differences and column data are not recorded during the operation to compare primary keys only.

Max Number of Comparisons: Set a value for this property to control the default maximum number of records to compare. The default is 10,000.

Compare by Pivot Column: If a column is set, the Verifier compares tables using the column as a pivot to determine the differences. A better approach is to use the Verifier Options dialog to select the column, then click Apply Settings to Metadata in the dialog. Values will be updated in the Replication Properties.

Compare Subset of Columns: Enter a comma-separated set of source and target column names, including primary key columns to compare records on this subset of columns. A better approach is to use the Verifier Options dialog to select the columns, then click Apply Settings to Metadata in the dialog. Values will be updated in the Replication Properties.

Trim Chars: True by default. This option provides a way for the tool to ignore blank characters in string values. Some databases set string values at a fixed length using blank spaces to fill the string, while others permit strings of different lengths. If you check this option, the DBCompare tool trims all strings with fixed string length, then compares the strings.

Date Time Options: Set to UseFractionalDigits by default. Because databases can store date time values in different formats, you can select a value in this field to choose how to deal with date time fields. One of three values is possible:

  • SkipDateTime - when selected, any Date Time field values will be ignored when comparing source and target tables.

  • SkipTime - when selected, any Time field values will be ignored when comparing source and target tables.

  • UseFractionalDigits - Allows you to compare field values using a selected number of many to the right of the decimal point

Fractional Digits: 0 by default. Specifically for time values, and works in conjunction with the UseFractionalDigits value in the Date Time Options field. This option allows you to determine how many digits to the right of the decimal point you wish to use in comparing field values.

Skip Clob Blob: False by default. Any BLOB/CLOB field values will be included when comparing source and target tables. This option is unchecked by default,  but comparing BLOB/CLOB values can be very time consuming so you may want to change the setting.

Skip Array of Bytes: Unchecked by default. Any Byte Array  field values will be included when comparing source and target tables.

WHERE Condition Source Table: Provides a way to specify a condition to narrow the number of rows compared and reported. Click in the value area to open the Expression Generator and write the WHERE condition.

WHERE Condition Target Table: Provides a way to specify a condition to narrow the number of rows compared and reported. Click in the value area to open the Expression Generator and write the WHERE condition.

ORDER BY Clause Source Table: The default ORDER BY clause in the Verifier is to order by primary key. However, this can be problematic when the primary key is a string because database providers can order strings differently. This field allows you to override the default ORDER BY clause by typing a single column name, or a list of comma-separated column names. Click in the value area to open the Expression Generator and write the ORDER BY clause.

ORDER BY Clause Target Table: The default ORDER BY clause in the Verifier is to order by primary key. However, this can be problematic when the primary key is a string because database providers can order strings differently. This field allows you to override the default ORDER BY clause by typing a single column name, or a list of comma-separated column names. Click in the value area to open the Expression Generator and write the ORDER BY clause.

Operation Types to Reconcile: All operation types (Inserts, Deletes, Updates) are selected by default. Click in the values field to select/deselect operation types to include in the verification.

Opening the Replication Properties Dialog

In the Metadata Explorer, select the replication. From the right mouse button menu, choose Replication Properties.

In the Replication Browser or Replication Monitor, select the replication. From the right mouse button menu, choose Replication Properties.