rvd

Command

Syntax

rvd  [-http [ip_address:]http_port]
     [-no-http]
     [-listen [socket_protocol:|ip_address:]tcp_port]
     [-no-permanent]
     [-no-lead-wc | -lead-wc]
     [-no-multicast]
     [-reliability time]
     [-max-consumer-buffer size]
     [-rxc-max-loss loss]
     [-rxc-recv-threshold bps]
     [-rxc-send-threshold bps]
     [-reuse-port inbox_port]
     [-logfile log_filename]
     [-log-max-size size]
     [-log-max-rotations n]
     [-foreground]
     [-udp-buffer-size size]
     [-udp-ttl hops]
     [-transport-batch-size size]
     [-tls-min-proto-version version]
     [-tls-max-proto-version version]
     [-tls-ciphers string1:string2:stringN]
     [-tls-ciphersuites name1:name2:nameN]
     [-no-wc]

Purpose

The command rvd starts the Rendezvous daemon process. The Rendezvous daemon is the network I/O handler for all Rendezvous programs on a computer.

Remarks

Usually, the Rendezvous daemon (rvd) process starts automatically. When a Rendezvous program creates a transport, Rendezvous software determines whether a daemon is already listening for connections (as specified by the daemon parameter). If so, the new transport connects to that daemon. If not, it automatically starts a new daemon and connects to it.

However, when the daemon parameter of the transport creation call specifies a remote daemon, the daemon does not start automatically—you must start it manually on the remote computer.

The rvd command starts the Rendezvous daemon manually. You might do this to specify optional parameters, or a start a daemon that will accept connections from programs running on remote computers.

When started automatically by a client, rvd can also exit automatically. If rvd is not connected to any valid client transports for 1 minute, then rvd automatically exits. However, when started manually, rvd does not exit automatically. To override this behavior, start it manually with the -no-permanent option.

The Rendezvous routing daemon (rvrd) subsumes the behavior of rvd, so it is usually not necessary to run rvd on computers that already run rvrd.

IPM

TIBCO Rendezvous® Server In-Process Module (IPM) uses many of the same parameters as rvd, with parallel behavior. The table of parameters below notes exceptions to this rule.

Command Line Parameters

Parameter

Description

-http ip_address:http_port

-http http_port

The browser administration interface accepts connections on this HTTP port. Permit administration access only through the network interface specified by this IP address.

To limit access to a browser on the rvd host computer, specify 127.0.0.1 (the local host address).

When the IP address is absent, the daemon accepts connections through any network interface on the specified HTTP port.

If the explicitly specified port is already occupied, the program exits.

When this parameter is entirely absent, the default behavior is to accept connections from any computer on HTTP port 7580. If this default port is unavailable, the operating system assigns an ephemeral port number.

In all cases, the program prints the actual HTTP port where it accepts connections.

This parameter is not available with IPM.

-no-http

Disable all HTTP connections, overriding -http.

This parameter is not available with IPM.

-listen tcp_port

-listen ip_address:tcp_port

-listen socket_protocol:tcp_port

rvd (and by extension, rvrd operating within the local network) opens a TCP client socket to establish communication between itself and its client programs. The -listen parameter specifies the TCP port where the Rendezvous daemon listens for connection requests from client programs. This -listen parameter of rvd corresponds to the daemon parameter of the transport creation call (they must specify the same TCP port number).

The IP address specifies the network interface through which this daemon accepts TCP connections.

To bar connections from remote programs, specify IP address 127.0.0.1 (the loopback interface).

When the IP address is absent, the daemon accepts connections from any computer on the specified TCP port.

When this parameter is entirely absent, the default behavior is to accept connections from any computer on TCP port 7500.

For more detail about the choreography that establishes conduits, see Daemon Client Socket—Establishing Connections.

Warning 

This parameter does not correspond to the service parameter of the transport creation call—but rather to the daemon parameter.

This parameter is not available with IPM.

-no-permanent

If present (or when rvd starts automatically), rvd exits after 1 minute during which no transports are connected to it.

If not present, rvd runs indefinitely until terminated.

This parameter is not available with IPM.

 

-permanent

This flag is deprecated in release 7.0 and later. To preserve backward compatibility with existing scripts, rvd ignores this flag, rather than rejecting it.

This parameter is not available with IPM.

-no-lead-wc |

-lead-wc

Sending to subjects with lead wildcards (for example, > or *.foo) can cause unexpected behavior in some applications, and cause network instability in some configurations. This option lets you selectively screen wildcard sending.

When -no-lead-wc is present, the daemon quietly rejects client requests to send outbound messages to subjects that contain wildcards in the lead element. The daemon does not report excluded messages as errors.

When -lead-wc is present (or when neither flag is present), the daemon allows sending messages to subjects with lead wildcards.

This parameter is not available with IPM.

-no-multicast

When present, the daemon disables multicast (and broadcast) communication. For details, see Disabling Multicast.

This parameter is not available with IPM.

-reliability time

Rendezvous daemons compensate for brief network failures by retaining outbound messages, and retransmitting them upon request.

This parameter is one of several ways to control the message reliability interval. For a complete discussion the concept of reliability, the various ways to control it, the interaction among those ways, and reasonable values, see Reliability and Message Retention Time.

If this parameter is absent, rvd uses the factory default (60 seconds).

If this parameter is present, rvd (and by extension, rvrd operating within the local network) retains messages for time (in seconds). The value must be a non-negative integer.

-max-consumer-buffer size

When present, the daemon enforces this upper bound (in bytes) on each consumer buffer (the queue of messages for a client transport). When data arrives faster than the client consumes it, the buffer overflows this size limit, and the daemon discards the oldest messages to make space for new messages. The client transport receives a CLIENT.SLOWCONSUMER advisory.

When absent or zero, the daemon does not enforce a size limit on the consumer buffer. (However, a 60-second time limit on messages still limits buffer growth, independently of this parameter.)

This parameter is not available with IPM.

-rxc-max-loss loss

-rxc-recv-threshold bps

-rxc-send-threshold bps

These three parameters configure the retransmission control (RXC) feature, which suppresses retransmission requests from chronically-lossy receivers.

If -rxc-max-loss is absent or zero, then RXC is disabled. If it is an integer in the range [1,100], it determines the maximum percentage acceptable loss rates above which a receiver is considered chronically-lossy.

-rxc-recv-threshold configures the threshold receive rate (in bits per second) above which a chronically-lossy receiver censors its own retransmission requests. When absent, the default value is zero (always censor a chronically-lossy receiver).

-rxc-send-threshold configures the threshold send rate (in bits per second) above which the daemon suppresses (that is, ignores requests from) chronically-lossy receivers. When absent, the default value is zero (always suppress retransmissions to chronically-lossy receivers).

For a complete explanation, see Retransmission Control .

-reuse-port inbox_port

When present, other daemons on the same host computer can reuse service ports.

When absent, other daemons cannot reuse a service port that is in use by this daemon.

For correct operation, all the daemons that use a common service port on a host computer must specify this option. For background and details, see Reusing Service Ports.

The inbox_port argument (required) specifies the UDP port that this daemon uses for point-to-point communications. This value must be unique for each daemon (that reuses service ports) on a common host computer.

Furthermore, you must not use the inbox_port in any transport specification on the same host computer.

-logfile log_filename

Send log output to this file.

When absent, the default is stderr.

-log-max-size size

-log-max-rotations n

When present, activate the log rotation regimen (see Log Rotation).

When you specify these options, you must also specify -logfile.

size is in kilobytes. If size is non-zero, it must be in the range [100, 2097152]. Values outside this range are automatically adjusted to the nearest acceptable value. Zero is a special value, which disables log rotation. When -log-max-size is zero or absent, a single log file may grow without limit (other than the limit of available storage).

n indicates the maximum number of files in the rotation. When -log-max-rotations is absent, the default value is 10.

-foreground

Available only on UNIX platforms.

When present, rvd runs as a foreground process.

When absent, rvd runs as a background process.

This parameter is not available with IPM.

-udp-buffer-size size

UDP Buffer Size

When present, the daemon requests buffers of this size (in bytes) for inbound and outbound UDP multicast. (Operating system constraints can limit this request.) The value of size must be a non-negative integer.

When absent or zero, the daemon requests the default buffer size, 16MB (16*1024*1024 bytes).

In most situations we recommend the default buffer size. In some situations larger outbound buffers can yield higher throughput, at the cost of longer latency (waiting for the operating system to flush the buffer). You can use rvlat to empirically test the effect on latency.

In some situations larger inbound buffers can reduce the probability that the operating system cannot write packets into a full buffer (such events trigger retransmission requests, which increase network bandwidth usage).

-udp-ttl hops

UDP TTL

When present, the daemon sends UDP packets with a TTL value of hops (a positive integer, less than or equal to 256).

When absent, the default TTL is 16 hops.

-transport-batch-size size

IPM Transport Batch Size

When present, enable outbound batching of data from IPM, and set the batch size (in bytes).

When the batch size is greater than zero, IPM transfers data to the network in batches. This option can increase throughput, at the cost of higher latency.

When absent, the batch size is zero, and IPM transfers data to the network immediately, for lowest latency.

This parameter is available only with IPM.

-tls-min-proto-version version

-tls-max-proto-version version

Set the minimum or maximum supported protocol versions for the ctx using OpenSSL calls SSL_CTX_set_min_proto_version and SSL_CTX_set_max_proto_version.

-tls-ciphers string1:string2:stringN

Set the list of available ciphers (TLSv1.2 and earlier) using OpenSSL call SSL_CTX_set_cipher_list.

-tls-tls-ciphersuites name1:name2:nameN

Configure the available TLSv1.3 ciphersuites using OpenSSL call SSL_CTX_set_ciphersuites.

-no-wc

Silently drop any messages published by clients that contain any wildcard tokens.

Utility Scripts

You can create utilities to start Rendezvous daemons with specific command line arguments. For models, see the sample rvd scripts (or the sample Windows program rvd.c) in the Rendezvous subdirectory src/examples/utilities/.

You can use such utilities to customize daemon behavior; for example, your utilities can select 64-bit daemons, or specify log file parameters or reliability parameters.