Salesforce

IDXCHECK fails against the replication target database

« Go Back

Information

 
TitleIDXCHECK fails against the replication target database
URL NameIDXCHECK-fails-against-the-target-database
Article Number000176051
EnvironmentProduct: OpenEdge
Version: 10.x, 11.0 to 11.7.4, 12.0
OS: All supported platforms
Other: Replication
Question/Problem Description
IDXCHECK fails against a replication enabled target database with errors 915 8783
IDXCHECK does not fail against the replication enabled source database with the same Lock Table (-L) value
Steps to Reproduce
Clarifying Information
PROUTIL IDXCHECK is a supported utility to run against both a source and target replication enabled database.
 
Error MessageLock table overflow, increase -L on server (915)
SYSTEM ERROR: Index<index-num> (<owner-name>.<table-name>, <index-name>): couldn't find key <key> recid <DBKEY>. (8783)
Index check aborted. (2808)
Index check utility did not complete successfully (13630)
Defect NumberDefect PSC00350238 / OCTA-3440
Enhancement Number
Cause
Any user or utility connecting to a target database, apart from the Replication Agent under limited scenarios, is not expected to acquire record locks. IDXCHECK does not take into account the ERO state of the target database when it unlocks the database index object it is scanning, which leads to a Lock Table Overflow condition.
Resolution
Upgrade to OpenEdge 11.7.5, 12.1.0 or later, where IDXCHECK no longer acquires locks when run against an OpenEdge Replication target database.

It is advisable to first assure all updates from the source have been applied and stop replication processing before running IDXCHECK. Switch the current BUSY ai extent then use DSRUTIL -C apply extent to update the target with the transaction notes in locked extents: An online IDXCHECK may still report false errors about indexes or records because it runs without locks. This needs to be confirmed against the source database without -NL and with -lkwtmo for that specific table.index:
$   proutil <dbname> -C IDXCHECK  table <tablename> -lkwtmo 10 -Bp 32
Workaround
Run IDXCHECK with the no lock parameter (-NL) to prevent acquiring record locks during the index scan, to avoid the lock table overflow:

$   proutil <dbname> -C IDXCHECK all -NL -Bp 32 [online]
Notes
Keyword PhraseOER, IDXCHECK
Last Modified Date12/30/2020 8:10 AM

Powered by