db4o 2.5

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
 

Constructor Detail

Defragment

public Defragment()
the main method is the only entry point
Method Detail

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.

db4o 2.5