📄 readme
字号:
to the sender with the ior of its root Naming Context.
Note, the port used for this bootstrapping process,
i.e., 'multicast port', has nothing to do with the ORB
port used for CORBA communication. Other points worth
mentioning:
- A client and a server will only click through this
multicast protocol if they are using the same
multicast port. For both client and server
-ORBnameserviceport command-line option and
NameServicePort environment variable can be used to
specify the multicast port to use. If none is
specified, the default port is used. (The ability
to specify multicast ports can be used to match
certain clients with certain Naming Servers, when
there are more than one Naming Server running on the
network).
- If there are several Naming Servers running on the
network, each listening on the same port for
multicast requests, each will send a reply to a
client's request. The client's orb will use the
first response it receives, so the Naming Service
will, in fact, be selected at random.
Since this mechanism is proprietary to TAO (i.e.,
non-standard), it only works when both client and
server are written using TAO. There is no way to turn
multicasting off on the client side, but it is used
only as a last resort, i.e., any of the other options
will override it.
When OS platform doesn't support multicast, or client
or server isn't written using TAO, or a more
reliable/predictable location method is desired, etc.,
one of the other options can be used to bootstrap to
the Naming Service.
How to use the NT_Naming_Service
================================
To set the options for the TAO Naming Sevice, go to the Services icon
in the Settings group under the start menu (start menu -> settings ->
services). There, highlight the NT_Naming_Service, which is the name
used by the Naming Service when it is registered. After it's
highlighted, you should see at the bottom of the dialog box an area to
specify options. Just enter the options you wish in that edit box and
everything should just work. However, some options, such as
-ORBDebugLevel, won't work since an NT service can't write output to
standard out.
1. Syntax
% NT_Naming_Server [-i value]
[-r]
[-s]
[-k]
[-t n]
[-d]
2. Optional Command-line Arguments
-i value
Install this program as an NT service, with specified startup
-r
Remove this program from the Service Manager
-s
Start the service
-k
Kill the service
-t value
Set startup for an existing service
-d
Debug; run as a regular application
3. Usage
To see different stages of an NT service application, you have
to run the program several times, with different options.
Please note: run with only one option at a time.
a. First, you must initialize the service in the NT SCM
database. Run NT_Naming_Service with -in, where n is one of
the following startup options:
// Start Type (from WinNT.h)
//
#define SERVICE_SYSTEM_START 0x00000001
#define SERVICE_AUTO_START 0x00000002
#define SERVICE_DEMAND_START 0x00000003
#define SERVICE_DISABLED 0x00000004
If only -i is specified, SERVICE_DEMAND_START is default option.
b. Now you are ready to run the actual service. Run
NT_Naming_Service again, this time with -s option. If the
service starts successfully, it will ring the system
bell every second or so until the service is stopped.
c. To stop service execution, run NT_Naming_Service with the
-k option.
d. To remove the service from the Service Control Manager
database, run NT_Naming_Service with -r.
In addition, once you have initialized this service (by using
the -i option) you can change its startup type to one of the
other values above. To do this, run NT_Naming_Service with
-tn option. n is as explained above for -i.
In order to debug the service's execution itself, use the -d
option.
Troubleshooting
============================================
Q1. Error Message: "subscribe: no such device"
A1. On starting, the error message "subscribe: no such device" is a
rather cryptic message saying that basically either you don't support
multicasting or there is no route for multicasting on one of your
network interfaces( e.g. eth0 ).
---------------------------------------
(Step 1)
Check to see if you have mutlicasting enabled. In the case of Linux
you will need to check the configuration of your kernel. RedHat users
have multicasting enabled by default. Once you are sure that you have
multicast enabled then move to the next step. Alternative is to start
Naming_Service with multicast disabled.
---------------------------------------
(Step 2)
Check to see if you have the route for multicasting. Linux users can
do this by running:
/sbin/route
You should see something like this:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
If you don't see the line for multicast routing:
224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
You will need to add in the next step. If you do see that line and the
problem is still there then contact the tao-users list by using
email. Please remember to use the problem form. It helps developers to
have a more educated guess at the exact problem you are having.
---------------------------------------
(Step 3)
You can do this manually in a script that start the Naming service:
(Linux/Unix):
/sbin/route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
Alternatively for RedHat users you can add this into a file
"/etc/sysconfig/static-routes". As of Redhat 7, you might have to
create this file, you can make an entry:
eth0 net 240.0.0.0 netmask 240.0.0.0
On startup when the network interfaces that will be supporting
multicast routing are started the route will be added. In my case it
adds multicasting routing to eth0 (the first NIC).
----------------------------------------
(Step 4)
Double check that the route has been added correctly using /sbin/route.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
At this point you should be able to run Naming_Service. Have fun!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -