Problem:
- Product: VisiBroker for C
- Version: 6.5 and above
- Component: Location Service
- Platform/OS Version: All
- Tested Versions: 7.0 & 8.0
A Java server is set with BY_INSTANCE policy and uses a ObjectId that contains "/" characters. When the VisiBroker for C client is requesting the osagent for information about that server using ObjLocation::Agent_var::all_available_descs() API, a structure below is received:
struct Desc
{
::CORBA::Boolean activable;
::CORBA::String_var agent_hostname;
::CORBA::Object_var ref;
IIOP::ProfileBody iiop_locator;
::CORBA::String_var repository_id;
::CORBA::String_var instance_name;
};
In this structure, the entries "repository_id" and "instance_name" are empty for Java Servers.
For all other servers (implemented in C ) these fields are correctly filled.
Resolution:
An enhancement CR 9978 has been raised to document this issue. One workaround for this issue is to add to slashes(//) instead of one in the ObjectIds.
CORBA specs states the usage of "/" as a delimiter in the URL, or as the separator in the Naming Service and to mention hierarchy in the POA name. Hence, VisiBroker does not encourage using the slash as a part of ObjectId.
This issue occurs only when the client is VisiBroker for C implementation of all_available_descs() API. It does not occurs for the VisiBroker Java client.
#ObjectId
#VisiBroker
#LocationService
#Security