The JDO PersistenceManager is the primary interface for JDO-aware application components. It is the factory for the query interface and contains methods for managing the life cycle of persistent instances.
The JDO PersistenceManager interface is designed to support a variety of environments and data sources, from small footprint, real-time embedded systems to large enterprise application servers. It might be a layer on top of a standard Connector implementation such as JDBC or JMS, or itself include connection management and distributed transaction support.
J2EE Connector support is optional. If it is not supported by a JDO implementation, then a constructor for the JDO PersistenceManager or PersistenceManagerFactory is required.
There are three primary environments in which the JDO PersistenceManager is designed to work:
- Non-managed (non-application server): minimum function, single transaction, single JDO PersistenceManager where compactness is important.
- Non-managed but where extended features are desired: multiple PersistenceManager instances may support multiple data sources, XA coordinated transactions, or nested transactions.
- Managed: where the full range of capabilities of an application server is required.
A JDO PersistenceManager instance supports one transaction at a time and uses one connection to the underlying data source at a time. The JDO PersistenceManager instance might use multiple transactions serially, and might use multiple connections serially. Therefore, to support multiple concurrent connection-oriented data sources in an application, multiple JDO PersistenceManager instances are required.
More on the general topic: Java Data Objects (JDO)