POSIX Local IPC Sockets
POSIX local IPC sockets, also known as UNIX domain sockets, are an alternative to the TCP/IP sockets that Rendezvous normally uses for communication between client and daemon. When available, IPC sockets yield faster performance than TCP/IP sockets. All other Rendezvous behavior is transparent to this choice of socket protocol.
IPC sockets are available only on UNIX platforms that support AF_UNIX
or AF_LOCAL
socket types.
On UNIX platforms where IPC is available, they are the default behavior of Rendezvous (release 8.3 and later). That is, Rendezvous automatically uses IPC sockets for communication between client and daemon processes on the same host computer. To override (or force) this default behavior, you can explicitly configure either the daemon or the client (see below).
On platforms where IPC is not available, requests to use IPC always fail.
Daemon Configuration
The daemon’s -listen
parameter accepts values that specify the available socket protocols.
Value |
Behavior |
|
The daemon listens only for TCP connection requests. If the operating system prevents the daemon from listening for TCP connections, the daemon exits immediately. |
|
The daemon listens for both IPC and TCP connection requests. If the operating system prevents the daemon from listening for either TCP or IPC connections, the daemon exits immediately. |
|
The daemon listens for both IPC and TCP connection requests. However, if the operating system prevents the daemon from listening for IPC connections, the daemon does not exit; instead, it degrades gracefully, listening only for TCP connection requests. |
|
When an If the prefix If the prefix |
When starting two (or more) daemons on the same host computer, you must specify distinct port
numbers. If one daemon is already using a port
number, and another daemon attempts to reuse it, the second daemon exits immediately.
Client Configuration
Client programs can specify the preferred socket protocol for connecting to the daemon; specify the socket preference in the daemon
parameter of the transport creation call.
Value |
Behavior |
|
The client connects to the daemon using a TCP/IP socket. |
|
The client connects to the daemon using an IPC socket. If the connection request fails, then the transport creation call fails too. |
|
The client first attempts to connect to the daemon using an IPC socket; if that attempt fails, then the client attempts to connect using a TCP/IP socket. |
Note |
IPC sockets are available only if the client and the daemon reside on the same host computer. |
If no daemon is listening for client connections on port
, then the transport creation call attempts to start one automatically. The transport creation call replicates its own daemon
argument as the new daemon’s -listen
argument.
When a client specifies a remote daemon that is not present, the client does not auto-start a daemon in that remote location.