Skip to main content

Summary

Attempting to list the contents of a federated, direct-persistent Naming Service can result in either an “Object Not Found” exception, or unexpected contents.

Environment

Orbix 6.3
All Supported Operating Systems

Question/Problem Description

This behaviour can be the result of two separate issues:
- The remote entry was bound incorrectly to a local Naming Service
- The remote entry was read incorrectly from the Naming Service

Binding entries:
By default, the Naming Service may not distinguish between local and remote contexts when binding. This can result in contexts being bound and placed into the Naming Service's database as local Contexts.

Reading Entries:
Federated Naming Service entries reside on the remote Naming Service. At their root, they are bound to a local context, which is a remote object reference. To access the federated entries Orbix must contact the remote Naming Service.

The “client_binding_list” is a list of client-side, request-level interceptors. One of these interceptors is the “POA_Coloc”, which is used by Orbix to avoid remote calls on local references.

In the case of Naming Contexts, the POA_Coloc interceptor mistakenly processes the remote Naming Context as local, resulting in Orbix reading the local Naming Service instead of calling the remote Naming Service.

Clarifying Information

Error Message
Defect/Enhancement Number
Cause Orbix does not distinguish between remote and local direct persistent contexts for the Naming Service by default.
Resolution

To ensure Orbix distinguishes between local and remote Naming Service entries when binding, the configuration variable “plugins:naming:check_ior_hostname” is provided. Setting this to “true” resolves problems binding remote contexts.

plugins:naming:check_ior_hostname = “true”;

Additionally, the POA_Coloc can be removed from the client’s binding list to prevent it from processing remote Naming Contexts as local.

Default client binding list:
binding:client_binding_list = ["ORBMON GIOP EGMIOP", "GIOP EGMIOP", "OTS TLS_Coloc POA_Coloc", "TLS_Coloc POA_Coloc", "OTS POA_Coloc", "POA_Coloc", "ORBMON CSI OTS BiDir_GIOP", "CSI OTS BiDir_GIOP", "ORBMON OTS BiDir_GIOP", "OTS BiDir_GIOP", "ORBMON CSI BiDir_GIOP", "CSI BiDir_GIOP", "ORBMON BiDir_GIOP", "BiDir_GIOP", "ORBMON GIOP SHMIOP", "GIOP SHMIOP", "ORBMON CSI OTS GIOP IIOP_TLS", "CSI OTS GIOP IIOP_TLS", "ORBMON OTS GIOP IIOP_TLS", "OTS GIOP IIOP_TLS", "ORBMON CSI GIOP IIOP_TLS", "CSI GIOP IIOP_TLS", "ORBMON GIOP IIOP_TLS", "GIOP IIOP_TLS", "ORBMON CSI OTS GIOP IIOP", "CSI OTS GIOP IIOP", "ORBMON OTS GIOP IIOP", "OTS GIOP IIOP", "ORBMON CSI GIOP IIOP", "CSI GIOP IIOP", "ORBMON GIOP IIOP", "GIOP IIOP"];

Updated client binding list:
binding:client_binding_list = ["ORBMON GIOP EGMIOP", "GIOP EGMIOP", "OTS TLS_Coloc", "TLS_Coloc", "OTS", "ORBMON CSI OTS BiDir_GIOP", "CSI OTS BiDir_GIOP", "ORBMON OTS BiDir_GIOP", "OTS BiDir_GIOP", "ORBMON CSI BiDir_GIOP", "CSI BiDir_GIOP", "ORBMON BiDir_GIOP", "BiDir_GIOP", "ORBMON GIOP SHMIOP", "GIOP SHMIOP", "ORBMON CSI OTS GIOP IIOP_TLS", "CSI OTS GIOP IIOP_TLS", "ORBMON OTS GIOP IIOP_TLS", "OTS GIOP IIOP_TLS", "ORBMON CSI GIOP IIOP_TLS", "CSI GIOP IIOP_TLS", "ORBMON GIOP IIOP_TLS", "GIOP IIOP_TLS", "ORBMON CSI OTS GIOP IIOP", "CSI OTS GIOP IIOP", "ORBMON OTS GIOP IIOP", "OTS GIOP IIOP", "ORBMON CSI GIOP IIOP", "CSI GIOP IIOP", "ORBMON GIOP IIOP", "GIOP IIOP"];

Updating the configuration variables “plugins:naming:check_ior_hostname” and “binding:client_binding_list” can prevent federated, direct-persistent Naming Services from displaying incorrect data.

Workaround Use a Naming Service that is not direct persistent. If either the remote or local Naming Service is registered with the Locator and Node Daemon the Naming Service will recognise this as a indirect persistent POA and resolve the Context rather than assuming it is local.
Notes

Removing the POA_Coloc will result in calls going through the network loop back adapter while the Naming Service is being traversed rather than making a local invocation. 

See related article:

Use of POA_Coloc Interceptor
 

Attachment

#Orbix
#KnowledgeDocs