com.db4o.tools
Class Defragment
java.lang.Object
|
+--com.db4o.tools.Defragment
- public class Defragment
- extends java.lang.Object
defragments a database file.
This class is not part of db4o.jar. It is delivered as sourcecode
in the path ../com/db4o/tools/
Prerequites:
- The database file may not be in use.
- All stored classes need to be available.
- If you use yor own special Db4o translators, they need to be installed
before starting Defragment.
Performed tasks:
- Free filespace is removed.
- Deleted IDs are removed.
- Unavailable classes are removed.
- Unavailable class members are removed.
- Class indices are restored.
- Previous rename tasks are removed.
Backup:
Defragment creates a backup file with the name [filename].bak. If
a file with this name is already present, Defragment will not run
for safety reasons.
Recommendations:
- Keep the backup copy of your database file.
- Always back up your class files with your database files also.
You will need them to restore the full data of all objects from old database file versions.
- Scan the output log for "Class not available" messages.
You may also run this task programmatically on a scheduled basis.
In this case note that Defragment
modifies db4o
configuration parameters. You may have to restore them for your
application. See the private methods Defragment#configureDb4o() and
Db4o#restoreConfiguration() in the sourcecode of
com.db4o.tools.Defragment.java for the exact changed parameters that
may need to be restored.
Constructor Summary |
Defragment()
the main method is the only entry point |
Method Summary |
static void |
main(java.lang.String[] args)
the main method that runs Defragment. |
void |
run(java.lang.String filename,
boolean forceBackupDelete)
programmatic interface to run Defragment with a forced delete of a possible
old Defragment backup.
|
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Defragment
public Defragment()
- the main method is the only entry point
main
public static void main(java.lang.String[] args)
- the main method that runs Defragment.
- Parameters:
String[]
- a String array of length 1, with the name of the database
file as element 0.
run
public void run(java.lang.String filename,
boolean forceBackupDelete)
- programmatic interface to run Defragment with a forced delete of a possible
old Defragment backup.
This method is supplied for regression tests only. It is not recommended
to be used by application programmers.
- Parameters:
filename
- the database file.forceBackupDelete
- forces deleting an old backup. Not recommended.