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 | 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)