Loading...
 

CX_DB_UTILITY::FindObjectsReferencingPosition2

CX_DB_UTILITY::FindObjectsReferencingPosition2

Description:

Find all objects with references to a specific location in the database.
Sense of the method: there is a local database corruption. If you know all objects that reference other objects in this area, you can - with data loss - repair the corruption.
FindObjectsReferencingPosition2 is an extension of CX_DB_UTILITY::FindObjectsReferencingPosition, with which very large segments can be analysed (disadvantage - takes longer).
With two additional parameters you can split the analysis of a segment - see code example

In the current version, the "interesting place" of a possible damage is a cluster.
An extension to an offset range is easy to implement. Then do it when it is really needed!

Code example:

Var(dbUtil) 
GetManager(OBJECT) Call(GetDBUtility) -> dbUtil 
// check 1st 1 000 000
"affectedObjects1.log" 2010 /* segment to check */ 5044 /* segment with damage */ 304 /* bad cluster */  0 100000 dbUtil Call(FindObjectsReferencingPosition2

// check 2nd 1 000 000

"affectedObjects2.log" 2010 /* segment to check */ 5044 /* segment with damage */ 304 /* bad cluster */  100000 2000000 dbUtil Call(FindObjectsReferencingPosition2

.  .  .
 

Stack
Stack Position Object type Brief description
Stack(In) Top OBJECT Database Utility
Top 1 INTEGER number m = cancel after the mth object
top 2 INTEGER NUmmer n = analyse after the nth object
top 3 INTEGER (Target) cluster
top 4 INTEGER (Target) segment
top 5 INTEGER Segment to be analysed
top 6 STRING the log file
Stack(Out) -

Function call: Call(FindObjectsReferencingPosition)