Bookshelf Home | Contents | Index | PDF |
Siebel Remote and Replication Manager Administration Guide > Architecture of Siebel Remote > How Siebel Remote Synchronizes Local Databases > How Siebel Remote Resolves Conflicts in Data It SynchronizesData divergence is a situation that occurs when the local databases on different remote clients become less synchronized. Data divergence can occur if Siebel Remote does not detect or resolve these complex modifications. Siebel Remote uses conflict detection and resolution logic to prevent data divergence. To support team selling and field service, Siebel Remote allows different users to access the same data. This situation creates the possibility that two users might make conflicting modifications to the same data when they are disconnected from the Siebel Server. To automatically detect update conflicts, Siebel Remote compares transactions at the field level. It uses rules to resolve conflicts for the following modifications:
More complex conflicts involve deleting and adding database rows. For example:
Update ConflictAn update conflict is a type of conflict that occurs if two users update the same data. For example, one user modifies the area code for a contact to 415 and another user modifies it to 408. Table 6 describes values you can use in the System Conflict Resolution field of the Remote System Preferences form to specify how to resolve conflicts. For more information, see Setting Preferences for Visibility, Logging, Timestamps, and Conflict Resolution. If Siebel Remote rejects an update from a remote client, then the user can determine if an update conflict occurred. If the conflict resolution is not correct, then the user can manually reapply the modification to the local database. Siebel Remote sends it again to the Siebel Server during the next synchronization when the remote client sends database modifications to the server. If users have not made any other modifications to the data value since the last synchronization, then the modification does not conflict and it succeeds on the server. Siebel Remote processes transactions in the order that the user synchronizes them. For the purposes of conflict resolution, any successful database update that a remote client sends to the Siebel Server becomes a server transaction. Insert ConflictAn insert conflict is a type of conflict that occurs if a user adds a database row to a local database or to the server database, and this added or inserted transaction duplicates a new entry that exists in another database that resides elsewhere that the Siebel Server has not yet processed. If the user primary key of a new row matches the user primary key of an existing row, then Siebel Remote determines that an insert or duplicate conflict exists. Siebel Remote cannot determine if the transaction is a true duplicate or simply an erroneous use of the same identifier for two different data entities. Siebel Remote cannot ignore the duplicate transaction. Instead, it adds the new row and sets the CONFLICT_ID column to the ROW_ID of the record. This configuration indicates that the row is a duplicate and makes sure the value for the _U1 index is unique. To determine if an insert conflict, also known as a duplicate conflict, has occurred, the user can examine the Remote Status view and determine if duplicates exist in a view that contains Siebel CRM data, such as the Accounts view or the Contacts view. For example, the user might modify the user primary key and resend the update. When the user resolves the conflict, Siebel Remote captures the local database update so that it can resynchronize this update with the Siebel Server during the next synchronization. The user must monitor and resolve any conflict that the Siebel Server creates. The conflict is visible as duplicate records in a view that contains Siebel CRM data, such as the Accounts view or the Contacts view. To resolve an insert conflict, the user can use the Merge Record feature to merge the duplicate records. This feature is available only after the user chooses more than two records in the applet. To use it, the user chooses the Edit menu, and then the Merge Records menu item. The user can also modify the user keys of one of the duplicate records to resolve the conflict. The user must resolve conflicts before you can use EIM to merge records. If the user does not resolve conflicts, then the conflict flag in the interface table columns is not accurate. The local database treats a null value as a unique value. If the user leaves a key field null for two or more records, then the local database allows duplicates. Delete ConflictA delete conflict is a type of conflict that occurs if a user deletes a row in the local database, and another user updates this same row in a different database. If Siebel Remote encounters a delete transaction, then it uses the following rule whether or not the transaction is in conflict with another update: If one transaction updates a database row and another transaction deletes this row, then Siebel Remote ignores the update and deletes the row. The Delete Always Wins rule supersedes the System Conflict Resolution field of the Remote System Preferences form. If the user synchronizes, and if the Merger Friendly Notification system preference is TRUE, then Siebel Remote displays deleted records in the Session Actions list of the Remote Status view of the User Preferences screen. For more information, see Process of Configuring System Preferences for the Siebel Server. Merge ConflictA merge conflict is a type of conflict that occurs if Siebel Remote merges records separately on the remote client and on the Siebel Server. The following example illustrates this problem:
To avoid this problem, it is recommended that users do not merge data on remote clients. |
Siebel Remote and Replication Manager Administration Guide | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Legal Notices. | |