Welcome
Download Contents
1. First Glance
1.1. The db4o engine...
1.2. Installation
1.3. db4o Object Manager
1.4. API Overview
2. First Steps
2.1. Opening the database
2.2. Storing objects
2.3. Retrieving objects
2.4. Updating objects
2.5. Deleting objects
2.6. Conclusion
2.7. Full source
3. Querying
3.1. Query by Example (QBE)
3.2. Native Queries
3.2.1. Concept
3.2.2. Principle
3.2.3. Simple Example
3.2.4. Advanced Example
3.2.5. Arbitrary Code
3.2.6. Native Query Performance
3.2.7. Full source
3.3. SODA Query API
3.3.1. Simple queries
3.3.2. Advanced queries
3.3.3. Conclusion
3.3.4. Full source
4. Structured objects
4.1. Storing structured objects
4.2. Retrieving structured objects
4.2.1. QBE
4.2.2. Native Queries
4.2.3. SODA 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. Native Queries
5.2.3. 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. SODA 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. A 'NotStorable' 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. Native Query Optimization
22.1. Optimization at query execution time
22.2. Instrumenting class files
22.2.1. Programmatic Instrumentation
22.2.2. Ant Instrumentation
22.3. Instrumenting classes at load time
22.4. Monitoring optimization
23. Maintenance
23.1. Defragment
23.2. Backup
24. Replication
24.1. Under the Hood
24.2. Replicating Existing Data Files
25. Semaphores
25.1. Locking objects
25.2. Ensuring Singletons
25.3. Limiting the number of users
25.4. Controlling log-in information
26. Messaging
27. Object Manager
27.1. Installation
27.1.1. Running
27.1.1.1. Windows IKVM
27.1.1.2. Windows no Java VM
27.1.1.3. Linux
27.2. Object Manager Tour
27.2.1. Generic reflector versus the JDK reflector
27.2.2. Querying for objects
27.3. Known bugs and limitations
28. RegressionTests
28.1. The built-in db4o regression tests
28.2. Running the regression tests
28.3. Switching individual tests on or off
29. License
29.1. General Public License (GPL)
29.2. Commercial License
29.3. Bundled 3rd Party Licenses
30. Contacting db4objects Inc.