All Manuals > Developing Component Software with CORBA® > 7 The LispWorks ORB

7.3 Configuring a name service and an interface repository

The LispWorks ORB is not supplied with an interface repository or a naming service, but it is possible to configure the ORB to present these services in response to calls of op:list_initial_services and op:resolve_initial_references. Configuration can either be via initial references or stored persistently.

7.3.1 Configuring via initial references

The ORB initargs -ORBInitRef and -ORBDefaultInitRef are processed as defined by the CORBA specification, available from OMG.

For example, with an application lwcorba:

lwcorba -ORBInitRef NameService=corbaloc::www.wherever.com:80/Dev/NameService

will configure the name service to contact the machine specified by the corbaloc URL.

7.3.2 Persistent configuration

The function corba:set-pluggable-module-details can be used for this purpose. For example:

(corba:set-pluggable-module-details "InterfaceRepository"
       :ior-string "IOR:000000000000002149444c...")
(corba:set-pluggable-module-details "NameService" 
       :ior-string "IOR:000000000000002149444c...")

would direct the ORB to use the given IOR-described CORBA object as an interface repository or name service, respectively. Values set in this manner are persistent. The code:

(corba:get-pluggable-module-details orb "InterfaceRepository" 
      :ior-string)

returns a list of two values. The first is the object reference of the given service if it is contactable (nil if it is not). The second is the value that has been set using corba:set-pluggable-module-details. Note the the standardized function op:resolve_initial_references should be used in application code to obtain the reference, not corba:get-pluggable-module-details.

Type information corresponding to IDL parsed by the IDL compiler is not added to the interface repository until the information is needed in response to a call to op:get_interface from a client.


Developing Component Software with CORBA® - 01 Dec 2021 19:38:37