Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Listing of the conflict with the LIST CONFLICT command

To view the actual SQL and other details associated with of the transaction that is causing the conflict:

Panelnoformat
bgColorCCC
dbvrep> LIST CONFLICT

or by specifying the actual conflict id:

Panelnoformat
bgColorCCC
dbvrep> LIST CONFLICT 345

or by specifying last:

Panelnoformat
bgColorCCC
dbvrep> LIST CONFLICT LAST
Note

When no conflict data is shown with LIST CONFLICT

With two-way replication, multiple replication pairs or one-to-many replication, ensure the correct replication pair is chosen before issuing the LIST CONFLICT command. Please see CHOOSE REPLICATION

Viewing all the conflicts

It is also possible to obtain the conflict information directly from the Dbvisit Replicate repository. Logon to the apply APPLY (target database) as the Dbvisit Replicate schema owner (dbvrep) and query table:

Panelnoformat
bgColorCCC
DBRSAPPLY_CONFLICT_LOG
This lists all the conflicts encountered, including failing SQL.

The column SQL_TEXT contains the actual SQL statement that is run against the target database and includes the bind variables. 

LIST TRANSACTIONS

When viewing the conflicts, it may also be useful to view the opened uncommitted transactions on apply. This commands shows the Transaction ID of the SQL that is uncommitted on Apply. The transaction id is the hex value of the combined columns XIDUSN, XIDSLOT, XIDSQN from v$transaction on the target database. The Transaction ID is also set in columns MODULE and ACTION from V$SESSION on the target database.

The transaction list may also include internal non committed transaction not related to the replication. Please see http://support.dbvisit.com/entries/24825508-Committing-uncommitted-transactions for an example of how to use this command.

How much time is spend on the conflict

Conflicts will slow down the replication process as extra resources are required to process the conflicts

To determine how much time is spent retrying/waiting for conflicts to resolve, the following query can be used:

No Format
SQL> select sum (resolve_date-apply_date) from dbrsapply_conflict_log group by trunc(resolve_date);

The query will list the sum of all conflicts. The Query can be changed to group the time for each different conflict.