11.1.4 Callback Object Models Supported
Oracle Tuxedo CORBA supports four kinds of callback objects and provides wrappers for the three that are most common. These objects correspond to three combinations of POA policies. The POA policies control both the types of objects and the types of object references that are possible.
The POA policies that are applicable are:
- The LifeSpanPolicy, which controls how long an object reference is valid.
- The IdAssignmentPolicy, which controls who assigns the
ObjectId
—the user or the system.
These objects are explained primarily in terms of their behavioral characteristics rather than in details about how the ORB and the POA handle them. Those details are discussed in the next sections, using either direct ORB and POA calls (which requires a little extra knowledge of CORBA servers) or using the OracleWrapper Callbacks interface, which hides the ORB and POA calls (for users who do not care about the details).
- Transient/SystemId—object references are valid only for
the life of the client process. The
ObjectId
is not assigned by the client application, but is a unique value assigned by the system. This type of object is useful for invocations that a client wants to receive only until the client terminates. (The corresponding POA LifeSpanPolicy value isTRANSIENT
and the IdAssignmentPolicy isSYSTEM_ID
.) -
Persistent/SystemId —object references are valid across multiple activations. The
ObjectId
is not assigned by the client application, but is a unique value assigned by the system. This type of object and object reference is useful when the client goes up and down over a period of time. When the client is up, it can receive callback objects on that particular object reference.Typically, the client will create the object reference once, save it in its own permanent storage area, and reactivate the servant for that object every time it comes up. If used with an Oracle Tuxedo CORBA Notification Service application, for example, these are callbacks that correspond to the concept of a persistent subscription; that is, the Notification Service remembers the callback reference and delivers events any time the client is up and declares that it is again ready to receive events. This allows notification service subscriptions to survive client failures or offline-time. (The corresponding POA policy values are
PERSISTENT
andSYSTEM_ID
.) - Persistent/UserId—this is the same as Persistent/SystemId
with the exception that the
ObjectId
has to be assigned by the client application. Such anObjectId
might be, for example, a database key meaningful only to the client. (The corresponding POA policy values arePERSISTENT
andUSER_ID
.)
Note:
The Transient/UserId policy combination is not considered particularly important. It is possible for users to provide for themselves by using the POA in a manner analogous to either of the persistent cases, but the Oracle Tuxedo wrappers do not provide special help to do so. For Oracle Tuxedo CORBA native joint client/servers, neither of the Persistent policies is supported, only the Transient policy.Parent topic: Introduction