Architecture Within Application JVM
JDO supports a variety of architectures within the application’s
JVM context. Your application can have one or multiple PersistenceManagers accessing the same or
different datastores concurrently. Each PersistenceManager has its own persistent
instance cache and its own associated Transaction instance, which manages a distinct
transactional context. A JDO implementation may also maintain a shared
cache of instances (not visible to applications) to optimize the
application’s access of data in the datastore.
Single PersistenceManager
The simplest JDO application architecture has a single PersistenceManager, as illustrated in Figure 3-1. A PersistenceManager is the primary interface
used by the application to access persistent services. It is an
interface that is implemented by an instance of the JDO
implementation. The persistent instances are managed in a
cache, where they are used directly by the
application. The JDO implementation manages the persistent instances
both by using application control (e.g., using PersistenceManager and Query methods), and transparently (when the
application accesses a field that is not loaded). The cache contains
other artifacts, used to track the identity and
state of the instances, but these artifacts are not visible to the
application. Whenever we mention the cache, we
are referring to the cache of persistent instances.
Figure 3-1. Application using a single PersistenceManager to access a datastore
The application ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access