Next: Example
Up: POA
Previous: Architecture
We have already mentioned the policies that control various
aspects of POA behaviour. POA policies do not change over the POA's
lifetime. When creating a new POA as a child of an existing POA,
policies are not inherited from the parent, but instead each POA is
assigned a set of default policies if not explicitely defined.
- Thread Policy
-
- ORB_CTRL_MODEL
- (default)
Invocations are performed as scheduled by the ORB. Potentially, many
upcalls are perfomed simultaneously.
- SINGLE_THREAD_MODEL
-
Invocations are serialized. At most a single upcall is performed at
any time.
Non-reentrant servants should only be activated in POAs with the
SINGLE_THREAD_MODEL policy.
As the current version of MICO is not multithreaded, this policy is
not yet evaluated.
- Lifespan Policy
-
- TRANSIENT
- (default)
Objects activated in this POA cannot outlive the server process.
- PERSISTENT
-
Objects can outlive the server process
- Id Uniqueness Policy
-
- UNIQUE_ID
- (default)
Servants can be activated at most once in this POA.
- MULTIPLE_ID
-
Servants can be activated more than once in this POA and can therefore
serve more than one object reference.
- Id Assignment Policy
-
- SYSTEM_ID
- (default)
Object Ids are assigned by the POA upon object activation.
- USER_ID
-
Upon activation, each servant must be provided with a unique Id by the
user.
- Servant Retention Policy
-
- RETAIN
- (default)
The POA maintains a map of active servants (the Active Object Map).
- NON_RETAIN
-
The POA does not maintain an Active Object Map.
- Request Processing Policy
-
- USE_ACTIVE_OBJECT_MAP_ONLY
- (default)
To process an incoming request, the object reference is looked up in
the Active Object Map only. If no active servant serving the reference
is found, the request is rejected, and an OBJECT_NOT_EXIST
exception is returned.
- USE_DEFAULT_SERVANT
-
The object reference is looked up in the Active Object Map first. If
no active servant is found to serve the reference, the request is
delegated to a default servant.
- USE_SERVANT_MANAGER
-
The object reference is looked up in the Active Object Map first. If
no active servant is found to serve the reference, a servant manager
is invoked to locate or incarnate an appropriate servant.
- Implicit Activation Policy
-
- IMPLICIT_ACTIVATION
-
If an inactive servant is used in a context that requires the servant
to be active, the servant is implicitely activated.
- NO_IMPLICIT_ACTIVATION
- (default)
It is an error to use an inactive servant in a context that requires
an active servant.
The Root POA has the ORB_CTRL_MODEL, TRANSIENT,
UNIQUE_ID, SYSTEM_ID, RETAIN,
USE_ACTIVE_OBJECT_MAP_ONLY and
IMPLICIT_ACTIVATION policies.
Next: Example
Up: POA
Previous: Architecture
MICO
Tue Nov 10 11:04:45 CET 1998