English

Bug: Synchronizing geodatabase replicas using ArcSDE for Oracle, DB2 or Informix in ArcGIS 9.3.1 SP2, or ArcGIS 10.0 can corrupt data or returns an error

Description


Note:
This issue has been resolved in ArcGIS 10 (Desktop, Engine, Server) Service Pack 1 and in an ArcSDE 9.3.1 Service Pack 2 General Update Patch. Please see the links in the Related Information section below.


Using geodatabase replication in the following ArcGIS configurations - ArcSDE 9.3.1 SP2 or ArcSDE 10 on Oracle, DB2, or Informix when using either direct connect or the application server - results in corrupt data or an error.

The corruption or error occurs when inserts are applied to a geodatabase through a replica synchronization. Inserts are applied in the following cases:
• The replica source provides inserts.
• The replica source provides updates to data that does not exist in the target replica. In this case the update will be applied as an insert.

When using Oracle, the following error message is returned:

"ORA-00001: unique constraint (LOCAL.A18_PK) violated"

This error message indicates that the synchronization is attempting to insert duplicate rowids.

In cases where the synchronization succeeds, objectids for the inserted features or rows can be invalid. Below are the cases:
• If the incorrectly assigned objectids happen to be unique within the geodatabase, the problems may not be encountered initially. However, the data loss described next may occur later on when the geodatabase uses one of these objectids for another new feature or row.
• If the incorrectly assigned objectids overlap with existing objectids, data may be lost where the inserted features overwrite the existing features.
Note:
This bug does NOT occur in the following situations:
• Using a release prior to 9.3.1 SP2 (9.3.1 SP1 and earlier).
• Using geodatabase replication with ArcSDE for SQL Server or ArcSDE for Postgres.
• Using simple one-way replication to non-versioned data or check-out/check-in replication where the data on the parent is not versioned.
• Using check-out/check-in replication where the data does not have globalids.


Note:
This issue is also encountered when using the data change's components from the geodatabase distributed object model to import inserts when the data includes globalids.


Note:
Corruption that has occurred in one geodatabase can be applied to a relative replica geodatabase through synchronize. In these cases, it is important to consider the relative replica geodatabases as well.

Cause

The synchronization incorrectly attempts to insert invalid objectids. The objectid values that are applied for inserts are unpredictable and are not obtained from the classes rowid generator.

Workaround

  • Download and install ArcGIS 10 Service Pack 1 (SP1). If geodatabase replication is being used and an upgrade is planned, make sure to upgrade to 10.0 SP1. If an upgrade has already been completed but any replica pairs have not yet been synchronized, make sure to apply SP1 before synchronizing.
    Note:
    A link to ArcGIS 10 Service Pack 1 is provided in the Related Information section.

  • Download and install the patch for ArcSDE 9.3.1 SP2. If geodatabase replication is being used and an upgrade to 9.3.1 SP2 is already planned, make sure to apply the patch after upgrading. If an upgrade has already been completed but replicas have not yet been synchronized, do not synchronize the replicas until after the patch has been applied.
    Note:
    A link to ArcSDE 9.3.1 Service Pack 2 General Update Patch is provided in the Related Information section.

  • If an upgrade to ArcGIS 10.0 or ArcGIS 9.3.1 SP2 has been completed and this bug is encountered, it is recommended to stop synchronizing replicas until after the patch or service pack has been installed. If it is suspected that corruption may have been introduced from synchronizing in ArcGIS 10.0 or ArcGIS 9.3.1 SP2, contact support to help identify these cases.

Related Information