|
REQUIREMENT protocol.corba.NameService |
| Type | NEW |
| Priority | HIGH |
| Status | CLOSED |
| Topic | Multiple xmlBlaster server instances can register themselves in a CORBA NameService | ||||||||||||||||||||||||||||
|
Des cription |
Clients can lookup an xmlBlaster server with a CORBA NameService. The xmlBlaster servers register themselves in a hierarchical manner in the NameService as shown in the following illustration:
In this example there are three xmlBlaster server running which have registered themselves under their cluster.node.id names heron, avalon and frodo. Clients can query the root context xmlBlaster.MOM to choose a server they want to connect to. When a server shuts down it removes its NameService entry. If a server crashes (e.g. by kill -9) it can't remove the NameService entry, but on startup it will overwrite the previous setting. |
||||||||||||||||||||||||||||
|
Example JAVA |
Here we show an example which plays with NameService entries, please start all instances in a separate DOS-box or xterm. We assume that you have started a NameService and the IOR of the NameService is dumped to /tmp/ns.ior, here are examples how to start the JacORB NameService (delivered with the xmlBlaster distribution) or the ORBIX NameService (see http://www.iona.com): # Start the JacORB NameService # (the port 7608 is looked for automatically by xmlBlaster server): jaco -DOAPort=7608 org.jacorb.naming.NameServer /tmp/ns.ior # The ORBIX NameService: /opt/orbix/etc/bin> start_XX_services # query the IOR (for ORBIX only) itadmin % ns resolve IOR:010000002800000049... # Put this IOR into /tmp/ns.ior Now we are ready to start some servers and a client. We have set -trace[corba] true to get more logging output from the CORBA plugin, further we have set -bootstrapPort 0 to suppress internal IOR download (as we want to test the NameService). We choose another telnet access port for the second and third server with -admin.remoteconsole.port 270x to avoid a conflict and an ugly error output.
# Start heron:
java -DORBInitRef.NameService=file:///tmp/ns.ior
-jar lib/xmlBlaster.jar
-trace[corba] true
-bootstrapPort 0
-cluster.node.id heron
# Start avalon:
java -DORBInitRef.NameService=file:///tmp/ns.ior
-jar lib/xmlBlaster.jar
-trace[corba] true
-bootstrapPort 0
-admin.remoteconsole.port 2703
-cluster.node.id avalon
# Start frodo:
java -DORBInitRef.NameService=file:///tmp/ns.ior
-jar lib/xmlBlaster.jar
-trace[corba] true
-bootstrapPort 0
-admin.remoteconsole.port 2704
-cluster.node.id frodo
# If you use the ORBIX NameService you can check the entries:
% ns list
xmlBlaster.MOM Context
% ns list xmlBlaster.MOM
frodo.MOM Object
heron.MOM Object
avalon.MOM Object
# Now start a client:
java -DORBInitRef.NameService=file:///tmp/ns.ior -cp lib/xmlBlaster.jar HelloWorld2
# OOppps, you got an error as the client does not know which server to choose,
# we choose avalon
java -DORBInitRef.NameService=file:///tmp/ns.ior -cp lib/xmlBlaster.jar HelloWorld2
-trace[CORBA] true
-NameService.node.id avalon
|
||||||||||||||||||||||||||||
| Configure |
These parameters allow to configure the NameService entries on server side and to specify the desired lookup on client side.
NOTE: Configuration parameters are specified on command line (-someValue 17) or in the
xmlBlaster.properties file (someValue=17). See requirement "util.property" for details. |
||||||||||||||||||||||||||||
| See REQ | protocol | ||||||||||||||||||||||||||||
| See REQ | protocol.corba.JacORB | ||||||||||||||||||||||||||||
| See CODE | org.xmlBlaster.protocol.corba.CorbaDriver | ||||||||||||||||||||||||||||
| See CODE | org.xmlBlaster.client.protocol.corba.CorbaConnection |
This page is generated from the requirement XML file xmlBlaster/doc/requirements/protocol.corba.NameService.xml