How to do an Offline Database Backup?


These are questions asked in the context of the proposed architecture described in the forum thread titled, "Sample JDO Architecture for Follow Up Questions".


I desire offline backups.  I must close all connections, wait for current database activity to stop, and prevent new connections until the backup is complete.  How can I guarantee that a database is no longer being used?  I think I can do so by trying to call PersistenceManagerFactory.close(), and keep trying, until it no longer throws any JDOUserExceptions.


What is the proper way to do an offline database datastore file backup which guarantees the file will not be corrupted?


You should close the PersistenceManagerFactory (not just the PersistenceManager instances) and avoid opening another PersistenceManagerFactory for that database until the backup completes.

ObjectDB Support