A proxy with no endpoint or object adapter identifier (@adapterId
in stringified form) is called a well-known proxy. A well-known proxy consists of an object identity plus (optionally) proxy options such as -t (for two-way proxies), as described on Proxy and Endpoint Syntax. Well-known proxies are a form of indirect proxies.
For example:
Root # well-known proxy to Root object (two-way by default) Root -o # oneway proxy
When you invoke an operation on a well-known proxy, Ice locates the target object as follows:
- If collocation optimization is enabled (the default), Ice looks up the object identity in the Active Servant Map (ASM) of all object adapters associated with the same communicator as this well-known proxy. The servant locators and default servants registered with these object adapters are not consulted. If the object is found in one of these ASMs, Ice then sends requests to this object using collocation optimization. The holding state of the object adapter is ignored for this search and subsequent collocated dispatches to the servant.
- Otherwise, if Ice does not find this object identity in one of these local ASMs (or collocation optimization is disabled), and a locator is configured with the communicator:
- Ice looks up this object identity in its locator cache.
- If this lookup fails, Ice resolves this object identity using the locator.
- In case the preceding steps can't locate the target object or endpoints, the invocation fails with
NoEndpointException.