Bionic Buffalo Tech Note #50: Effects of Portable Object Adapter Policies
object map. This determines how the POA associates incoming requests (invocations on the methods
of specified objects) with servants.
ServantRetentionPolicyValue
Interpretation
Min
RETAIN
(default) the
POA
maintains an active object map, associating
ObjectId
values with servants; the map can be used to
associate a given
ObjectId
with a specific servant
yes
NON_RETAIN
the
POA
does not maintain an active object map; to find the
servant for a given
ObjectId
, the
POA
either uses a default
servant (
RequestProcessingPolicy =
USE_DEFAULT_SERVANT
), or lets a
ServantManager
locate the servant (R
equestProcessingPolicy =
USE_SERVANT_MANAGER
)
no
RequestProcessingPolicy
The RequestProcessingPolicy value specifies how requests are handled by the POA. The possible
values are:
RequestProcessingPolicyValue
Interpretation
Min
USE_ACTIVE_OBJECT_MAP_ONLY
(default) the
POA
looks for servants in the active
object map
yes
USE_DEFAULT_SERVANT
the
POA
looks for servants in the active object map (if
any); if not found, then the
POA
then forwards the
request to the default servant
no
USE_SERVANT_MANAGER
the
POA
looks for servants in the active object map (if
any); if not found, then the
POA
has the
ServantManager
find the servant
no
These procedures are explained in more detail, below.
ImplicitActivationPolicy
The
ImplicitActivationPolicy
value specifies whether or not implicit activation of servants
is supported by the
POA
. Servants may be activated explicitly using several
POA
operations, or (if
implicit activation is allowed) they may be implicitly activated. There is a
POA
mapping operation,
servant_to_reference()
, which takes a servant and returns an object reference. In implicit
activation, if the servant isn't found in the active object map, the
POA
will automatically create a new
object id and reference. This (of course) requires that
IdAssignmentPolicy = SYSTEM_ID
(so
Page 4 of 8