• Welcome
  • 1. First Glance
    • 1.1. The db4o engine...
    • 1.2. Installation
    • 1.3. Object Manager
      • 1.3.1. Installation
      • 1.3.2. Running
        • 1.3.2.1. Windows IKVM
        • 1.3.2.2. Windows no Java VM
        • 1.3.2.3. Linux
    • 1.4. API
  • 2. First Steps
    • 2.1. Storing objects
    • 2.2. Retrieving objects
    • 2.3. Updating objects
    • 2.4. Deleting objects
    • 2.5. Conclusion
    • 2.6. Full source
  • 3. Query API
    • 3.1. Simple queries
    • 3.2. Advanced queries
    • 3.3. Conclusion
    • 3.4. Full source
  • 4. Structured objects
    • 4.1. Storing structured objects
    • 4.2. Retrieving structured objects
      • 4.2.1. QBE
      • 4.2.2. Query API
    • 4.3. Updating structured objects
      • 4.3.1. Update depth
    • 4.4. Deleting structured objects
      • 4.4.1. Recursive deletion
      • 4.4.2. Recursive deletion revisited
    • 4.5. Conclusion
    • 4.6. Full source
  • 5. Collections and Arrays
    • 5.1. Storing
    • 5.2. Retrieving
      • 5.2.1. QBE
      • 5.2.2. Query API
    • 5.3. Updating and deleting
    • 5.4. Conclusion
    • 5.5. Full source
  • 6. Inheritance
    • 6.1. Storing
    • 6.2. Retrieving
    • 6.3. Updating and deleting
    • 6.4. Conclusion
    • 6.5. Full source
  • 7. Deep graphs
    • 7.1. Storing and updating
    • 7.2. Retrieving
      • 7.2.1. Activation depth
    • 7.3. Conclusion
    • 7.4. Full source
  • 8. Transactions
    • 8.1. Commit and rollback
    • 8.2. Refresh live objects
    • 8.3. Conclusion
    • 8.4. Full source
  • 9. Client/Server
    • 9.1. Embedded server
    • 9.2. Networking
    • 9.3. Out-of-band signalling
    • 9.4. Putting it all together: a simple but complete db4o server
    • 9.5. Conclusion
    • 9.6. Full source
  • 10. Evaluations
    • 10.1. Evaluation API
    • 10.2. Example
    • 10.3. Drawbacks
    • 10.4. Conclusion
    • 10.5. Full source
  • 11. Constructors
    • 11.1. Instantiating objects
      • 11.1.1. Using a constructor
      • 11.1.2. Bypassing the constructor
      • 11.1.3. Using a translator
    • 11.2. Configuration
    • 11.3. Troubleshooting
    • 11.4. Examples
  • 12. Translators
    • 12.1. An example class
      • 12.1.1. Using the constructor
      • 12.1.2. Bypassing the constructor
    • 12.2. The Translator API
      • 12.2.1. ObjectTranslator
      • 12.2.2. ObjectConstructor
    • 12.3. A translator implementation
    • 12.4. Conclusion
    • 12.5. Full source
  • 13. Configuration
    • 13.1. Scope
    • 13.2. Calling Methods
    • 13.3. Further reading
  • 14. Indexes
  • 15. IDs
    • 15.1. Internal IDs
    • 15.2. Unique Universal IDs (UUIDs)
  • 16. Callbacks
  • 17. Classloader issues
    • 17.1. Classloader basics
    • 17.2. Configuration
    • 17.3. Typical Environments
      • 17.3.1. Servlet container
      • 17.3.2. Eclipse
    • 17.4. Running without classes
  • 18. Servlets
  • 19. Encryption
  • 20. Refactoring and "Schema Evolution"
    • 20.1. Introduction
    • 20.2. What db4objects does today automatically or easily
    • 20.3. What is not yet automated
  • 21. Tuning
    • 21.1. Discarding Free Space
    • 21.2. Calling constructors
    • 21.3. Turning Off Weak References
    • 21.4. Defragment
    • 21.5. No Shutdown Thread
    • 21.6. No callbacks
    • 21.7. No schema changes
    • 21.8. No lock file thread
    • 21.9. No test instances
    • 21.10. Increasing the maximum database file size
  • 22. Maintenance
    • 22.1. Defragment
    • 22.2. Backup
  • 23. Replication
    • 23.1. Under the Hood
    • 23.2. Replicating Existing Data Files
  • 24. Semaphores
    • 24.1. Locking objects
    • 24.2. Ensuring Singletons
    • 24.3. Limiting the number of users
    • 24.4. Controlling log-in information
  • 25. Messaging
  • 26. .NET Specific Notes
    • 26.1. Enums
    • 26.2. Delegates and Events
  • 27. Data Binding
  • 28. Object Manager
    • 28.1. Introduction
    • 28.2. Object Manager Tour
      • 28.2.1. Generic reflector versus the JDK reflector
      • 28.2.2. Querying for objects
    • 28.3. Known bugs and limitations
  • 29. RegressionTests
    • 29.1. The built-in db4o regression tests
    • 29.2. Running the regression tests
    • 29.3. Switching individual tests on or off
  • 30. License
    • 30.1. General Public License (GPL)
    • 30.2. Commercial License
  • 31. Contacting db4objects Inc.