The Object Manager provides the core functionality of the GPO system - even more so than the base GPO object itself.

Object Identity

This is because the most fundamental part of any object system is the maintenance and guarantee of unique object identity.

The Object Manager provides the identity to new objects, and can be given an object identity to retrieve the object itself.

Object Index

At the heart of the Object Manager is the Object Index. This is the internal structure that matches an Object ID (OID) with an external address and any internal object. The Object Manager uses the Object Index to ensure that only a single instance of a specific persistent object is accessed in the same java virtual machine.

The Object Index maps an OID to the current external representation and any active instantiation.

All object references are resolved via the Object Index. No GPO object directly references any other in memory, they always use references that are resolved via the Object Index.

This mechanism also allows for objects to be garbage collected more easily. Since only direct user references, or references from the object cache, will prevent an object from being removed from memory.

Transaction Management

The Object Manager is connected to the underlying storage mechanism, and therefore provides an interface to the underlying transaction system. The Object Manager registers with the storage system so that it is able to write critical information - such as Object Index updates - as part of the commit cycle.

Client-Server

The Object Manager also handles the migration of objects within multi-user systems, and provides the support for maximum isolation levels.