CX_DB_UTILITY::MoveFrameBatch
Description:
This method performs the same operation as MoveFrame, but with the difference that the objects are not loaded from a collection but from a file and therefore the process does not have to keep all objects in the address space throughout and can be continued at any time.
The file from which the objects are read must first be created using DumpCollection.
As with MoveFrame, the second parameter can be used to control the number of objects per transaction. 0 here also means that all objects are processed in one transaction. Because MoveFrameBatch can be continued after each completed transaction and a large transaction log slows down the process, you should not choose too high a value (1000 is OK). Before each transaction MoveFrameBatch writes additionally into the log file (Logger: cx.main - Level: INFO) which objects are touched in the current transaction, so that if the process is aborted or crashed, the process can be continued from the log file after the last completed transaction.
MoveFrameBatch also shows a progress window, but the remaining time estimation is currently very unreliable.
Code example:
Var(util)
GetManager(OBJECT) Call(GetDBUtility) -> util
objects "CX_SYSTEM_OUT\\objects.coll" util Call(DumpCollection)
"CX_SYSTEM_OUT\\objects.coll" 1000 0 util Call(MoveFrameBatch)
Stack | Position | Object type | Brief description |
---|---|---|---|
Stack(In) | Top | CX_DB_UTILITY | DB Utility |
Top 1 | INTEGER | Start object index (starting at 0) | |
top 2 | INTEGER | Objects per transaction | |
top 3 | STRING | Path to the file created by DumpCollection. | |
Stack(Out) | Top | - | - |
Function call: Call(MoveFrameBatch)