4.4 OXID Resolution Sequence

OXID resolution sequence

Figure 8: OXID resolution sequence

There is no requirement for the client to receive an OBJREF via one of the object activation interfaces: IActivation and IRemoteSCMActivator. However, if the client receives an OBJREF via some other mechanism, the OBJREF does not contain sufficient information to make ORPC calls to the object exporter. In particular, the RPC endpoint information for the object exporter is obtainable only through the IObjectExporter::ResolveOxid method or the IObjectExporter::ResolveOxid2 method.

This example shows a sequence for a client that has received an OBJREF via some undefined mechanism and needs to retrieve the RPC endpoint for the object exporter.

SERVERALIVE_REQ: Represents one or more RPC calls to the IObjectExporter::ServerAlive method or the IObjectExporter::ServerAlive2 method to determine server aliveness and suitable protocols. The server addresses used by the client were contained within the saResAddr field of OBJREF_STANDARD contained in the OBJREF.

RESOLVEOXID_REQ: An RPC call to the IObjectExporter::ResolveOxid method or the IObjectExporter::ResolveOxid2 method on the object resolver to retrieve the RPC binding information for the object exporter.

ORPC_REQ: An ORPC call to the object exporter on the interface identified by the IPID.

REMREL_REQ: An ORPC call to the IRemUnknown::RemRelease method on the Remote Unknown of the object exporter containing the existing object reference.