Previous | Table of Contents | Next |
The algorithm above will allow a client ORB to successfully locate a server ORB, if possible, so that operations can be invoked
using DCE-CIOP. But unnecessary locate RPCs may be performed, and invoke RPCs may be performed when locate RPCs would be more
efficient. The optional location policy and endpoint ID position components can be used by the client ORB, if present in the
IOR profile, to optimize this algorithm.
16.6.4.1 Current location policy
The client ORB can decide whether to perform a locate RPC or an invoke RPC in step 3 based on the location policy of the current
IOR profile. If the current profile has a TAG_LOCATION_POLICY component with a value of LOCATE_NEVER, the client should perform
an invoke RPC. Otherwise, it should perform a locate RPC.
16.6.4.2 Original location policy
The client ORB can use the location policy of the original IOR profile as follows to determine whether it is necessary to
perform the location algorithm for a particular invocation:
• LOCATE_OBJECT or LOCATE_NEVER - A binding handle previously used successfully to invoke an operation on an object can be reused for all operations on the same object. The client only needs to perform the location algorithm once per object.
• LOCATE_OPERATION - A binding handle previously used successfully to invoke an operation on an object can be reused for that same operation on the same object. The client only needs to perform the location algorithm once per operation.
• LOCATE_ALWAYS - Binding handles should not be reused. The client needs to perform the location algorithm once per invocation.
16.6.4.3 Original Endpoint ID
If a component with TAG_ENDPOINT_ID_POSITION is present in the original IOR profile, the client ORB can reuse a binding handle
that was successfully used to perform an operation on another object with the same endpoint ID. The client only needs to perform
the location algorithm once per endpoint.
An endpoint ID position component should never be combined in the same profile with a location policy of LOCATE_OPERATION
or LOCATE_ALWAYS.