Product: OpenFusion Naming Service
Version: ALL
Description:
Problems connecting to VisiBroker Naming Service and OpenFusion Naming Service
Resolution:
ORBs are handling the object key in different ways.
The CORBA specification section 13.6.10.1 defines corbaloc URL's. The last part of the corbaloc URL ending with /NameService is defined as a stringified object key. It corresponds to the octet sequence in the object_key member of a GIOP Request or LocateRequest header and uses escape conventions to map away values that can not be part of the URL. The stringified object key will never be /NameService.
The ORB has to deal with the object key in order to map it to that value. As part of the distribution we supply the iorDecoder utility that allows you to see the object key which makes up part of the corbaloc key. The iorDecoder is located in the bin directory of the installation.
Use this to decode the IOR of the Visibroker Name Service as follows:
iorDecoder -corbaloc -ior IOR:000000 ....
The above will return:
corbaloc:iiop:10.1.0.139:39204/PMC/CONTEXT_PO ANameService2
The object key is actually /PMC/CONTEXT_POANameService2
Visibroker has an internal mechanism which takes this object key and translates it to /NameService. This is a non standard feature.
OpenFusion does this mapping of the ObjectKey in a more visible way by setting the jacorb.orb.objectKeyMap.NameService key. Passing this at command line via the ORBInitRef parameter will override Visibroker's internal mechanism for mapping the objectkey to /NameService.
The OpenFusion Naming Service needs to be configured through the following steps to have a static object key:
- In the jacorb.properties file comment out the property jacorb.orb.objectKeyMap.NameService=
- Bring up the OpenFusion Administration Manager. Choose the Name Service. Right click on the service and choose restore to remove the persistent data from the service
- On the Corba Tag there is an option called Server Process ID. Right click on this box and choose New UUID from the menu. This will associate an id with the Name Service. This id is used to identify every object that belongs to this process
- On the Persistence tag there is an option called Server Persistent ID. Again you need to right click on this box and choose new UUID from the menu. This id is used to indicate which server the persistent data belong to
- As a final step you need to go to the Java Tag of the service. In the JVM flags option you need to pass in the following: -Djacorb.orb.objectKeyMap.NameService=file://
You should now be able to use the corbaloc with both our Naming Service and the Visibroker Naming Service in the way you require. If you are not able to use the Administration Manager to set the UUID you can also use the command line tool adminMgrTool.
You can get a value for the UUID by using the following command:
run com.prismt.util.UUID
You then need to use the command below to add the value into the XML file. The two UUID values should be different.
adminMgrTool -ap
#KnowledgeDocs
#OpenFusion