Running the name service, or services on different machines than the clients doesn't seem to work. I experimented with a few options and concluded that this is most likely due one or more of the following:
- wrong name service
- firewall blocking packets
I found that to run using a remote name service:
1) don't start the name service on the local interface. Use an IP address that is available over the network. Eg, for Jacorb use . $JACORB_HOME/bin/ns -DOAPort=3528 -DOAIAddr=xxx.16.130.yy &
2) make sure the Environment.xml config file for the application matches the name service. With the above exampe use -ORBInitRef NameService=corbaloc::xxx.16.130.yy:3528/NameService
3) make sure any firewalls between server and the name service do not block packets.
The simplest way to overcome firewall issues is to run between two trusted hosts. We will produce a wiki article to show how to configure endpoints on a per port basis (ie this will avoid the need to expose all ports to the trusted host). For example if you run iptables add rules such as the following:
-I INPUT --source IP1 -j ACCEPT
-I OUTPUT --destination IP2 -j ACCEPT
and conversely for the other host.
Finally, note that the SERVER.xml files that defines a service contains an attribute for whether or not to 'tpadvertise' the service as in <SERVICE_NAME name='BAR' advertised='false'/> If the service is remote then it needs to be published in the name service so the 'advertised' attribute needs to be true.
Also I noted that many of the test cases use localhost so we should expect those cases to fail when running a remote name service.