Reusing Service Ports

In Rendezvous release 8.1.x and earlier, a service port was available only to the first daemon (on a particular host computer) that bound it. That is, client transports would fail when requesting that same service from another daemon on the same host computer.

In release 8.2 and later, you can allow daemons to reuse service ports that are already bound by another daemon (or IPM) on the same host computer. The daemon parameter -reuse-port inbox_port enables this feature.

Note 

HP Tru64 UNIX does not support this feature.

Motivation

This section presents two situations in which reusing a service port would be advantageous.

IPM

Application processes that communicate using IPM can use this feature. When several such processes must communicate on the same service, and run on one host computer, then they necessarily reuse that service, because each such process acts as its own daemon. To allow this reuse, each IPM must specify -reuse-port inbox_port.

Enabling Service Reuse

To enable a set of daemons on the same host computer to reuse service ports, you must explicitly enable this feature on all the daemons in the set (otherwise the behavior is undefined).

Inbox Port

While daemons on the same host can reuse service ports for broadcast or multicast messages, they cannot reuse ports for point-to-point (_INBOX) messages. For each daemon and IPM on that common host, you must designate a unique UDP port to carry point-to-point communications. (That is, you must not assign the same inbox port number to two daemons on the same host.) Supply that port as the inbox_port argument to the -reuse-port inbox_port option.

Migration from Earlier Releases

Warning 

Before using this feature, you must first upgrade all the interoperating daemons and IPM libraries to release 8.2 or later.

Furthermore, all application programs that connect to daemons that actually reuse service ports must relink to Rendezvous libraries from release 8.2 or later.

Incorrect migration can result in dataloss.

Reusing Service Ports in Routing Daemons

Release 8.2 updates rvrd (and rvsrd) with the ability to reuse service ports, and to correctly interoperate with daemons that reuse service ports. However, note the following restriction:

Warning 

Two routing daemons on the same host cannot serve the same local network.

If two routing daemons violate this restriction, the second router to start detects the conflict, reports a configuration error, and could exit (depending on other parameters).

In contrast:

Two routing daemons can serve the same local network, if the routing daemons run on different host computers.
Two routing daemons can run on the same host computer, if they do not serve any local networks in common.