Tib RV Administration
Tib RV Administration
Administration
Software Release 8.3.0
July 2010
Important Information
SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED
OR BUNDLED TIBCO SOFTWARE IS SOLELY TO ENABLE THE FUNCTIONALITY (OR PROVIDE LIMITED
ADD-ON FUNCTIONALITY) OF THE LICENSED TIBCO SOFTWARE. THE EMBEDDED OR BUNDLED
SOFTWARE IS NOT LICENSED TO BE USED OR ACCESSED BY ANY OTHER TIBCO SOFTWARE OR FOR
ANY OTHER PURPOSE.
USE OF TIBCO SOFTWARE AND THIS DOCUMENT IS SUBJECT TO THE TERMS AND CONDITIONS OF A
LICENSE AGREEMENT FOUND IN EITHER A SEPARATELY EXECUTED SOFTWARE LICENSE
AGREEMENT, OR, IF THERE IS NO SUCH SEPARATE AGREEMENT, THE CLICKWRAP END USER
LICENSE AGREEMENT WHICH IS DISPLAYED DURING DOWNLOAD OR INSTALLATION OF THE
SOFTWARE (AND WHICH IS DUPLICATED IN TIBCO Rendezvous Installation) OR IF THERE IS NO SUCH
SOFTWARE LICENSE AGREEMENT OR CLICKWRAP END USER LICENSE AGREEMENT, THE LICENSE(S)
LOCATED IN THE “LICENSE” FILE(S) OF THE SOFTWARE. USE OF THIS DOCUMENT IS SUBJECT TO
THOSE TERMS AND CONDITIONS, AND YOUR USE HEREOF SHALL CONSTITUTE ACCEPTANCE OF
AND AN AGREEMENT TO BE BOUND BY THE SAME.
This document contains confidential information that is subject to U.S. and international copyright laws and
treaties. No part of this document may be reproduced in any form without the written authorization of TIBCO
Software Inc.
TIB, TIBCO, TIBCO Adapter, Predictive Business, Information Bus, The Power of Now, Rendezvous, TIBCO
Rendezvous and Messaging Appliance are either registered trademarks or trademarks of TIBCO Software Inc. in
the United States and/or other countries.
EJB, Java EE, J2EE, and all Java-based trademarks and logos are trademarks or registered trademarks of Sun
Microsystems, Inc. in the U.S. and other countries.
All other product and company names and marks mentioned in this document are the property of their
respective owners and are mentioned for identification purposes only.
THIS SOFTWARE MAY BE AVAILABLE ON MULTIPLE OPERATING SYSTEMS. HOWEVER, NOT ALL
OPERATING SYSTEM PLATFORMS FOR A SPECIFIC SOFTWARE VERSION ARE RELEASED AT THE SAME
TIME. SEE THE README.TXT FILE FOR THE AVAILABILITY OF THIS SOFTWARE VERSION ON A
SPECIFIC OPERATING SYSTEM PLATFORM.
THIS DOCUMENT IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
THIS DOCUMENT COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS.
CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES WILL BE
INCORPORATED IN NEW EDITIONS OF THIS DOCUMENT. TIBCO SOFTWARE INC. MAY MAKE
IMPROVEMENTS AND/OR CHANGES IN THE PRODUCT(S) AND/OR THE PROGRAM(S) DESCRIBED IN
THIS DOCUMENT AT ANY TIME.
THE CONTENTS OF THIS DOCUMENT MAY BE MODIFIED AND/OR QUALIFIED, DIRECTLY OR
INDIRECTLY, BY OTHER DOCUMENTATION WHICH ACCOMPANIES THIS SOFTWARE, INCLUDING
BUT NOT LIMITED TO ANY RELEASE NOTES AND "READ ME" FILES.
Copyright © 1997–2010 TIBCO Software Inc. ALL RIGHTS RESERVED.
TIBCO Software Inc. Confidential Information
| iii
Contents
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xv
Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
Manual Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxiv
Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
TIBCO Product Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviii
How to Contact TIBCO Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxi
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .421
Figures
Figure 1 Disabling Multicast: Public Subjects Still Flow Among Local Clients . . . . . . . . . . . . . . . . . . . . . . . . 39
Figure 2 Disabling Multicast: Routing Daemons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Figure 3 rvd Navigation Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Figure 4 rvd General Information Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Figure 5 rvd Clients Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Figure 6 rvd Client Information Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Figure 7 rvd Subscription List Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Figure 8 rvd Services Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Figure 9 rvd Service Information Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Figure 10 rvd Host List Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Figure 11 Managed Daemon Subject Map Summary Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Figure 12 Managed Daemon Subject Map Detail Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Figure 13 Managed Daemon Port Map Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Figure 14 Routing Daemons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Figure 15 Fault Tolerance among Routing Daemons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Figure 16 Path Cost and Subject Import Weight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Figure 17 Routing Daemons Merge Subject Spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Figure 18 Independent Routing Table Entries Keep Subject Spaces Separate. . . . . . . . . . . . . . . . . . . . . . . 100
Figure 19 Mutual Neighbors Merge Routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Figure 20 Erroneous Neighbors on the Same Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Figure 21 Routing Daemons and Duplication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Figure 22 Routing Daemon WAN with Firewalls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Figure 23 Bridge PGM and TRDP Networks with rvrd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Figure 24 Retransmission and rvrd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Figure 25 Border Router: Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Figure 26 Border Router: Implicit Internal First-Tier Routers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Figure 27 Border Router: Second-Tier Routing Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Figure 28 Border Router: High-Fanout Network. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Tables
Preface
Topics
Manual Organization
The third chapter describes several details upon which programmers and
administrators must agree for correct program operation:
• Chapter 3, Network Details, on page 17
These chapters describe utilities for measuring overall system capacity and
performance, and for diagnosing network problems.
• Chapter 11, Performance Assessment (rvperf), on page 297
• Chapter 12, Latency Assessment (rvlat), on page 327
• Chapter 13, Measuring Tools for IPM, on page 341
• Chapter 14, Protocol Monitor (rvtrace), on page 345
Related Documentation
Typographical Conventions
Convention Use
TIBCO_HOME All TIBCO products are installed under the same directory. This directory is
TIBRV_HOME referenced in documentation as TIBCO_HOME. The value of TIBCO_HOME
depends on the operating system. For example, on Windows systems, the
default value is C:\tibco.
TIBCO Rendezvous installs into a version-specific directory inside TIBCO_HOME.
This directory is referenced in documentation as TIBRV_HOME. The value of
TIBRV_HOME depends on the operating system. For example on Windows
systems, the default value is C:\tibco\rv\8.3.0.
code font Code font identifies commands, code examples, filenames, pathnames, and
output displayed in a command window. For example:
Use MyCommand to start the foo process.
Convention Use
Key Key name separated by a plus sign indicate keys pressed simultaneously. For
combinations example: Ctrl+C.
Key names separated by a comma and space indicate keys pressed one after the
other. For example: Esc, Ctrl+Q.
The note icon indicates information that is of special interest or importance, for
example, an additional action required only in certain circumstances.
The tip icon indicates an idea that could be useful, for example, a way to apply
the information provided in the current section to achieve a specific result.
The warning icon indicates the potential for a damaging situation, for example,
data loss or corruption if certain steps are taken or not taken.
Convention Use
[ ] An optional item in a command or code syntax.
For example:
MyCommand [optional_parameter] required_parameter
| A logical OR that separates multiple items of which only one may be chosen.
For example, you can select only one of the following parameters:
MyCommand para1 | param2 | param3
Convention Use
{ } A logical group of items in a command. Other syntax notations may appear
within each logical group.
For example, the following command requires two parameters, which can be
either the pair param1 and param2, or the pair param3 and param4.
MyCommand {param1 param2} | {param3 param4}
In the next example, the command requires two parameters. The first parameter
can be either param1 or param2 and the second can be either param3 or param4:
MyCommand {param1 | param2} {param3 | param4}
In the next example, the command can accept either two or three parameters.
The first parameter must be param1. You can optionally include param2 as the
second parameter. And the last parameter is either param3 or param4.
MyCommand param1 [param2] {param3 | param4}
For comments or problems with this manual or the software it addresses, please
contact TIBCO Support as follows.
• For an overview of TIBCO Support, and information about getting started
with TIBCO Product Support, visit this site:
http://www.tibco.com/services/support
• If you already have a valid maintenance or support contract, visit this site:
http://support.tibco.com
Entry to this site requires a username and password. If you do not have a
username, you can request one.
Topics
Install Rendezvous software at your site. The book TIBCO Rendezvous Installation
describes the installation procedure on various hardware and operating system
platforms.
UNIX Platforms
Add the Rendezvous binary directory to the execution path of each programmer
and end user of Rendezvous programs. The exact directory name varies
depending on where you installed Rendezvous; the installation procedure prints
the correct location for your convenience (usually a name constructed like
installation_point/tibco/tibrv/bin).
VMS Platforms
Place this command in the startup file:
$ @SYS$STARTUP:TIBRV_STARTUP.COM
UNIX Platforms
Add these definitions to the services database:
rendezvous 7500/udp
rendezvous-ft 7504/udp
VMS Platforms
On VMS platforms define a service by entering these commands.
$ TCPIP SET SERVICE RENDEZVOUS/PORT=7500/PROTOCOL=UDP -
/USER=SYSTEM/FILE=SYS$STARTUP:TIBRV_STARTUP.COM/PROCESS=TIBRV
$ TCPIP SET SERVICE RENDEZVOUS-FT/PORT=7504/PROTOCOL=UDP -
/USER=SYSTEM/FILE=SYS$STARTUP:TIBRV_STARTUP.COM/PROCESS=TIBRVFT
These commands are for HP TCP/IP Services. If your system uses a different IP
stack, consult the IP vendor documentation for equivalent commands.
This step extends the Rendezvous software from intranetwork message exchange
to internetwork message exchange.
• If you plan to run Rendezvous programs on a single network, you may skip
this step.
• If you plan to link several networks, read Chapter 5, Routing Daemon (rvrd),
on page 75.
• If you plan to link a web site, also read Chapter 9, Rendezvous Agent (rva), on
page 265.
To facilitate registry with the Windows service manager, the Rendezvous \bin
directory includes the utility programs rvntscfg.exe and rvntsreg.exe.
See Also
rvntscfg on page 416
rvntsreg on page 417
On UNIX, VMS, IBM i and z/OS platforms, the operating system can limit the
maximum number of file descriptors per process, as well as the total number of
file descriptors summed over all processes. Because each connection uses a file
descriptor, this limitation in turn limits the capacity of Rendezvous components:
• In rvd and its variants, it limits the maximum number of client connections
(that is, transports) that a daemon can accept.
• In rvrd and its variants, it limits the combined total of neighbor connections
and client connections.
• In rva, it limits the maximum number of client connections.
• In client programs, it limits the number of transport objects.
Symptoms When operating system file descriptor limits are set too low, Rendezvous
components might report errors indicating that too many files are open, or that
file descriptor limits have been exceeded. In many situations, you can eliminate
this problem by raising the limit.
VMS limits the number of open sockets, rather than file descriptors. The
consequent limitations, symptoms and remedy are analogous.
• Ensure that clients auto-start the daemon before opening any file descriptors
or sockets. In this way, the daemon does not inherit these resources (other
than stderr).
• Create a script that explicitly closes the inherited resources before starting the
daemon.
The auto-start feature calls an executable file named rvd. You can substitute
your own script named rvd that explicitly closes inherited resources.
Administrators must arrange licenses and license tickets for each host computer.
Licensing Framework
In Rendezvous release 6 (and later) we changed the details of licensing and
license tickets. Please read this chapter to familiarize yourself with the new
framework.
Topics
Licensing Overview
Each host computer must keep a license ticket file. The file tibrv.tkt must
contain a ticket for each daemon component that runs on that computer.
To put new license tickets into effect, stop and restart the licensed components.
UNIX Platforms
On UNIX platforms, the Rendezvous daemon searches for the license ticket file
(tibrv.tkt) in the directories listed in the PATH environment variable. You must
ensure that the PATH variable includes the bin subdirectory (of the Rendezvous
directory).
Windows Platforms
On Microsoft Windows platforms, the Rendezvous daemon searches for the
license ticket file (tibrv.tkt) in the directories listed in the PATH environment
variable. You must ensure that the PATH variable includes the location of the ticket
file.
In releases 8.0.0 and later, the Rendezvous installation procedure no longer
installs a file containing temporary license tickets.
VMS Platforms
On VMS platforms, the Rendezvous daemon searches for the license ticket file
(tibrv.tkt) in two ways.
• If you do not define a PATH specifier, then the daemon searches for the ticket
file in the current default directory. When a Rendezvous client program starts
the daemon automatically, or when the system startup file starts the daemon,
then the default directory is TIBRV:[BIN].
• If you do define a PATH specifier, then the daemon searches in that directory.
VMS searches for a PATH specifier in this order—first as a logical name, then as a
local DCL symbol, then as a global DCL symbol. Consider these examples.
define PATH tibrv:[bin] As a logical name.
PATH := tibrv:[bin] As a local DCL symbol.
PATH :== dka300:[tibco.tibrv.bin] As a global DCL symbol.
PATH := "/tibrv/bin/" Using UNIX syntax.
PATH := "/dka300/tibco/tibrv/bin/" Using UNIX syntax.
Installing Rendezvous creates the logical name TIBRV; the first and fourth of these
examples use that logical name.
When using UNIX syntax, the path must terminate with a slash, and must be
enclosed in quotes, as in the fourth and fifth examples.
In releases 8.0.0 and later, the Rendezvous installation procedure no longer
installs a sample file containing temporary license tickets.
IBM i Platforms
See step 7 of Post-Installation Instructions on page 43 in TIBCO Rendezvous
Installation.
To purchase license tickets, contact TIBCO Rendezvous Licensing (via web, email,
phone or fax) and provide details of your purchase order.
License Information
License information helps us create the correct number of licenses, and issue
appropriate license tickets.
• Total Rendezvous licenses for each licensed Rendezvous component (for
example, rvd, rvrd, rva, rvcache, rvtracer).
The book TIBCO Rendezvous Concepts describes these parameters in even greater
detail than this chapter. See also these sections:
• Service Parameter on page 103 in TIBCO Rendezvous Concepts
• Network Parameter on page 107 in TIBCO Rendezvous Concepts
• Daemon Parameter on page 110 in TIBCO Rendezvous Concepts
Topics
Transport Parameters
Network transport creation calls accept three parameters that govern the behavior
of the Rendezvous daemon: service, network and daemon. In simple networking
environments, the default values of these parameters are sufficient (in C, the
program can supply NULL for all three).
Most programmers will use default values for these parameters unless advised
otherwise by their network administrator. To determine whether your
environment requires special treatment, consider whether any of these conditions
apply:
• Several independent distributed applications run on the same network, and
you must isolate them from one another (service parameter).
• Programs use the Rendezvous routing daemon, rvrd, to cooperate across a
WAN with programs that belong to a particular service group, and the local
programs must join the same service group (service parameter).
• A Rendezvous program runs on a computer with more than one network
interface, and you must choose a specific network for Rendezvous
communications (network parameter).
• Computers on the network use multicast addressing to achieve even higher
efficiency, and programs must specify a set of multicast groups to join
(Network parameter).
• A program runs on one computer, but connects with a Rendezvous daemon
process running on a different computer, and you must specify the remote
daemon to support network communications (daemon parameter).
• Two programs use direct communication. Both programs must enable this
feature and specify its service (service parameter).
If none of these conditions apply, then programmers can use default values for the
transport parameters.
If your network environment requires special treatment for any these parameters,
please notify applications programmers developing software for your
environment. If your organization runs Rendezvous programs developed by a
third party, consult the third-party documentation for information about network
and service configuration.
In addition, certain components of Rendezvous software, local programs and
third-party programs may also require special configuration:
• The Rendezvous routing daemon, rvrd, must specify the service and network
for each local network. Exchange this information with the network
administrators at each remote site.
• The Rendezvous secure daemon limits clients to communication on a set of
authorized network and service pairs.
• The current value cache, rvcache, accepts all three transport parameters.
When you configure this program, include any special values as needed.
• Many Rendezvous programs accept transport parameters on their command
lines. Inform all users of any special values that apply.
Service Selection
Port number When a program specifies a UDP or PGM port number, it must be a
string representing a decimal integer. For example:
"7890"
Service name When a program specifies a service name, the transport creation function
searches the network database using getservbyname(), which searches
a network database such as NIS, DNS or a flat file such as
/etc/services (in some versions of UNIX).
Default If a program does not specify a service, or it specifies null, the transport
creation function searches for the service name rendezvous.
(Non-Secure Daemons)
If getservbyname() does not find rendezvous, the Rendezvous daemon
instructs the transport creation function to use a hard default:
• The TRDP daemon offers the default service 7500.
• The PGM daemon offers the default service 7550.
Default Secure daemons use internal defaults, which must be set explicitly by the
administrator; see Default Network and Service on page 197.
(Secure Daemons)
Direct Communication To enable direct communication, specify two parts separated by a colon:
• UDP or PGM service for regular communication
• UDP service for direct communication (RPTP)
You may specify both parts either as a service name or a port number.
Direct communication is not available when connecting to a remote
daemon. (However, it is available when connecting to a TIBCO
Messaging Appliance™ P-7500.)
For a general overview, see Direct Communication on page 116 in TIBCO
Rendezvous Concepts.
Network Selection
Every network transport object communicates with other transport objects over a
network. On computers with only one network interface, the Rendezvous
daemon communicates on that network without further instruction from the
program.
On computers with more than one network interface, the network parameter
instructs the Rendezvous daemon to use a particular network for all
communications involving this transport. To communicate over more than one
network, a program must create a separate transport object for each network. For
further details, see Limitation on Computers with Multiple Network Interfaces on
page 25.
The network parameter also specifies multicast addressing details (for a brief
introduction, see Multicast Addressing on page 25).
To connect to a remote daemon, the network parameter must refer to the network
from the perspective of the remote computer that hosts the daemon process.
Part One—Network
Part one identifies the network, which you can specify in several ways:
The use of the UDP broadcast protocol has generally been superseded by the IP
multicast protocol. To use broadcast protocols without multicast addressing,
specify only part one of the network parameter, and omit the remaining parts.
Multicast Addressing
Multicast addressing is a focused broadcast capability implemented at the
operating system level. In the same way that the Rendezvous daemon filters out
unwanted messages based on service groups, multicast hardware and operating
system features filter out unwanted messages based on multicast addresses.
When no broadcast messages are present on the service, multicast filtering
(implemented in network interface hardware) can be more efficient than service
group filtering (implemented in software). However, transports that specify
multicast addressing still receive broadcast messages, so combining broadcast
and multicast traffic on the same service can defeat the efficiency gain of multicast
addressing.
Rendezvous software supports multicast addressing only when the operating
system supports it. If the operating system does not support it, and you specify a
multicast address in the network argument, then transport creation calls produce
an error status (TIBRV_NETWORK_NOT_FOUND).
Erroneous Examples
• A program, mylistener, creates a transport using service 7500 and network
lan0; it listens to broadcast subjects using that transport. Other program
processes on both lan0 and lan1 send broadcast messages using service 7500.
As a result, mylistener might unexpectedly receive inbound messages from
lan1.
• A program creates two network transports. Both use service 7500, but one
uses network lan0, while the other uses network lan1.
As a result, the call to create the second transport produces an error.
• Two programs on the same computer each create a transport. Both use service
7500, but one uses network lan0, while the other uses network lan1. Even
though these transports are in different processes, both transports connect to
the same Rendezvous daemon—which is subject to the limitation.
As a result, the program fails to create the second transport.
Using a separate service can rectify all four of the erroneous examples. Multicast
addressing can rectify the first two erroneous examples, but not the latter two. In
all four examples, a single Rendezvous daemon is sufficient.
For example, consider these two approaches to rectifying the first erroneous
example:
• Separate Service
A program, mylistener, creates a transport using service 7500 and network
lan0; it listens to broadcast subjects using that transport. Other processes on
lan0 send messages using service 7500, but all processes on lan1 send
messages using service 7510. Separating by service prevents the transport
from receiving interference from lan1.
• Multicast Addressing
A program, mylistener, creates a transport using service 7500 and multicast
network lan0;225.1.1.1. This transport selectively receives only those
inbound multicast messages that are sent on network lan0, to multicast
address 225.1.1.1, on service 7500. Multicast addressing (where available)
filters out messages sent on other networks using any other multicast address.
However, multicast addressing does not filter out IP broadcast messages sent
on the same UDP service. Once again, the roots of this limitation are in the
underlying IP broadcast protocols.
The Rendezvous daemon (rvd) and the Rendezvous routing daemon (rvrd) both
open a client socket to establish communication with their clients (Rendezvous
programs). The -listen option to rvd and rvrd lets you specify where the
daemon should listen for new client connections. Conversely, Rendezvous
programs request connections with the daemon at that client socket. The daemon
parameter of the transport creation function determines how and where to find
the Rendezvous daemon and establish communication.
Each transport object establishes a communication conduit with a Rendezvous
daemon, as described in these steps:
1. The daemon process opens a (TCP) client socket, and waits for a client to
request a connection.
The -listen option of the Rendezvous daemon specifies where the daemon
listens for new client transports.
2. The program calls the transport creation function, which contacts the daemon
at the client socket specified in its daemon parameter.
The daemon parameter of the transport creation function must correspond to
the -listen option of the daemon process; that is, they must specify the same
communication type and socket number.
If no daemon process is listening on the specified client socket, then the
transport creation call automatically starts a new daemon process (which
listens on the specified client socket) and then attempts to connect to it.
3. The daemon process opens a conduit for private communication with the new
transport. All future communication uses that private conduit.
The request socket is now free for additional requests from other client
transports.
In all cases, the communication type and socket number in the daemon parameter
of the transport creation call must match those given to rvd through its -listen
parameter.
Remote Daemon
In most cases, programs use a local daemon, running on the same host as the
program. Certain situations require a remote daemon, for example:
• The program runs on a laptop computer that is not directly connected to the
network. Instead, the laptop connects to a workstation on the network, and
the daemon runs on that workstation.
• The program connects to a network at a remote site.
For remote daemons, specify two parts (introducing the remote host name as the
first part):
• Remote host name.
• TCP socket number.
Availability IPC sockets are available only on UNIX platforms that support AF_UNIX or
AF_LOCAL socket types.
Behavior 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
tcp:port The daemon listens only for TCP connection requests.
If the operating system prevents the daemon from listening for TCP connections,
the daemon exits immediately.
ipc:port 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.
port 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.
More than One When starting two (or more) daemons on the same host computer, you must
Daemon 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 preferrence in the daemon parameter of the transport
creation call.
Value Behavior
tcp:port The client connects to the daemon using a TCP/IP socket.
ipc:port The client connects to the daemon using an IPC socket. If the connection request
fails, then the transport creation call fails too.
port 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.
IPC sockets are available only if the client and the daemon reside on the same host
computer.
Daemon If no daemon is listening for client connections on port, then the transport creation
Auto-Start call attempts to start one automatically. The transport creation call replicates its
own daemon argument as the new daemon’s -listen argument.
For convenient reference, these tables list port and service numbers with special
meaning to Rendezvous components.
7581 rvcache
7680 rva
7880 rvacld
7590 rvtxd
Using the To use the browser administration interface, point your browser at an address like
Browser this template:
Administration
http://host:port
Interface
• host can be the host name or IP address of the host computer where the
daemon is running. In some networks, a fully qualified host name is required
(for example, myhost.tibco.com).
• port is either the default port from Table 7, or the port supplied as the -http
command line argument when starting the daemon; see Command Line
Parameters on page 43.
Service Ports
Service Description
rendezvous Program transport objects use these UDP or PGM services
7500 (TRDP) as defaults.
7550 (PGM) The component programs rva and rvrad follow this
convention.
For more detail, see Specifying the UDP or PGM Service
on page 21.
Listen Ports
7600 rva uses this TCP port as the default to listen for new
connections from Java applets. See Listen Port on page 269.
TibrvRvaTransport objects in Java applets use this TCP port as
the default to establish connections with rva.
The reliability interval (or retention time) is the time interval during which a sending
daemon retains outbound messages. Retaining message data allows the sending
daemon to retransmit message packets upon request from another daemon
process (which did not correctly receive the data). Conversely, the reliability
interval also specifies the time for which a receiving daemon can request
retransmission of missing data from a sender.
A related concept, the reliability window, refers to the set of outbound message data
that a sending daemon has retained (and not yet discarded). Data within the
reliability window is available for the sending daemon to retransmit upon
request.
You can specify the reliability interval in several ways, depending on the needs
and complexity of your enterprise:
• For all services of a daemon, using a factory default (60 seconds)
• For all services of a daemon, using a daemon command-line argument
• For a specific service, using a client API call
See Also For additional background information, see also Reliable Message Delivery on
page 58 in TIBCO Rendezvous Concepts.
Factory Default
The factory default reliability interval is 60 seconds. In environments with low
data rates, this default is sufficient for reliability and does not impose high
memory requirements on the daemon process. Since it is a hard-coded default, it
is simple to use, requiring no further administrative action.
• Time-Sensitive Data
In some programs, data becomes obsolete before 60 seconds elapse. For
example, in real-time multi-player game networks, data might become
obsolete in less than one second. Retaining and retransmitting obsolete data
burdens the daemons and the network without any benefit. A shorter
retention time would be more consistent with application requirements, and
can improve overall performance.
In some situations, it is not unreasonable to reduce retention time to zero.
Consequences Decreasing retention time decreases reliability, and increases the probability of
lost data. DATALOSS advisory messages indicate message data lost because the
sending daemon no longer retains it.
Zero Zero is a special value for retention time. When the retention time is zero, the
sending daemon does not store message data for retransmission (nor does it
retransmit packets). Conversely, when the retention time is zero, the receiving
daemon does not request that sending daemons retransmit data packets.
Zero is a legal value for a daemon’s -reliability parameter (see below).
However, zero is not a legal value when a client program requests reliability for a
specific service (see below).
Increasing We strongly discourage increasing the retention time beyond 60 seconds. Memory
requirements increase in direct proportion to the retention time. If greater
reliability is required, consider using certified delivery features instead (see
Certified Message Delivery on page 139 in TIBCO Rendezvous Concepts).
Lower Value Rule It is not necessary that all daemons in a network specify the same reliability time. If
a sending daemon and a receiving daemon have different reliability intervals, the
lower value governs retransmission interactions between the two.
• The sender’s actual retention time follows the sender’s reliability interval.
• The receiver requests retransmissions only until the lower value of the
reliability interval (either the receiver’s or the sender’s) has elapsed.
Contrast this rule with the Service Reliability Rule that applies among transports
that connect to the same daemon; see below.
Routing Daemons The reliability interval affects only the messages within a local network. It does
are Exempt not affect the operation of rvrd as it transfers messages across network
boundaries.
Contrast this rule with the Lower Value Rule that applies between two daemons;
see above.
Disabling Multicast
When the command line for any of the daemon components includes
-no-multicast, the daemon disables multicast (and broadcast) communication.
This section describes the behavior of the daemons (rvd, rvrd, rvsd, rvsrd) when
multicasting is disabled.
API All changes in behavior occur within the daemon. These behavior changes are
transparent to Rendezvous API calls. Client programs can create transports that
specify multicast addressing or PGM service, send messages to any subjects, and
listen to any subjects. No changes to client programs are required.
Daemon Behavior Disabling multicast communication changes daemon behavior in these ways:
• When a client sends a message to a public subject, the daemon does not
multicast it (nor broadcast it) to the network.
• When a routing daemon receives multicast or broadcast messages from the
network, it does not forward them to other daemons within the local network.
Figure 1 Disabling Multicast: Public Subjects Still Flow Among Local Clients
rvd
rvd
-no-multicast
No
multicast
Network
Client Client
J K
rvrd
rvrd
-no-multicast
No
multicast
Net Y Net Z
rvd
Client
L
The Rendezvous daemon (rvd) is the background process that supports all
Rendezvous communications. Distributed processes depend on it for reliable and
efficient network communication. All information that travels between and
among processes passes through a Rendezvous daemon when it enters or exits a
host computer.
The Rendezvous daemon fills these roles:
• Route messages to program processes.
• Deliver messages reliably.
• Filter subject-addressed messages.
• Shield programs from operating system idiosyncrasies, such as low-level
sockets and file descriptor limits.
The Rendezvous daemon process, rvd, starts automatically when needed, runs
continuously and may exit after a period of inactivity.
For further general information about the Rendezvous daemon and reliable
broadcast delivery, see The Rendezvous Daemon on page 55 in TIBCO Rendezvous
Concepts.
Topics
• rvd, page 42
• Log Destination, page 54
• Browser Administration Interface—rvd, page 56
rvd
Command
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 2 minutes, 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.
Running duplicate daemons on one computer yields no benefit, and can cause
errors or decreased efficiency.
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.
(Sheet 1 of 7)
Parameter Description
-http ip_address:http_port The browser administration interface accepts connections on
this HTTP port. Permit administration access only through
-http http_port
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).
(Sheet 2 of 7)
Parameter Description
-listen tcp_port rvd (and by extension, rvrd operating within the local
network) opens a TCP client socket to establish
-listen ip_address:tcp_port
communication between itself and its client programs. The
-listen socket_protocol:tcp_port -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 on page 28.
-no-permanent If present (or when rvd starts automatically), rvd exits after 2
minutes during which no transports are connected to it.
If not present, rvd runs indefinitely until terminated.
This parameter is not available with IPM.
(Sheet 3 of 7)
Parameter Description
-no-lead-wc | Sending to subjects with lead wildcards (for example, > or
-lead-wc *.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, rvd quietly rejects client
requests to send outbound messages to subjects that contain
wildcards in the lead element. rvd does not report excluded
messages as errors.
When -lead-wc is present (or when neither flag is present),
rvd allows sending messages to subjects with lead wildcards.
(Sheet 4 of 7)
Parameter Description
-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.
(Sheet 5 of 7)
Parameter Description
-rvdm When present, the daemon operates as a managed daemon.
control_channel (For a complete explanation of this feature, see Daemon
Manager on page 209.)
The control_channel argument specifies the dedicated control
channel over which the RVDM server coordinates with
managed Rendezvous daemons. This value must denote the
same control channel as configured in the RVDM server; see
Control Channel on page 257. The form of the control_channel
argument is:
port_number:[network_interface];multicast_address
(Sheet 6 of 7)
Parameter Description
-reuse-port When present, other daemons on the same host computer can
reuse service ports.
inbox_port
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 on page 52.
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. When using RVDM,
use care to avoid violating this restriction inadvertently. You
must not use the inbox_port for the RVDM control channel. You
must not define a subject map for the inbox_port. You must not
specify the inbox_port as an effective port in the RVDM port
map.
-log-max-size size When present, activate the log rotation regimen (see Log
Rotation on page 54).
-log-max-rotations n
When you specify these options, you must also specify
-logfile.
(Sheet 7 of 7)
Parameter Description
-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.
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, specify managed daemons, logfile parameters
or reliability parameters.
Retransmission Control
Identifying When RXC is enabled for a receiving daemon, the daemon tracks inbound packet
Excessive Loss loss for each service. When RXC is enabled for a sending daemon, the daemon
tracks packet loss and retransmission statistics for each receiving daemon and
service. To distinguish chronic loss from temporary loss, the daemons compute a
set of related measurements that pinpoint receivers for which retransmission is an
ineffective solution.
Max Loss When starting a daemon, an administrator can set the -rxc-max-loss command
line parameter (a percentage, expressed as an integer between zero and 100,
inclusive). If greater than zero, then RXC is enabled; the sending daemon
measures loss statistics, and compares them against the configured threshold, and
against other thresholds derived from it. Using several metrics lets the daemon
distinguish between temporary loss and chronic loss. If measured rates exceed
their corresponding threshold values, then a receiver is categorized as
chronically-lossy.
Remediation at When a receiver identifies itself as a chronically-lossy receiver, it can censor its
Receiver own retransmission requests with two main effects:
• The receiving daemon does not send retransmission requests to the network.
• The receiving daemon produces an INFO advisory, indicating that it is a
chronically-lossy receiver. For details, see
RETRANSMISSION.INBOUND.REQUEST_NOT_SENT on page 278 in
TIBCO Rendezvous Concepts.
Send For each service, the receiving daemon measures its inbound bandwidth usage (in
bits per second). The daemon does not censor retransmission requests until its
inbound bandwidth usage exceeds -rxc-recv-threshold.
Receive For each service, the sending daemon measures its outbound bandwidth usage
(in bits per second). The daemon does not suppress retransmissions to
chronically-lossy receivers until its outbound bandwidth usage exceeds
-rxc-send-threshold.
The default value of both threshold parameters is zero, a special value specifying
that the daemons always suppress retransmissions and requests whenever RXC is
enabled and chronically-lossy receivers are identified.
Other Details Daemons compute all statistics separately for each service (see Service Selection
on page 20).
The RXC feature applies only to TRDP daemons; it does not apply to the PGM
variant (see PGM and TRDP on page 18 in TIBCO Rendezvous Concepts).
Routing daemons include rvd functionality; in this capacity, RXC does apply to
routing daemons. However, when a routing daemon forwards messages to
another routing daemon, it uses TCP protocols, and RXC does not apply.
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 enables this feature.
Motivation
This section presents two situations in which reusing a service port would be
advantageous.
RVDM If managed daemons run on the same host computer (for example, on different
CPU cores of a multi-core computer), and the same RVDM instance manages both
daemons, then the daemons necessarily use the same control channel to
communicate with RVDM. In this situation, the daemons necessarily reuse the
control channel’s service port, so the daemons must each specify -reuse-port.
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
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 option.
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.
RVDM If you use RVDM to administer managed daemons that reuse service ports, you
must also upgrade the daemon that serves RVDM (to release 8.2 or later).
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.
Log Destination
Each Rendezvous daemon and component process—rvd, rvrd, rvsd, rvsrd, rva,
rvtrace—produces log output. The content of log output varies, but the
semantics of command line options that affect logging are identical for all of these
components:
• When all of the command line options that affect logging are absent, daemons
send log output to stderr.
• When -logfile log_filename is present, daemons send log output to the file
you specify, namely log_filename.
• When -log-max-size size is present and non-zero, daemons use a log
rotation regimen. For details, see Log Rotation below. The parameter
-log-max-rotations n determines the number files in the rotation.
Log Rotation
To enable log rotation, you must specify a non-zero value for -log-max-size.
(When absent, the default value is zero.)
The command line option -log-max-size size limits the growth of log files. The
size parameter specifies the maximum disk space (in kilobytes) that a log file can
occupy (approximately) before it is rotated.
The command line option -log-max-rotations n specifies the number of log
files in the rotation sequence. Notice that the storage devoted to log files can grow
at most to approximately size * (n+1).
The daemon rotates the log files according to this renaming plan:
• The parameter -logfile log_filename specifies the name of the current log file,
which receives log output. For example, for rvd one might specify rvd.log
(without any numerical suffix). This name also becomes the base for a
sequence of rotation files.
• When the current log file reaches its maximum size, the daemon rotates log
files:
— It closes the current log file (in our example, rvd.log).
— It appends the next available numerical suffix to the base name, and
renames the full log file with that name; for example, rvd.log1. Suffixes
begin with 1, and continue through n before rotating back to 1. This
renaming operation overwrites any existing file from a previous rotation.
— It opens a new current log file (once again, rvd.log).
• When the daemon terminates and restarts, logging resumes by appending to
the current log file, but the rotation state is reset (that is, the first rotation
overwrites the file with suffix 1).
You can determine the most recent file by comparing either packet time
stamps within the files, or file modification times.
The command line option -log-rotate total_size is deprecated in release 7.5, and
will become obsolete in a subsequent release. We recommend migrating to the
new log rotation parameters at your earliest convenience.
In the meantime, we preserve backward compatibility by converting the value of
this deprecated parameter to corresponding values of the new parameters:
• -log-rotate total_size retains its old meaning—specifying the total size for all
log files. The maximum size for each individual file in the rotation is
total_size/10.
• If both old and new parameters are present, the new parameters take
precedence (overriding the old parameter).
The browser administration interface lets you control rvd from a web browser.
Although rvd does not have any configurable operating parameters, you can
view internal data structures that reflect network conditions.
Topics
• Navigation, page 57
• General Information, page 59
• Clients, page 61
• Services, page 64
Navigation
All browser administration interface pages display a navigation panel at the left
side of the page. Use these links to display other pages.
Daemon Subject Map This page summarizes RVDM subject maps by service
Manager number.; see Subject Map Summary on page 71.
Port Map This page displays the RVDM port map; see Port Map on
page 74.
Miscellaneous Current Log This page displays the most recent 4 kilobytes from the log file.
General Information
(Sheet 1 of 2)
Item Description
component The name of the program—rvd (or rvsd).
host name The hostname of the computer where the daemon process runs.
Notice that the daemon process can run on one computer, while you access its
browser interface from another computer.
IP address The IP address of the computer where the daemon process runs.
client port The TCP port where the daemon listens for client connections.
(Sheet 2 of 2)
Item Description
network The number of network services on which this daemon’s clients communicate.
services
managed The value yes indicates that this daemon is managed (see Chapter 7, Daemon
Manager, on page 209). The link is the name of an RVDM instance; to view or
interact with the RVDM instance, click this link.
The value no indicates that this daemon is a non-managed daemon.
control channel The RVDM control channel specification of a managed daemon; see -rvdm on
page 47.
For non-managed daemons, this field displays the string disabled.
inbox port When the daemon reuses service ports, this field displays the unique inbox port.
When the daemon does not reuse service ports, this field displays zero.
Clients
Item Description
table rows Each row of the table describes one client transport.
Description The description string of the transport object. Client programs set this string using
an API call.
User The user name of the user that started the client program process.
Service The UDP or PGM service on which the client transport communicates.
Identifier A globally unique identifier for the transport object. Click this identifier to view
Client Information page.
Client Information
This page displays additional detail about a particular client transport.
To display this page, click any transport identifier in the Clients page.
(Sheet 1 of 2)
Item Description
Description The description string of the transport object. Client programs set this string using
an API call.
User The user name string of the user that started the client program process.
Service The UDP or PGM service on which the client transport communicates.
On a managed daemon, if the RVDM port map shunts the service port, then this
number is the effective port (see Port Map on page 223).
Original On a managed daemon, if the RVDM port map shunts the service port, then this
Service number is the original port (see Port Map on page 223).
Port TCP port number that the daemon uses to communicate with this client.
Serial Serial number of the Rendezvous license ticket that validates this client connection.
Number
(Sheet 2 of 2)
Item Description
Identifier A globally unique identifier for the transport object.
Version Version number of the Rendezvous API library that this client uses.
Subscriptions Number of subscriptions that this client transport has registered with rvd.
Click this link to view a list of the subscription subjects; see Subscription List on
page 63.
The number of subscriptions in this field need not match the number of subjects in
the subscription list. Subject mapping can expand one listener with a wildcard
subject into several subscriptions in the daemon (since the wildcard can match
several rows of the subject map). The subscriptions total on the Client Information
page counts each match as a separate subscription, summing the subscription
counts for each row of the subject map.
Subscription List
This page displays additional detail about the subscriptions of a particular client
transport. Each row displays the subject name of one subscription.
To display this page, click Clients in the Client Information page.
Services
On this page rvd displays information about the network services it mediates for
its clients.
To display this page, click Services in the left margin of any page of the rvd
browser administration interface.
(Sheet 1 of 2)
Item Description
table rows Each row of the table describes one network service—that is, a UDP or PGM
service on a particular network interface.
Hosts The number of other host computers with Rendezvous daemons that communicate
on this network and service.
(Sheet 2 of 2)
Item Description
Clients The number of client transports that use this network and service.
Service Information
Service This page (see Figure 9 on page 66) displays additional detail and operational
statistics about a particular network service.
To display this page, click any service number in the Services page.
Multicast Group The Group Information page displays the same details and statistics about
particular multicast group.
To display the Group Information page, click any group number in the Subject
Map Detail page.
(Sheet 1 of 3)
Item Description
Service The UDP or PGM service number.
On a managed daemon, if the RVDM port map shunts the service port, then this
number is the effective port (see Port Map on page 223).
Reliability On this service, rvd retains outbound message data for retransmission. After
this interval, it discards the data. For complete details, see Reliability and
Message Retention Time on page 34.
Clients The number of client transports that use this network service. To view the
Clients page, click this item.
Hosts The number of other host computers with Rendezvous daemons that
communicate on this network and service. To view the Host List page, click this
item.
Subscriptions The number of subscriptions registered with the daemon on this network
service. To view the list of subscriptions, click this item.
Communication Identifies the daemon and service. TIBCO support staff may request this value
ID for diagnostic purposes.
Inbound Rates The rate (per second) at which inbound messages, bytes and packets arrived on
this network service during the most recent sampling period.
Outbound Rates The rate (per second) at which the daemon sent outbound messages, bytes and
packets on this network service during the most recent sampling period.
Inbound Counts Cumulative statistics about inbound data messages; running totals since the
start of the daemon process:
• msgs—number of messages
• bytes—number of bytes
(Sheet 2 of 3)
Item Description
Outbound Cumulative statistics about outbound data messages; running totals since the
Counts start of the daemon process:
• msgs—number of messages
• bytes—number of bytes
Inbound Packet Cumulative statistics about inbound packets; running totals since the start of the
Totals daemon process:
• pkts—number of data packets
• missed—number of missed packets (detected as a packet sequence gap)
• lost MC—number of multicast packets lost because the sending daemon
could not retransmit them
• lost PTP—number of point-to-point packets lost because the sending
daemon could not retransmit them
• suppressed MC—number of multicast packets for which the daemon
suppressed the sending of retransmission requests (see Retransmission
Control on page 50)
• bad pkts—number of unreadable data packets
These bad packets correspond to DATALOSS advisories in which the error
description string includes the words multicast destination. For
information about non-zero values see Mixed Environment—Subject Maps
on page 220.
(Sheet 3 of 3)
Item Description
Outbound Cumulative statistics about outbound packets; running totals since the start of
Packet Totals the daemon process:
• pkts—number of data packets
• retrans—number of packets retransmitted (multicast and point-to-point)
• lost MC—number of multicast packets the daemon could not retransmit (too
old)
• lost PTP—number of point-to-point packets the daemon could not
retransmit (too old)
• shed MC—number of multicast packets for which the daemon ignored
retransmission requests from a chronically-lossy receiver, and did not
retransmit the data (see Retransmission Control on page 50)
• bad retreqs—number of unreadable retransmission request packets
These bad packets correspond to DATALOSS advisories in which the error
description string includes the words multicast destination. For
information about non-zero values see Mixed Environment—Subject Maps
on page 220.
Host List
This page displays Rendezvous daemon process instances on other host
computers that communicate on the same network and service. From this page,
you can view the service pages of those other daemons.
To display this page, click the word hosts in the Service Information page.
This page lists any Rendezvous communications daemon host, whether the
process is rvd, rvsd, rvrd, or rvsrd.
Item Description
host Each row of this table represents one Rendezvous daemon process and its host
computer.
Hostname The name of the computer where the other daemon is running.
IP Address The IP address of the computer where the other daemon is running.
Uptime The elapsed time that the daemon has been using the common UDP or PGM
service.
Item Description
table rows Each row of the table denotes the subject map for one service.
Service The service number of a subject map. (If the port map is enabled, this value
represents the effective service.)
Click this number to view Subject Map Detail.
(Sheet 1 of 2)
Item Description
service The service number of this subject map. (If the port map is enabled, this value
represents the effective service.)
clients The number of client transports using this service. To view the Clients page, click
this item.
table rows Each row of the table describes the mapping from a subject specification to a
multicast group.
Group The target multicast group for this row of the mapping.
If statistics are available for this multicast group, clicking this link displays those
statistics (see Service Information on page 65).
Subscribers The number of client transports that have at least one matching listener (on the
service). A matching listener is a listener with a subscription subject that matches
the subject of this subject mapping row.
Rank Rank (relative) serves as a tie-breaker when the subject of an outbound message
matches more than one subject in the mapping.
(Sheet 2 of 2)
Item Description
Default This row describes the mapping for Rendezvous system subjects; see Subject Map
System on page 214.
Groups
Default User This row describes the default mapping for subjects that do not match the subject
Groups in any other row; see Subject Map on page 214.
Port Map
Item Description
last update Time stamp of the most recent update.
table rows Each row of the table describes a mapping from an original port to an effective
port.
Effective Port The effective port that the daemon uses for network communication on behalf of
client transports that specify the corresponding original port.
If the effective port number has a subject map, clicking this number displays the
subject map details page (see Subject Map Detail on page 71).
Topics
Situations
Use the routing daemon in situations where one or more of these conditions apply:
• Participating networks lie in distant geographic areas.
• Participating networks lie in nearby geographic areas, but are not connected
by multicast routing hardware.
• Participating networks are separated by a firewall.
• Messages must traverse expensive or slow WAN links.
Concepts
Goal
The goal of routing daemon software is to take Rendezvous messages from one
network, and make them available on other networks. The effect is to connect a
set of networks into a larger network.
Compare this goal to the goal of routing hardware—to take packets from one
network, and make them available on other networks. Once again, the effect is to
connect a set of networks into a larger network.
Connections
Routing daemon software uses a routing table to define connections to local
networks, and to other routing daemons.
Compare this tool to a hardware router, which uses a routing table to define the
connections between the router and its interfaces.
Each entry in the routing table describes one routing daemon and its connections.
Although each routing daemon specifies only its own routing table entry, all the
routing daemons in a WAN cooperate to share this information, so that every
routing daemon builds a copy of the complete global routing table.
Local Network
A routing daemon serves a set of local networks by forwarding messages between
those networks and other networks (usually, by way of other routing daemons).
While routing hardware specifies its local networks primarily in terms of network
interfaces, routing daemon software specifies each local network as a pair
combining network and UDP or PGM service. UDP or PGM services effectively
divide the physical network into separate logical networks—even though they
use the same hardware.
A routing daemon filters messages by subject name, restricting the subjects that
its local networks can import and export. Filtering messages by subject in routing
daemon software yields a finer granularity of control than filtering packets in a
hardware router. Routing daemons control the set of subjects that each network
can export to other networks, and import from other networks. For more
information, see Subject Gating on page 85.
Neighbor
To achieve the goal of forwarding message between networks, routing daemons
connect to other routing daemons. A routing daemon declares its potential
neighbors—the other routing daemons to which it can directly connect.
Two potential neighbors become actual neighbors when they establish a TCP
connection.
Neighbor Link
Routing Daemon
Route
The set of connections through which a message travels between its originating
network and its destination network is called a route. Several potential routes can
exist between the originating and destination networks; routing daemons select
the actual route for each message.
Requirements
Routing Daemons
A routing daemon must exist on at least one computer of each local network that
participates by sending or receiving Rendezvous messages.
Neighbor Connections
The network administrator must allow the routing daemons to establish TCP or
SSL connections, so the routing daemons can become neighbors.
Subject Gating
Each routing daemon must export the relevant subject names from its local
network, and import the relevant subject names from other networks.
For details, see Subject Gating on page 85, and Subject Filtering with Wildcards on
page 85.
Subject Interest
Import and export gating is not sufficient to start the flow of messages. To receive
forwarded messages, programs within the local network must express interest in
the relevant subject names, by listening for those subjects.
Whenever a routing daemon detects interest in a subject within one of its local
networks, it cooperates with other routing daemons to forward that subject to that
local network. When programs in the network no longer retain interest in a
subject, the routing daemons stop forwarding it.
For more details, see Routing Daemons Filter Interest to Permitted Subjects on
page 86.
rvrd Process
Initial State
In its initial state an rvrd process operates identically to an rvd process; it does
not route messages yet.
Administrators use the browser administration interface to configure the routing
daemon, and to start its operation as a software router.
Logging
An rvrd process can output a log of its activity. For details, see Routing Daemon
Logging on page 122.
Routing table entries are the basic building blocks of a Rendezvous routing
system. In most situations, each routing daemon process embodies a single
routing table entry, which denotes that daemon throughout the WAN, and
describes its operation.
In rare situations one routing daemon process can embody several routing table
entries. Each entry defines a separate and independent software router, but
without the cost associated with process switching. For more information, see
Independent Routing Table Entries in One Process on page 98.
Combining all the routing table entries of all the routing daemons produces the
global routing table. Each routing daemon uses its copy of the global routing table
to forward messages efficiently to other routing daemons and their networks.
Router Name
Each routing table entry has a name. Routing daemons use these names to
identify one another—so names must be unique throughout the entire WAN.
One convenient way to ensure unique names is to use the fully-qualified DNS
names of the rvrd host computers; for example, frobitz.yellowNet.baz.com.
(When one process embodies several routing table entries, you can use a prefix to
create unique names; for example, 1.frobitz.yellowNet.baz.com).
Other naming conventions are acceptable, as long as the names are unique.
The name is a string of alphanumeric, dot, and dash characters. The maximum
total length of the string is 64 characters (including the dot separators).
Local Networks
Each routing daemon can serve zero or more local networks. For details, see Local
Network on page 84.
Notice that a routing daemon need not serve any local networks. In this
configuration, it operates as a way station, forwarding message traffic between
other routing daemons—for example, to cross a firewall. For an illustration of this
role, see Security and Firewalls on page 106.
Neighbors
Each routing daemon can connect to zero or more neighbors (routing daemons on
other networks). For details, see Neighbors on page 89.
Local Network
Like router names, each local network name is a string of alphanumeric, dot, and
dash characters. The maximum total length of the string is 64 characters
(including the dot separators).
When several routing daemons serve one local network, each routing daemon
must specify the same name for that network.
That is, if two local networks use the same physical network and the same service,
then they are really the same local network. It is an error to refer to that local
network with two or more different names.
Subject Gating
The router configuration determines the set of public subjects that can potentially
pass between the routing daemon and the local network:
• Export subjects can flow out from the local network to the routing daemon,
and from there to other networks.
• Import subjects can flow into the local network from the routing daemon.
Point-to-Point Gating
Routing daemons automatically transmit point-to-point messages as appropriate:
• When a routing daemon receives a point-to-point message whose destination
is elsewhere in the global routing table, it forwards that message to the routing
daemon that serves the destination network.
• When a routing daemon receives a point-to-point message whose destination
is in one of its local networks, it forwards that message directly to rvd on the
destination computer.
• Administrators do not need to explicitly import or export inbox subject
names.
Recall that these rules of import parameter behavior apply to routing daemons,
and also to the Rendezvous agent (rva).
Importing this Matches messages with But not names like these
wildcard name names like these (reason)
FOO.* FOO.BAR FOO.BAR.BAZ (extra element)
For example, consider a situation in which the local network imports FOO.> (that
is, it does not permit any other subjects to enter from the WAN). When a process,
L1, within the local network listens to the subject > (that is, the wildcard that
matches any subject), the routing daemon first compares it to the permitted
import subjects; since > is not a subset of FOO.>, the routing daemon does not
forward any messages into the local network, so L1 does not receive any
messages.
When a second process, L2, in the same local network, listens to the subject
FOO.BAR, the routing daemon begins importing messages (because the subject
matches a subject for which import is permitted); both L1 and L2 receive the
imported messages.
When a third process, L3, listens to the subject FOO.>, the routing daemon widens
the set of messages it imports; both L1 and L3 receive the additional message
subjects.
Table 11 on page 87 summarizes this example, and presents further examples.
See Also Using Wildcards to Receive Related Subjects on page 66 in TIBCO Rendezvous
Concepts
The concept of fixed subject interest is obsolete in release 6 (and later). Instead,
subject interest dynamically determines the set of subjects that actually flow to
and from a network.
Neighbors
Neighbor links connect routing daemons. A routing daemon declares its potential
neighbors in its routing table entry. Two routing daemons become actual
neighbors when they establish a TCP connection.
To declare potential neighbors, see Neighbor Interfaces on page 157. To examine
actual neighbors, see Connected Neighbors on page 140.
Neighbor Pairs
Neighbors operate in pairs—one router at each end of a neighbor connection.
Administrators can specify the pairs in four ways; see Adding Neighbor
Interfaces on page 91.
Local Host The default value denotes the host computer’s default interface. You may
override this default by specifying another network interface on the local host
computer—either as a resolvable hostname, or as the IP address of the interface.
Local Connect In each neighbor declaration, a routing daemon designates a TCP port number
Port where the routing daemon accepts connection requests from that neighbor.
When a routing daemon declares several neighbors, it can designate a unique
local connect port for each neighbor, or some of its neighbors can share a local
connect port.
However, when a routing daemon process operates several routing table entries,
the routing entries may not share any local connect ports.
Remote Router In most situations, a routing daemon identifies a neighbor using its unique router
Name name (see Router Name on page 83).
(For a counterexample, see Seek Neighbor with Any Name on page 92.)
Remote Host Specify the location of a neighbor either as a resolvable hostname, or as the IP
address of the computer in a remote network where the neighboring daemon is
running.
Remote Connect The remote port is the TCP port number where the remote neighbor listens for a
Port connection request from this routing daemon.
This parameter must match the local connect port of a routing table entry within
the rvrd process on the neighboring host computer.
Remote Public When neighbors communicate using SSL, you must enter the public certificate of
Certificate the authorized neighbor. For background information, see Certificates and
Security on page 52 in TIBCO Rendezvous Concepts.
Network Administration
Neighboring routing daemon processes must be able to establish a TCP
connection. The network administrator (at each site) must configure the hardware
(or software) routers and firewalls to permit this TCP connection between the two
routing daemon host computers.
Data Compression
Routing daemons can compress data to reduce the network volume that travels
between neighbors.
• Compression is most useful when you pay for WAN transmission by volume.
• Compression reduces volume at the cost of speed. Compression and
decompression slows rvrd processing at both ends of a neighbor link.
Active Neighbor
A routing daemon can declare another routing daemon as its neighbor, and
actively initiate a connection to it. If the connection is broken, the routing daemon
actively attempts to restore it.
Consider an example situation in which a routing daemons link several networks
within an enterprise. Each routing daemon within the enterprise declares every
other routing daemon as an active neighbor.
Passive Neighbor
A routing daemon can declare that it passively accepts connections from its
neighbor, but does not actively initiate the connection itself.
Consider these example situations:
• Unidirectional firewall.
Routing daemon abc.homeNet.myDom.com is located behind a firewall that
allows connection requests in only one direction—outward. Active connection
attempts by its neighbor, mno.lyonNet.myDom.com, would invariably fail,
marking each attempt as a potential security violation at the firewall. When
• Modem restriction.
Routing daemon fgh.oshkoshNet.myDom.com is located on a host that
depends on a modem for network access; the modem settings permit
fgh.oshkoshNet.myDom.com to dial out, but the modem does not accept
incoming calls. Active connection attempts by its neighbor,
klm.chicagoNet.myDom.com, would invariably fail, while wasting resources.
When klm.chicagoNet.myDom.com declares fgh.oshkoshNet.myDom.com as
a neighbor, it can specify passive connect, reflecting its inability to initiate a
connection to fgh.oshkoshNet.myDom.com. To become actual neighbors,
fgh.oshkoshNet.myDom.com must initiate the connection to
klm.chicagoNet.myDom.com.
This configuration is especially useful for load balancing among a set of potential
neighbors with identical routes.
Specify the potential neighbors with two pieces of information:
• Remote Host, which must be either a DNS hostname that can resolve to more
than one IP address, or a virtual IP address.
• Remote Connect Port—all potential neighbors must listen for connection
requests on this port).
Each potential neighbor must accept connections from the seeking routing
daemon, without actively attempting to connect to it. The potential neighbors can
specify this in either of two ways:
• Accept connections from any neighbor, including the seeking routing daemon
(see Accept Any as Neighbor on page 92).
• Passively accept connections specifically from the seeking routing daemon
(see Passive Neighbor on page 91).
Anet.moo.com
Legend
E.Anet.moo.com F.Anet.moo.com
Local Network
Neighbor Link
G.Bnet.moo.com H.Bnet.moo.com
Bnet.moo.com
Load Balancing
You can balance network load by directing messages along preferred routes.
Routing daemons let you specify preferred routes using two cooperating
mechanisms:
• Path costs determine a preference to route messages along specific neighbor
links.
• Subject import weights determine a preference to import particular subjects
into a network through a specific routing daemon.
E.Anet.moo.com F.Anet.moo.com
1 5 5 1 Path Costs
G.Bnet.moo.com H.Bnet.moo.com
Bnet.moo.com
• Path costs direct the message flow through the two outer links.
• Import weights split the traffic by subject:
— Messages with subjects bar.> enter Bnet through routing daemon G.
— Messages with subjects foo.> enter Bnet through routing daemon H.
Cooperating Notice that effective load balancing depends on both mechanisms together. With
Mechanisms path costs alone, all messages might flow only through F and H, while E and G
have idle capacity. With subject import weights alone, all messages might flow
only through F, while E has idle capacity. When both mechanisms cooperate,
subject import weights divide the message volume between G and H, and path
costs propagate that division back to E and F.
Path Cost
You can specify the path cost of each neighbor link. Routing protocols seek the
route with the lowest cost.
For example, in Figure 16 on page 95, the outer links—between E and G, and
between F and H—each specify a cost of 1. In contrast, the inner crossover links—
between F and G, and between E and H—each specify a cost of 5. When all the
components operate normally, messages flow across the lower cost (outer) links.
When components fail, messages flow across the lowest cost link that remains
operational.
Symmetric You must specify symmetric path costs. That is, if you specify a path cost of n at G’s
Path Costs neighbor link to E, the you must also specify the same path cost, n, at E’s neighbor
link to G. This rule applies even when you intend that messages flow only in one
direction (for example, from top to bottom in Figure 16 on page 95). Asymmetric
path costs can result in unpredictable and inefficient routing behavior.
Backward For routing daemons from release 6, the cost of every path is always 1, and you
Compatibility cannot change this value. You can set a higher value for path costs only when
configuring routers from release 7 or later.
See Also To configure path cost between neighbors, see Neighbor Interfaces on page 157.
To configure path cost from a router instance to a local network, see Local
Network Interfaces Configuration on page 151.
For example, in Figure 16 on page 95, the administrator has specified that G
imports foo.> with weight 1, and bar.> with weight 10. Conversely, H imports
foo.> with weight 10, and bar.> with weight 1. When all the components
operate properly, messages with subjects foo.> travel through H (which draws
them through F), while messages with subjects bar.> travel through G (which
draws them through E). If E were to fail, all messages would travel through F and
H (because that route has the lowest path cost).
See Also To configure subject import weight, see Subject Gating on page 153.
Border Routing
When rvrd is configured as a border router, then path cost and subject import
weight affect only first-tier routing decisions—that is, routing within a zone. They
do not affect second-tier routing decisions—that is, routing across a border
between two zones. For background information about these concepts, see Border
Routing on page 110.
In most situations, each routing daemon process embodies a single routing table
entry. Nonetheless, in rare situations one routing daemon process can embody
several routing table entries. Each entry defines a separate and independent
software router, but without the cost associated with process switching.
This section explores two situations in which multiple routing table entries are
appropriate:
• Overlapping Subject Space
• Bandwidth Contention on page 100
Legend
Local Network
Neighbor Link
Routing Daemon
S1 L2
A.K.foo.com F.J.foo.com
For example, on the left side of Figure 17, the two UDP or PGM services 7500 and
7502 effectively separate one physical network (K.foo.com) into two disjoint
subject spaces; that is, program L2 cannot receive messages from program S1.
Similarly, on the right side of Figure 17, two UDP or PGM services 7577 and 7588
effectively separate one physical network (J.foo.com) into two disjoint subject
spaces. However, the routing daemons in this configuration merge the subject
spaces of their local networks—effectively canceling the separation; that is,
program L2 does receive messages from program S1.
To restore the separation, configure an independent routing table entry for each
local network, as in Figure 18 on page 100.
Legend
Local Network
Neighbor Link
rvrd Process
S1 L2 S2 L3 L4
A.K.foo.com F.J.foo.com
B.K.foo.com G.J.foo.com
In Figure 18, each rvrd process contains two independent routers, which act as
parts of two disjoint routes—keeping the data and subject spaces separate:
• Routing table entries A and F form a route connecting network 2 with
network 3.
• Routing table entries B and G form a route connecting network 1 with
network 4.
Notice that once again, program L2 cannot receive messages from S1.
Bandwidth Contention
Bandwidth contention is the second reason to separate programs using disjoint
routes.
Consider two programs that are deployed on the same physical network—a
program S2 that sends messages at a moderate data rate, and a program S1 that
sends messages at a relatively high data rate. However, messages from S2 are
much more important to the enterprise as a whole than messages from S1.
When forwarding these messages across a WAN, routing daemons would
ordinarily send them across the same TCP connection. The many unimportant
messages from S1 could delay the more important messages from S2.
To solve this throughput problem, configure an independent route for each set of
messages, as in Figure 18 on page 100. On the left side of Figure 18, S1 and S2 use
distinct UDP or PGM services within the same physical network, effectively
separating their messages into two logical network spaces. Disjoint routes carry
the two sets of messages:
• Important messages from S2 travel through routing entries A and F.
• Messages from S1 travel through routing entries B and G.
The heavy volume on this route does not interfere with crucial message
throughput on the S2 route, because a separate TCP connection carries each
route.
Defeating Independence
The routing table entries within an rvrd process operate as independent
pathways; that is, data does not flow directly between routing table entries within
a routing daemon process instance.
Nonetheless, data can flow indirectly by way of a mutual neighbor. In Figure 19
on page 102, notice that adding a neighbor link between M and T would merge the
route connecting networks A, B and C, with the otherwise disjoint route
connecting X and Y (defeating their independence). Use caution when altering a
network of routing daemons.
Legend C
Local Network
Neighbor Link
M.C.foo.com
Routing Table Entry
rvrd Process
A B
A.A.foo.com S.B.foo.com
B.X.foo.com T.Y.foo.com
X Y
Legend
Local Network
Neighbor Link
Routing Daemon
Net Castor.star.com
UDP 7500
gemini taurus
Duplicating Effort
It is an error to use routing daemons to duplicate the effort of another forwarding
mechanism (for example, a hardware router, or another pair of routing daemon
neighbors. (This error is actually a variation of the error described in Neighbors
on the Same Network on page 103.)
Consider the situation in Figure 21 on page 105. Two mechanisms forward
messages between the two networks—the hardware router and a pair of routing
daemons (A.a.bad.com and B.b.bad.com). When a program on network
a.bad.com sends a message, routing daemon A forwards it to its neighbor B,
which redistributes it on network b.bad.com. When the hardware router receives
the redistributed message, it forwards it back to network a.bad.com, where A
detects the duplication and produces an error message.
This kind of error can occur in either broadcast or multicast situations. However,
it is especially common in environments where hardware routers enable multicast
routing. Upgrading a hardware router can trigger this error.
Upgrading rvrd from release 5 to release 6 (or later) provides another fertile
environment for this error. When both routing daemons run concurrently in the
same network, be careful to avoid duplicate service.
To repair the situation, remove one of the routing daemons, or disable hardware
multicast routing.
Legend
Local Network
Network Interface
Path of Message
Routing Daemon
Net a.bad.com
UDP 7533
A.a.bad.com
Hardware
Router
B.b.bad.com
Net b.bad.com
UDP 7533
Routing daemons offer security controls based on UDP or PGM service groups
and subject names (see Restricting Message Flow on page 81). In addition, the
routing daemon works in concert with firewalls to constrain information flow.
The WAN in Figure 22 connects two enterprises across the Internet. Each
enterprise protects its networks with firewalls. Notice that the routing daemon
within the DMZ does not serve any local network; instead that routing daemon
operates as a way station, forwarding messages across the firewalls on either side
of it.
Local Network
Firewall Firewall
Enterprise 1
DMZ
Internet
Firewall Firewall
Enterprise 2
DMZ
PGM and TRDP network protocols do not interoperate. Nor can Rendezvous
components and programs from one variant interoperate with components and
programs from the other variant. The only exception to this rule is the
Rendezvous routing daemon.
You can deploy a pair of Rendezvous routing daemons to construct a bridge that
connects a PGM network with a TRDP network. This bridge lets PGM programs
in one network communicate with TRDP programs in the other network.
Figure 23 depicts an example. A routing daemon from the TRDP variant runs in
the TRDP network, while a routing daemon from the PGM variant runs in the
PGM network. The two routers specify each another as neighbors. They forward
both multicast and point-to-point messages.
The two networks need not be physically distinct. For example, you can run PGM
and TRDP variants on the same physical LAN—as long as they use
non-overlapping services (that is, port numbers).
Retransmission
Within its local networks, a routing daemon is the source (that is, the sending
daemon) of all the forwarded messages that it rebroadcasts. That routing daemon
handles retransmission requests (for example, if a listening application in the local
network misses a packet).
Figure 24 illustrates this concept:
1. An application in network A sends a message.
2. Routing daemon A forwards the message to routing daemon B.
3. Routing daemon B rebroadcasts the message on network B.
4. A receiving application in network B misses a packet, and its rvd requests
retransmission.
5. If the packet is within the reliability window of routing daemon B, then it
retransmits the packet.
Otherwise, it denies the retransmission request; it does not attempt to get a
new copy of the message from routing daemon A.
rvrd A rvrd B
Border Routing
Advantages
Border routing can be advantageous in some situations:
• In networks with many routers, border routers can limit the spread of
routing-related information, resulting in increased network stability.
• When routing messages between separate enterprises—for example, to a
business partner outside your intranet—border routers can isolate intranet
topology information.
• Border router policies enforce subject gating restrictions pairwise between
routing table entries (that is, neighbors and local networks). You can specify a
separate policy for each ordered pair.
Concepts
First-Tier Router In the context of border routing, the term first-tier router denotes the kind of router
that is already familiar from the preceding sections of this chapter.
First-tier routers share a global routing table. Every first-tier router has its own
copy of the entire routing table, spanning the entire routing network; any change
in the routing network propagates to every router. In networks with many
routers, the resulting overhead can be noticeable.
Border Router A border router or second-tier router is an rvrd process that can serve as a border,
dividing a routing network into separate zones (see Zone, below).
You can configure a border router with neighbors and local networks (in the same
way as you would configure a first-tier router). The border router connects these
elements, and forwards messages among them.
• Router.addLocalNetworkInterface()
• Router.addPassiveInterface()
Nonetheless, you may explicitly remove this subject (_INBOX.>) from the border
policy to disable forwarding of inbox messages.
In contrast, specifying a new interface by editing an XML configuration overrides
this default border policy. An XML document engenders a router configuration
that matches the XML specification exactly; an interface will not have any border
policy unless the XML document explicitly specifies one.
Zone A zone or first-tier routing network is a collection of routers and local networks, in
which every pair in the collection is connected by a route that does not cross
through a border router.
Administrators do not explicitly configure zones. Instead, border routers
periodically examine the network, and dynamically partition it into zones based
on network connectivity.
In Figure 25, border router BR1 has two first-tier neighbors (K and L), and a route
connects those neighbors without crossing through BR1 nor any other border
router; so K and L are in the same zone.
Legend
Local Network
Neighbor Link
Routing Table Entry
(First-Tier Router)
Border Router
(Second-Tier Router)
Zone 1 Zone 4
Zone 3
BR1 BR2
K L
Zone 2 Zone 5
The effective policy of a zone is the union of the policies of all its constituents. In
other words, a message that can enter or leave through any constituent can enter
or leave the zone as a whole. For example, if BR1 allows foo.* to cross from K to
BR2, then foo.* can cross from anywhere in zone 2 to anywhere in zone 3.
Implicit Internal Each border router process embodies several implicit internal first-tier routers.
First-Tier Routers When a border router automatically groups its neighbors and local networks into
zones, it tacitly instantiates one first-tier router (within itself) for each zone that it
serves.
When we say that a border router participates in a zone, we really mean that one
of the implicit first-tier routers within the border router participates in that zone.
Figure 26 expands a portion of Figure 25; it illustrates that border router BR1
contains three implicit internal first-tier routers, which serve zones 1, 2 and 3.
Each one participates in one zone, as a representative of BR1.
Zone 1
Legend
Local Network
Neighbor Link
Routing Table Entry
(First-Tier Router) Zone 3
Border Router
BR1
(Second-Tier Router)
Border
K L
Zone 2
Border Within a border router, a border separates every pair of implicit internal first-tier
routers (see Figure 26 on page 113). Border routers dynamically determine
borders, just as they dynamically determine zones.
A message can cross a border when a policy allows the message subject.
First-tier routing table information cannot cross a border.
Borders are not directly accessible to administrators; they remain internal to
border routers.
Second-Tier A second-tier routing network is a collection of border routers in which every pair in
Routing Network the collection is connected by a route.
First-tier routing information includes information about first-tier routers, local
networks, and all the subjects that can flow among them (within a zone).
Second-tier-routing information includes information about border routers, zones,
and all the subjects that can flow among them; it specifically excludes all first-tier
routing information.
All border routers in a second-tier network share second-tier routing information,
but not first-tier information. Conversely, first-tier constituents of zones cannot
access second-tier information—except for information about subjects available
through a participating border router.
For example, Figure 27 on page 114 illustrates the view of the second-tier network
shared by BR1 and BR2 (based on the example of Figure 25). BR1 and BR2 share
second-tier information so that both can create an internal routing table that
includes both border routers, all five zones, and all the subjects that can flow
among them. However, BR1 cannot access first-tier information about the
constituents of zones 4 and 5, and BR2 cannot access first-tier information about
the constituents of zones 1 and 2.
Zone 3
BR1 BR2
Zone 2 Zone 5
Within an enterprise, this architecture can promote network stability, use network
bandwidth efficiently, and effectively control the flow of data.
When this architecture spans several enterprises, distribution-level border routers
can isolate each enterprise network within a separate zone. With appropriate
policy configuration, this architecture addresses privacy issues among partners in
business-to-business applications.
Legend
Neighbor Link
Routing Table Entry
(First-Tier Router)
Border Router
(Second-Tier Router)
Core Router
Distribution Routers
Enterprise Networks
Access Routers
Contrast the better topology (right in Figure 29). BR and the first-tier router R1
both reside on the same side of the WAN link (possibly even on the same host
computer). In this topology, WAN failure does not disconnect the entire Remote
Zone, since BR remains in contact with R1. BR need not reconfigure its zone map,
so it avoids associated delays.
Straightfoward Better
Legend
Main Zone Main Zone
Local Network
Neighbor Link
Routing Table Entry
(First-Tier Router) BR BR
Border Router
(Second-Tier Router)
R1
WAN
WAN
R2
Legend
Local Network
Neighbor Link
Routing Table Entry
(First-Tier Router)
Border Router
(Second-Tier Router)
Net A
Zone A
BR1 BR2
Zone B
L1 L2
WAN
M1 M2
Net B
Zone A
Legend
Local Network
Neighbor Link
Routing Table Entry BR
(First-Tier Router)
Border Router Partner P Zone Partner Q Zone
(Second-Tier Router)
P1 Q1
Fault Tolerance Adding fault tolerance to the topology of Figure 31 would seem straightforward,
but actually adds an unexpected complication. Figure 32 on page 119 depicts the
resulting topology. Notice that we address two aspects of fault tolerance (as we
did in Figure 30):
• Redundant border routers (BR1 and BR2) guard against failure of either
member of this pair. BR1 and BR2 each connect the hub to both partner zones
(zone P and zone Q).
• Redundant routing across WAN communications guards against WAN link
failure. The familiar X pattern is repeated within each partner zone.
Legend
Local Network
Neighbor Link
Routing Table Entry
(First-Tier Router)
Border Router
(Second-Tier Router)
Zone A
WAN WAN
Backlog Protection
The Connected Neighbors page displays the peak backlog for each neighbor; see
Connected Neighbors on page 140.
Maximum Backlog
An extremely large backlog can cause severe problems for rvrd and its host
computer. Administrators can configure rvrd to protect against this possibility.
When enabling this feature, the administrator specifies the maximum permissible
backlog (in kilobytes). When an outbound backlog of this size accumulates for
any neighbor connection, rvrd automatically disconnects from that neighbor,
clears the corresponding outbound data buffer, and attempts to reconnect to the
neighbor.
To obtain a reasonable estimate for the threshold value that triggers this action,
calculate the process storage available to rvrd, divided by the number of
neighbor connections it serves.
You can configure this feature separately for each routing table entry. The router
applies that maximum to all of its neighbor connections.
To configure this feature, see Routers on page 148.
Notice that enabling this feature represents a deliberate decision to discard data in
certain extreme circumstances. When this feature is disabled (the default), the
routing daemon does not protect against backlog. The decision to use this feature
must be based on the business requirements of the enterprise.
Idle
A routing daemon process can output a running log of its activity. System
administrators can use the resulting log files to monitor neighbor connections,
subject interest and message flow.
To configure the kinds of normal activity to log, see Logging on page 147.
To configure the destination of log output, see Log Destination on page 54.
The command line parameter -log is obsolete in release 6 (and later). Use the
browser administration interface to configure rvrd logging categories.
Version 7.3.0
2004-09-08 14:03:13 rvrd: Hostname: optimist
2004-09-08 14:03:13 rvrd: Hostname IP address: 10.101.2.140
2004-09-08 14:03:13 rvrd: Detected IP interface: 127.0.0.1 (lo)
2004-09-08 14:03:13 rvrd: Detected IP interface: 10.101.2.140 (eth0)
2004-09-08 14:03:13 rvrd: Using ticket file /usr/local/tibco/bin/tibrv.tkt
2004-09-08 14:03:13 rvrd: Using store file /tmp/1.admin
2004-09-08 14:03:13 rvrd: Warning: zlib compression not supported in SSL
initialization.
2004-09-08 14:03:13 rvrd: OpenSSL 0.9.7c 30 Sep 2003
2004-09-08 14:03:13 rvrd: Initializing random pool...
2004-09-08 14:03:13 rvrd: Invoking callback for case 2 and certificate 1.
Next, the routing daemon reads its configuration from its store file. In this
example, it defines a router (routing table entry) named optimist. That router
has an accept any neighbor interface, and a local network interface.
2004-09-08 14:03:13 rvrd: [optimist]: Defined.
2004-09-08 14:03:13 rvrd: [optimist]: Any neighbor is allowed to connect to local
port 9666. Link cost: 1.
The routing daemon finishes its start sequence by reporting the URL bindings of
its browser administration interfaces.
2004-09-08 14:03:13 rvrd: Http interface - http://optimist.rv.tibco.com:8000/
Now the routing daemon begins normal operations. Log items reflect neighbor
connections to other routers (viggen-r1), exchange of subscription interest
information, and forwarding of message data.
2004-09-08 14:13:26 rvrd: [optimist]: Connected to viggen-r1.
2004-09-08 14:18:03 rvrd: [optimist]: Sending cancel for [TEST] to viggen-r1 for
source 0A65023F/hpux11-viggen-n1.
Then optimist discovers another routing daemon (fanox) serving the same local
network and service (redundancy for fault tolerance). Then it loses contact with
fanox.
rvrd
Command
Remarks The rvrd process subsumes the behavior of rvd, so it is not necessary to run a
separate rvd process on computers that run rvrd. We recommend against running
both components on the same computer.
rvrd must run on a host computer with a permanent IP address. For example, a
temporary address assigned by DHCP is invalid.
(Sheet 1 of 7)
Parameter Description
-store filename This file contains the routing table entry and parameters that
configure rvrd.
rvrd reads this file when the process starts, and writes this file
each time you change the configuration using the browser
administration interface.
-https ip_address:https_port To limit access to a browser on the rvrd host computer, specify
127.0.0.1 (the local host address).
-https https_port
When the IP address is absent, the daemon accepts
connections through any network interface on the specified
HTTP or HTTPS port.
If the explicitly specified HTTP port is already occupied, the
program exits.
If the explicitly specified HTTPS port is already occupied, the
program selects an ephemeral port.
When the -http 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.
When the -https parameter is entirely absent, the default
behavior is to accept secure connections from any computer on
an ephemeral HTTPS port.
In all cases, the program prints (in its start banner and log file)
the actual HTTP and HTTPS ports where it accepts browser
administration interface connections.
(Sheet 2 of 7)
Parameter Description
-http-only Disable HTTPS (secure) connections, leaving only an HTTP
(non-secure) connection.
-listen tcp_port rvd (and by extension, rvrd operating within the local
network) opens a TCP client socket to establish
-listen ip_address:tcp_port
communication between itself and its client programs. The
-listen socket_protocol:tcp_port -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 on page 28.
(Sheet 3 of 7)
Parameter Description
-no-lead-wc | Sending to subjects with lead wildcards (for example, > or
-lead-wc *.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.
(Sheet 4 of 7)
Parameter Description
-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.)
(Sheet 5 of 7)
Parameter Description
-compress-level level When present, this option guides the trade-off between data
compression and data latency. Acceptable values are integers
in the range [1, 10].
• 1 favors minimum latency, sacrificing compression
efficiency.
• 10 favors maximal compression, accepting the concomitant
cost of latency.
(Sheet 6 of 7)
Parameter Description
-rvdm-reverse-asym When present, this daemon reverses the direction of the
RVDM multicast groups. If RVDM instructs it to listen on
group 225.1.1.1 and send on 225.2.2.2, it reverses direction
and instead listens on 225.2.2.2 and sends on 225.1.1.1.
For a usage scenario, see Asymmetric Multicast on page 218.
When absent, this daemon obeys multicast group designations
from RVDM without alteration.
-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 on page 52.
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. When using RVDM,
use care to avoid violating this restriction inadvertently. You
must not use the inbox_port for the RVDM control channel. You
must not define a subject map for the inbox_port. You must not
specify the inbox_port as an effective port in the RVDM port
map.
(Sheet 7 of 7)
Parameter Description
-log-max-size size When present, activate the log rotation regimen (see Log
Rotation on page 54).
-log-max-rotations n
When you specify these options, you must also specify
-logfile.
-log-config config_log_filename Send duplicate log output to this file for log items that record
configuration changes. The daemon never rotates nor removes
this special log file. Instead, this file remains as a record of all
configuration changes.
When absent, the default is stderr.
The browser administration interface lets you control rvrd from a web browser.
You can configure its operating parameters, and view operating statistics.
Topics
Navigation
All browser administration interface pages display a navigation panel at the left
side of the page. Use these links to display other pages.
(Sheet 1 of 2)
Local This page summarizes the local networks of a router; see Local
Networks Networks on page 138.
Daemon Subject Map This page summarizes RVDM subject maps by service
Manager number.; see Subject Map Summary on page 71.
Port Map This page displays the RVDM port map; see Port Map on
page 74.
Configuration Daemon This page lets you configure parameters that control
Parameters configuration access and router logging; see Daemon
Parameters on page 145.
Routers This page lets you configure routers. You can access additional
configuration pages through links on this page. See Routers on
page 148, and the sections that follow it.
XML This page lets you view the current configuration as an XML
Configuration document, and reconfigure the component by submitting an
edited XML document.
Certificates This page lets you configure certificates that the daemon uses
to identify itself in secure protocols. See Certificates on
page 163.
Log Out This item logs out the current user or Administrator. See Log
Out on page 147.
(Sheet 2 of 2)
General Information
rvrd (like all Rendezvous components) displays information about itself on this
page.
To display this page, click General Information in the left margin of any page of
the rvrd browser administration interface.
(Sheet 1 of 2)
Item Description
component The name of the program—rvrd (or rvsrd).
host name The hostname of the computer where the daemon process runs.
Notice that the daemon process can run on one computer, while you access its
browser interface from another computer.
(Sheet 2 of 2)
Item Description
IP address The IP address of the computer where the daemon process runs.
client port The TCP port where the daemon listens for client connections.
network The number of network services on which this daemon’s clients communicate.
services
routing The number of router names that this daemon embodies; see Routing Table Entry
names on page 83.
store file File name of the daemon’s store file; see the command line parameter -store for
rvsd on page 180, and for rvsrd on page 184.
managed A link indicates that this daemon is managed (see Chapter 7, Daemon Manager, on
page 209). The link is the name of an RVDM instance; to view or interact with the
instance, click this link.
Otherwise, this daemon is a non-managed daemon.
control The RVDM control channel specification of a managed daemon; see -rvdm on
channel page 47.
For non-managed daemons, this field displays the string disabled.
Local Networks
(Sheet 1 of 2)
Item Description
Router Name This page groups local networks by router name (routing table entry). A box in
this column indicates the name of the routing table entry that serves the local
networks shown to its right. See also Routing Table Entry on page 83.
Service The UDP or PGM service for communication on the local network.
On a managed daemon, if the RVDM port map shunts the service port, then this
number is the effective port (see Port Map on page 223).
Network The network specification (as specified by the routing table entry).
Specification
Local Routers This subtable lists other routers that serve this local network.
(Sheet 2 of 2)
Item Description
Hostname The name of the host computer where the other routing daemon runs.
Click here to view the browser administration interface for the other routing
daemon process.
IP Address The IP address of the host computer where the other routing daemon runs.
Subscriptions Total number of subscriptions over all transports within the local network, for
which clients have registered interest.
Click this link to view a list of the subscription subjects; see Subscription List on
page 63.
Connected Neighbors
rvrd displays information about its (actual) neighbor connections on this page.
To display this page, click Connected Neighbors in the left margin of any page of
the rvrd browser administration interface.
This page is related to—but not the same as—the page described in Neighbor
Interfaces on page 157.
(Sheet 1 of 2)
Item Description
table rows Each row in this table describes one neighbor connection.
Router Name This page groups neighbors by local router name (routing table entry). A box in
this column indicates the name of the local router that connects to the neighbors
show to its right. See also Routing Table Entry on page 83.
Neighbor The name of a remote router with which the local router has a neighbor
Name connection.
Click here to view the browser administration interface for the neighbor routing
daemon process.
Link Stats The name of the (local) neighbor interface that specifies this neighbor connection.
rvrd generated this name automatically when you configured the neighbor
interface. Click this name to view the Router Connection Statistics page.
(Sheet 2 of 2)
Item Description
Peak Backlog Backlog is outbound data awaiting transmission to a neighbor. This column
displays the peak backlog for each neighbor.
The Reset Statistics button on the Router Connection Statistics page resets this
figure to zero. It is also reset to zero when the neighbors become disconnected
and subsequently reconnect.
See also, Backlog Protection on page 120.
Connection statistics are not available when neighbors connect using SSL.
See also SSL Connection with Compression on page 162.
(Sheet 1 of 3)
Item Description
summary This list presents static information about the neighbor connection.
Router Name The name of the local router. (See also Routing Table Entry on page 83.)
Interface Number The name of the (local) neighbor interface that specifies the neighbor
connection. rvrd generated this number automatically when you configured
the neighbor interface, and incorporates it into the neighbor ID.
Local Port TCP port that this router uses to communicate with the neighbor.
(Sheet 2 of 3)
Item Description
Remote Port TCP port that the neighbor (remote router) uses to communicate with the local
router.
Backlog Limit When backlog protection is enabled, this item displays the threshold for
disconnect from the neighbor. See Backlog Protection on page 120.
Data Flow This table displays statistics about the volume of data on the neighbor
connection.
The Inbound row displays statistics about inbound data from the remote
neighbor to the local router.
The Outbound row displays statistics about outbound data from the local
router to the remote neighbor.
Miscellaneous This table displays statistics not related to either inbound or outbound data
Statistics transmission.
(Sheet 3 of 3)
Item Description
Peak Backlog Peak backlog of outbound data (in bytes) since the last reset of statistics. See
also, Backlog Protection on page 120.
Curr Backlog Current backlog of outbound data (in bytes). See also, Backlog Protection on
page 120.
Reconnects Cumulative count of times when the neighbor link became disconnected and
subsequently reconnected. (For example, network failure or backlog protection
could cause a disconnect.)
Total Inbound Cumulative counts of inbound and outbound bytes (without compression)
since the start of the neighbor connection. The Reset Statistics button does not
Total Outbound
affect these items.
Daemon Parameters
This page lets you configure parameters that affect overall daemon security.
To display this page, click Daemon Parameters in the left margin of any page of
the rvrd browser administration interface.
Primary The first administrator to register is called the primary administrator. In addition to
Administrator configuring the daemon, the primary administrator can also add, delete and
modify identification information pertaining to the other administrators.
Each daemon configuration can store up to 16 additional administrator name and
password pairs (after the primary administrator).
One Each daemon process permits only one administrator session at a time. When one
Administrator administrator is logged in, other administrators are locked out; this prevents
Session conflicts in which two administrators attempt to modify the configuration at the
same time. To terminate a administrator session, see Log Out (below).
(Sheet 1 of 2)
Item Description
Name Type a name string.
(Sheet 2 of 2)
Item Description
Delete Click this button to delete administrator identification
information.
This action is available only to the primary
Administrator.
Deleting the primary administrator also deletes all
other administrator.
Log Out
To end an administrative session, click Log Out in the left margin of the browser
administration interface. This item appears only when you are logged in as an
Administrator.
Daemons automatically log out administrator sessions that have been idle for 10
minutes.
Logging
This panel configures the kind of routing activity that the routing daemon
routinely outputs to its log file.
Item Description
Connections Log connection activity whenever this routing daemon
establishes or closes a connection to a neighbor.
Subject Data Log all messages that this routing daemon forwards to its
neighbors or receives from its neighbors.
To configure the destination of log output, see Log Destination on page 54.
To interpret the content of log output, see Routing Daemon Logging on page 122.
Routers
This page lets you configure routing table entries (router names). For more
information, see Routing Table Entry on page 83.
To display this page, click Routers in the left margin of any page of the rvrd
browser administration interface.
Identify each routing table entry by a globally unique name.
You can add a new entry or remove an existing entry at any time. (However,
border routing introduces restrictions; see Border Routing on page 149.)
For background information, see Routing Table Entry on page 83, and
Independent Routing Table Entries in One Process on page 98.
(Sheet 1 of 2)
Item Description
Existing This panel lists the routing table entries within this routing daemon process. Each
Routers row represents one routing table entry.
(Sheet 2 of 2)
Item Description
Router Name This column displays the router name of a routing table entry.
Click here to set the maximum backlog for the routing table entry; see Backlog
Protection on page 120.
When configured as a border router, the phrase (border policy) appears after the
router name. To configure or view the border policy, click this phrase; see Border
Policy on page 155. (For background information, see Policy on page 111.)
Local Network The number of local networks configured for a routing table entry.
Click here to view the page Local Network Interfaces Configuration on page 151.
Add Router To add a first-tier router, type its name, then click this button.
Add Border To add a border router, type its name, then click this button. See also, Border
Router Routing, below.
(border policy) To view the page Border Policy on page 155, click this phrase (border policy)
following the name of a border router.
Border Routing
For an introduction to the concepts of this feature, see Border Routing on
page 110.
This page lets you configure local networks for a routing table entry.
To display this page, click the number of local networks in a row of the Routers
page.
For background information, see Local Network on page 84.
This page is not the same as the page described in Local Networks on page 138.
(Sheet 1 of 2)
Item Description
existing local networks The upper table lists local networks. Each row represents one local
network.
(Sheet 2 of 2)
Item Description
Local Network Name The name of a local network. Local network names must be globally
unique.
To configure subject gating for a local network, click its name in the table of
existing local networks.
For more information, see Local Network on page 84.
Service The UDP or PGM service for communication on a local network. Programs
within the local network communicate using this service.
For more information, see Specifying the UDP or PGM Service on page 21.
Cost Path cost for routing between a local network and the routing daemon.
For more information, see Load Balancing on page 95.
Add Local Network To add a new local network, type the specifications and click this button.
Interface
Subject Gating
This page lets you configure subject gating (import and export subjects) for a local
network.
To display this page, click the name of a local network in a row of the Local
Network Interfaces Configuration page.
For background information, see Subject Gating on page 85, and Subject Filtering
with Wildcards on page 85.
(Sheet 1 of 2)
Item Description
Import Subjects This table lists import subjects.
The local network can import subjects that match these names. You can
remove a subject at any time.
(Sheet 2 of 2)
Item Description
Export Subjects This table lists export subjects.
The local network can export subjects that match these names. You can
remove a subject at any time.
adding subjects To add subjects, specify the subject string (which may contain wildcards)
here, and click one of three buttons:
• Import
• Export
• Import and Export
Border Policy
This page lets you configure policy for a border router—that is, the subjects that
the router forwards between its interfaces.
To display this page, click the phrase (border policy) following the name of a
border router in the Routers page.
For background information, see Policy on page 111 (and the items that follow it),
and Subject Filtering with Wildcards on page 85.
Item Description
From Choose a From interface from this menu.
Show Configuration To display the current set of subjects that the border router forwards from
the From interface to the To interface, click this button. The
Allowed Subjects table (below) then displays the current list for that
ordered pair.
Allowed Subjects This table lists subjects that the border router allows for the current pair of
From interface and To interface. To update this table, click the
Show Configuration button.
You can remove a subject at any time.
Remove Allowed To delete an allowed subject, check its select box, and click this button.
Subject
Add Allowed Subject To add an allowed subject, choose the From interface and To interface, then
specify the subject string (which may contain wildcards) and click this
button.
First Border A border router can restrict a subject, forwarding only those messages that
have not yet crossed another border. To restrict the new subject in this way,
check the First Border box before adding the subject.
Neighbor Interfaces
This page lets you configure the potential neighbor connections of a routing table
entry.
To display this page, click the number of neighbors in a row of the Routers page.
For background information, see Neighbors on page 89.
This page is related to—but not the same as—the page described in Connected
Neighbors on page 140.
(Sheet 1 of 2)
Item Description
existing neighbor The upper table lists configured neighbor interfaces. Each row represents
interfaces one potential neighbor.
Interface ID The name of this neighbor interface. rvrd generates this name
automatically, incorporating the router name.
(Sheet 2 of 2)
Item Description
Local Endpoint This three-part string denotes the local end of the potential neighbor link. It
has the form:
router_name@host:TCP_connect_port
Remote Endpoint This three-part string denotes the remote end of the potential neighbor
link. It has the form:
router_name@host:TCP_connect_port
The token Any can appear in these three parts. For the semantics of this
notation see Accept Any as Neighbor on page 92, and Seek Neighbor with
Any Name on page 92. See also, Four Variations of the Form on page 160.
Item Description
Accept Any Use this variation of the form to specify a neighbor interface in which this routing
daemon accepts neighbor connections from any other routing daemon.
A distinguishing characteristic of accept any neighbors is a remote endpoint string
in which the router name, the host and the port are all Any.
Restrictions:
• It is not possible to configure more than one accept any neighbor interface.
• Accept any interfaces cannot use SSL neighbor connections.
• Border routers cannot configure an accept any neighbor interface.
Passive Use this variation of the form to specify a neighbor interface in which the local
router does not actively attempt to connect to the remote neighbor. Instead, it
passively waits for the remote neighbor to request a connection.
A distinguishing characteristic of passive neighbors is a remote endpoint string in
which the router name is specified, but the host and port are Any.
For more information, see Passive Neighbor on page 91.
Active Use this variation of the form to specify a neighbor interface in which the local
router actively attempts to connect to the remote neighbor.
A distinguishing characteristic of active neighbors is a remote endpoint string in
which the router name, the host and the port are all specified.
For an example, see Active Neighbor on page 91.
Item Description
Seek Any Use this variation of the form to specify a neighbor interface in which this routing
daemon attempts to connect to any remote routing daemon that matches the
specification.
A distinguishing characteristic of seek any neighbors is a remote endpoint string in
which the router name is Any, but the host and the port are specified. In addition,
the local endpoint port is Any.
Restrictions:
• It is illegal to configure two or more seek any neighbor interfaces with the same
host.
• Seek any interfaces cannot use SSL neighbor connections.
• Border routers cannot configure a seek any neighbor interface.
For more information, see Seek Neighbor with Any Name on page 92.
(Sheet 1 of 2)
Item Description
Local This three-part specification denotes the local end of the potential neighbor link:
Endpoint
• Router Name is the name of the local routing table entry. rvrd always
automatically fills in this name.
• Host is a hostname or IP address corresponding to a network interface in the
local rvrd host computer. For convenience, rvrd automatically fills in this field
with the fixed token, local_host, which denotes the default network interface
of the local rvrd host computer. (Note that this token does not denote the
LOCALHOST loopback network address.) You may override this default value by
typing an alternate hostname or IP address.
• Port is the local TCP port where the local router accepts neighbor connection
requests from remote routers. For more information, see Local Connect Port on
page 89.
(Sheet 2 of 2)
Item Description
Remote This three-part specification denotes the remote end of the potential neighbor link:
Endpoint
• Router Name is the name of the remote routing table entry.
• Host is the hostname or IP address of the remote rvrd host computer.
• Port is the remote TCP port where the local router attempts to connect to remote
routers.
Normal With this option, the two neighbors neither compress data nor use SSL protocols
Connection for communication on the link between them.
Data With this option, the two neighbors compress data on the link between them. To
Compression enable compression, you must select this option on both neighbors. For more
without SSL information, see Data Compression on page 90.
SSL With this option, the two neighbors communicate using both compression and SSL
Connection protocols. To enable SSL, you must select this option on both neighbors—otherwise
with they cannot establish a connection.
Compression
This option appears only in the Passive and Active variations of the configuration
form.
Connection statistics are not available when neighbors connect using SSL.
See also Router Connection Statistics on page 141.
In older releases of the routing daemon, SSL and compression are mutually
exclusive features. For backward compatibility with older neighbors, this feature
degrades gracefully to SSL without compression.
Certificate of In SSL protocols, the local router expects the remote router to present this certificate
Expected as evidence of its identity. Paste the text of the public certificate (in PEM encoding)
Peer in this field.
This field appears only in the Passive and Active variations of the configuration
form.
Cost The path cost of this neighbor link (see Load Balancing on page 95).
Certificates
This page lets you configure the X.509 certificates that the routing daemon uses to
identify itself.
To display this page, click Certificates in the left margin of any page of the rvrd
browser administration interface.
For background information, see Certificates and Security on page 52 in TIBCO
Rendezvous Concepts.
Each daemon process keeps a list of certificates it can use to identify itself. These
certificates are numbered for easy reference. The first panel on this page
determines which of these certificates the daemon uses for particular tasks. The
remainder of the page lets you enter the certificates.
Certificate Uses
Figure 45 rvrd Certificate Uses Form
(Sheet 1 of 2)
Item Description
HTTPS Set the certificate for the secure browser administration interface.
To avoid security warnings from the web browser, distribute this certificate to
authorized administrators.
For security information, see Level of Trust—CA-Signed versus Self-Signed
Certificates on page 176.
(Sheet 2 of 2)
Item Description
Routers to Set the certificate for secure SSL neighbor connections.
Routers
Distribute this certificate to each applicable neighbor.
Certificate List
Figure 46 rvrd Certificate List
Item Description
certificate Use this number to refer to the certificate in the Certificate Uses panel.
number
Add from Enter a file name and a private key password. When you click Add from File, the
File daemon reads the certificate with private key from the file. The file may be in either
PEM encoding, or PKCS #12 format.
See also Security Factors on page 175.
Add from Paste the text of a certificate with private key. Enter a private key password.
Text
The certificate must be in PEM encoding.
See also Security Factors on page 175.
Self-Signed Each daemon process creates a self-signed certificate at start time, and registers it
Certificate in the list as certificate #1. You may use that certificate as is, add other certificates
to the list, or delete it and enter other certificates. For security information, see
Level of Trust—CA-Signed versus Self-Signed Certificates on page 176.
This self-signed certificate expires one year after creation.
CA-Signed You can also supply certificates signed by a certificate authority (CA). To use a
Certificate CA-signed certificate, you must supply not only the certificate and private key,
but also the CA’s public certificate (or a chain of such certificates). Concatenate
these items in one file or string. For more details, see CA-Signed Certificates on
page 175.
CA-signed certificates expire at dates recorded within the certificate data.
These two new daemons use SSL for secure connections to client program
transports:
• rvsd, the Rendezvous secure communications daemon, corresponds to rvd
• rvsrd, the Rendezvous secure routing daemon, corresponds to rvrd
This chapter describes the security features of these two daemons, and details the
parameters that differentiate them from their non-secure counterparts.
Topics
This chapter describes the two daemons that offer secure client connections:
• rvsd,the Rendezvous secure communications daemon, corresponds to rvd.
Chapter 4 describes rvd, the Rendezvous communications daemon.
• rvsrd, the Rendezvous secure routing daemon, corresponds to rvrd.
Chapter 5 describes rvrd, the Rendezvous routing daemon.
Secure Connections
The two ordinary Rendezvous daemons, rvd and rvrd, communicate with clients
over non-secure TCP connections. In contrast, their secure counterparts, rvsd and
rvsrd, communicate with clients over SSL connections, allowing secure client
communication over non-secure networks.
Restricting Access
Secure daemons restrict client access in three ways:
• Only authorized clients can connect to a secure daemon.
• Secure daemons restrict the combinations of network and UDP or PGM
service over which client transports can communicate.
• Secure daemons limit the subject space that its clients can access.
Plaintext Communication
Although they ensure secure client connections, both secure daemons transmit
messages as plaintext. That is, when they publish messages from clients to local
networks, those messages are not encrypted.
Motivation
Deploy secure daemons when clients must connect securely over a non-secure
network. This section illustrates example situations involving remote clients.
rvsd
Figure 47 depicts a hub and spoke architecture. An rvsd hub runs on a firewall
computer, and remote programs access the hub through secure SSL connections.
This arrangement lets trusted remote programs communicate with servers and
other programs inside the secure inner network. rvsd bars untrusted programs
from connecting to it.
Program Program
Firewall
Remote
rvd rvd rvsd SSL
Programs
rvsrd
Figure 48 rvsrd—Secure Connections across Double Firewall
SSL
Legend
rvrd rvsrd
Remote
Local Network SSL
Programs
Neighbor Link
Firewall Firewall
Routing Daemon Secure
DMZ
Inner Net
Figure 48 on page 169 depicts a situation with two Rendezvous routing daemons
configured to cross a double firewall. Remote programs initiate secure SSL
connections to a secure routing daemon hub (rvsrd) within the outer firewall
(DMZ network). A secure SSL neighbor link connects that secure routing daemon
with an ordinary routing daemon (rvrd) in the secure inner network.
To configure secure neighbor links, see SSL Connection with Compression on
page 162.
Preventing To prevent rvsrd from multicasting client messages within the DMZ network,
Multicast in the start rvsrd with the -no-multicast option. For background information, see
DMZ Disabling Multicast on page 38.
Users
Certificate Identification
The secure daemon can register zero or more X.509 public key identity certificates
per user. The secure daemon limits access to user programs that can sign SSL
protocol messages with a corresponding private key.
The secure daemon accepts all certificates in either PEM encoding or PKCS #12
format.
For more details, see CA-Signed Certificates on page 175.
Syntax User name and password strings must conform to these syntax specifications:
• The user name must be less than 128 characters. The combined length of the
user name and password must be less than 250 characters.
• These strings must consist of printable characters only, from any character set.
Dot (.), star (*), and greater-than (>) characters are permitted. However, we
recommend against using them except in legacy situations (for example,
where such names are already in use in another security system).
Limiting Access
You must explicitly authorize each local network by specifying these two
parameters. To authorize a local network, see Authorize Network and Service
Pairs on page 201.
Users can communicate only on the local networks that you authorize. A user
program cannot create a client transport that specifies an unauthorized local
network (the transport create call produces an error status code).
Default Local As an administrator, you can designate a default local network. A client transport
Network that does not specify particular network and service parameters automatically
communicates over this default local network; see Default Network and Service
on page 197.
Subject Authorization
Each secure daemon allows its users to communicate using a set of Rendezvous
subject names.
• Subjects authorized for sending can flow from client transports out to local
networks.
A client transport that sends a message with an unauthorized subject does not
receive any error indication; instead, the secure daemon silently discards the
message.
• Subjects authorized for listening can flow to client transports from local
networks.
A client transport that creates a listener with an unauthorized subject does not
receive any error indication—but the resulting listener object never receives
any messages.
Subject authorization applies equally to all users and all local networks.
All _INBOX subjects are implicitly authorized. It is not necessary to explicitly
authorize _INBOX subjects.
To authorize secure daemon subjects, see Authorize Subjects on page 202.
Security Factors
Store Files
The secure daemon store file contains very sensitive information. Store it on the
local file system of the secure daemon’s host computer, with tight file access, in a
physically secure environment. Ensure timely backup to secure media.
Core-Dump Files
Daemon Certificates
CA-Signed Certificates
Rendezvous does not support separating a leaf certificate from its signing CA
certificate. When arranging certificate data, you may supply either a self-signed
certificate, or a complete certificate trust chain, including leaf, intermediate
(which are optional), and root certificates—all in one certificate data file. In either
case, the entire certificate chain is contained in one package, and Rendezvous
components verify trust by comparing the entire package.
To better understand the way in which Rendezvous uses certificates and
certificate trust chains, compare it to the familiar model of web browser security.
In the familiar model, web browsers generally store a set of certificates
representing trusted certificate authorities (CAs), and use them to deduce the
authenticity of many certificates—any certificate signed using one of those
trusted CA certificates.
In contrast, to authenticate a user (or another daemon), Rendezvous secure
daemons require that a client-supplied certificate must exactly match a trusted
certificate previously stored with the daemon. Daemons use certificates to verify
digital signatures and message integrity, but they do not use CA certificates to
authenticate client certificates. Similarly, Rendezvous clients verify certificates
from Rendezvous daemons by matching them against trusted certificates
previously registered with the client program.
If you require CA-signed certificates, or if your organization already uses
CA-signed certificates, you may use them by packaging each one together with its
CA root certificate and intermediate certificates—a complete trust chain for each
certificate. You can use standard certificate utilities to create certificate files in the
appropriate encoding formats.
Passwords
Private key files use password-encryption for security. Nonetheless, these files are
important points of vulnerability.
To guard against attacks, ensure that file system storage is secure, and keep all
passwords secure.
• Do not store passwords in non-secure files or on non-secure file systems.
• Control access to sensitive files—even when those files are
password-encrypted.
• Never hard-code passwords in application programs, nor accept them as
command line parameters.
• Code programs to erase passwords from process storage before exiting.
• Never write passwords in convenient locations.
• Never send passwords in plaintext messages.
• Choose passwords carefully.
Behavioral Differences
Subject Gating
Secure daemons are silent when subject gating parameters preclude send or listen
operations:
• Subjects authorized for sending can flow from client transports out to local
networks.
A client transport that sends a message with an unauthorized subject does not
receive any error indication; instead, the secure daemon silently discards the
message.
• Subjects authorized for listening can flow to client transports from local
networks.
A client transport that creates a listener with an unauthorized subject does not
receive any error indication—but the resulting listener object never receives
any messages.
Browser Connections
Secure daemons automatically open both HTTP and HTTPS ports for browser
administration interface connections—unless you specify otherwise. When an
HTTPS connection is available, the daemon uses it; that is, whenever possible, it
transfers non-secure HTTP communication over to its secure HTTPS connection.
You can block the secure HTTPS connection by specifying -http-only, which
leaves only the non-secure HTTP connection.
You can block all browser administration interface connections by specifying
-no-http.
rvsd
Command
Purpose The command rvsd starts the Rendezvous secure communications daemon
process—the secure counterpart to rvd.
Remarks This section describes only those aspects where rvsd differs from rvd. For details
that both daemons share, see rvd on page 42.
Although rvd usually starts automatically, administrators must start rvsd by
explicit command.
(Sheet 1 of 3)
Parameter Description
-store filename This file contains the security parameters that configure rvsd.
rvsd reads this file when the process starts, and writes this file
each time you change the configuration using the browser
administration interface.
The secure daemon store file contains very sensitive
information. Store it on the local file system of the secure
daemon’s host computer, with tight file access, in a physically
secure environment. Ensure timely backup to secure media.
See also Appendix B, Store Files, on page 419.
-https ip_address:https_port To limit access to a browser on the rvsd host computer, specify
127.0.0.1 (the local host address).
-https https_port
When the IP address is absent, the daemon accepts
connections through any network interface on the specified
HTTP or HTTPS port.
If the explicitly specified HTTP port is already occupied, the
program exits.
If the explicitly specified HTTPS port is already occupied, the
program selects an ephemeral port.
When the -http 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.
When the -https parameter is entirely absent, the default
behavior is to accept secure connections from any computer on
an ephemeral HTTPS port.
In all cases, the program prints (in its start banner and log file)
the actual HTTP and HTTPS ports where it accepts browser
administration interface connections.
(Sheet 2 of 3)
Parameter Description
-https-only Disable HTTP (non-secure) connections, leaving only an
HTTPS (secure) connection.
-listen tcp_port rvsd (and by extension, rvsrd operating within the local
network) opens an SSL client socket to establish
-listen ip_address:tcp_port
communication between itself and its client programs. The
-listen socket_protocol:tcp_port -listen parameter specifies the SSL port where the
Rendezvous daemon listens for connection requests from
client programs. This -listen parameter of the secure
daemon corresponds to the daemon parameter of the transport
creation call (they must specify the same SSL port number).
The IP address specifies the network interface through which
this daemon accepts SSL 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 SSL port.
When this parameter is entirely absent, the default behavior is
to accept connections from any computer on SSL port 7500.
For more detail about the choreography that establishes
conduits, see Daemon Client Socket—Establishing
Connections on page 28.
-log-config config_log_filename Send duplicate log output to this file for log items that record
configuration changes. The daemon never rotates nor removes
this special log file. Instead, this file remains as a record of all
configuration changes.
When absent, the default is stderr.
(Sheet 3 of 3)
Parameter Description
-reliability time These parameters are the same as for rvd.
-max-consumer-buffer size For details, see Command Line Parameters on page 43.
-rxc-max-loss loss
-rxc-recv-threshold bps
-rxc-send-threshold bps
-rvdm
control_channel
-rvdm-reverse-asym
-reuse-port inbox_port
-logfile log_filename
-log-max-size size
-foreground
rvsrd
Command
Purpose The command rvsrd starts the Rendezvous secure routing daemon process—the
secure counterpart to rvrd.
Remarks This section describes only those aspects where rvsrd differs from rvrd. For
details that both daemons share, see rvrd on page 124.
Administrators must start rvsrd by explicit command.
(Sheet 1 of 3)
Parameter Description
-store filename This file contains the security parameters that configure rvsrd,
as well as the routing table entry and parameters that
configure its routing daemon behavior.
rvsrd reads this file when the process starts, and writes this
file each time you change the configuration using the browser
administration interface.
The secure daemon store file contains very sensitive
information. Store it on the local file system of the secure
daemon’s host computer, with tight file access, in a physically
secure environment. Ensure timely backup to secure media.
See also Appendix B, Store Files, on page 419.
(Sheet 2 of 3)
Parameter Description
-http-only Disable HTTPS (secure) connections, leaving only an HTTP
(non-secure) connection.
-listen tcp_port rvsd (and by extension, rvsrd operating within the local
network) opens an SSL client socket to establish
-listen ip_address:tcp_port
communication between itself and its client programs. The
-listen socket_protocol:tcp_port -listen parameter specifies the SSL port where the
Rendezvous daemon listens for connection requests from
client programs. This -listen parameter of the secure
daemon corresponds to the daemon parameter of the transport
creation call (they must specify the same SSL port number).
The IP address specifies the network interface through which
this daemon accepts SSL 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 SSL port.
When this parameter is entirely absent, the default behavior is
to accept connections from any computer on SSL port 7500.
For more detail about the choreography that establishes
conduits, see Daemon Client Socket—Establishing
Connections on page 28.
(Sheet 3 of 3)
Parameter Description
-idle These parameters are the same as for rvrd.
-reliability time For details, see Command Line Parameters on page 124.
-max-consumer-buffer size
-rxc-max-loss loss
-rxc-recv-threshold bps
-rxc-send-threshold bps1
-rvdm
control_channel
-rvdm-reverse-asym
-reuse-port inbox_port
-logfile log_filename
-log-max-size size
-log-max-rotations n
-log-config config_log_filename
-foreground
The browser administration interface lets you control rvsd and rvsrd from a web
browser. You can configure their operating parameters and view internal data
structures.
This section describes only those pages specific to the secure daemons. For
information about pages they share with their non-secure counterparts, see
Browser Administration Interface—rvd on page 56, and Browser Administration
Interface—rvrd on page 132.
Topics
Navigation
All browser administration interface pages display a navigation panel at the left
side of the page. Use these links to display other pages.
(Sheet 1 of 2)
Local This page summarizes the local networks of a router; see Local
Networks Networks on page 138.
Daemon Subject Map This page summarizes RVDM subject maps by service
Manager Summary number.; see Subject Map Summary on page 71.
Port Map This page displays the RVDM port map; see Port Map on
page 74.
(Sheet 2 of 2)
Routers This page lets you configure routers. You can access additional
configuration pages through links on this page. See Routers on
page 148, and the sections that follow it.
XML This page lets you view the current configuration as an XML
Configuration document, and reconfigure the component by submitting an
edited XML document.
Users These pages let you register authorized users; see Users on
page 199.
Networks and This page lets you configure the network and service pairs that
Services client transports can use for Rendezvous communication; see
Authorize Network and Service Pairs on page 201.
Subjects This page lets you configure the subjects that client transports
of a secure daemon can use for sending or listening; see
Authorize Subjects on page 202.
Certificates This page lets you configure certificates that the daemon uses
to identify itself in secure protocols. See Certificates on
page 163.
Log Out This item logs out the current user or administrator. See Log
Out on page 147.
Miscellaneous Current Log This page displays the most recent 4 kilobytes from the log file.
General Information
rvsd and rvsrd (like all Rendezvous components) display information about
themselves on this page.
To display this page, click General Information in the left margin of any page of
the secure daemon browser administration interface.
(Sheet 1 of 2)
Item Description
component The name of the program—rvsd or rvsrd.
host name The hostname of the computer where the daemon process runs.
Notice that the daemon process can run on one computer, while you access its
browser interface from another computer.
IP address The IP address of the computer where the daemon process runs.
(Sheet 2 of 2)
Item Description
client port The SSL port where the daemon listens for client connections.
network The number of network services on which this daemon’s clients communicate.
services
store file File name of the daemon’s store file; see the command line parameter -store for
rvsd on page 180, and for rvsrd on page 184.
managed A link indicates that this daemon is managed (see Chapter 7, Daemon Manager, on
page 209). The link is the name of an RVDM instance; to view or interact with the
instance, click this link.
Otherwise, this daemon is a non-managed daemon.
control The RVDM control channel specification of a managed daemon; see -rvdm on
channel page 47.
For non-managed daemons, this field displays the string disabled.
Daemon Parameters
This page lets you configure parameters that affect overall daemon security.
To display this page, click Daemon Parameters in the left margin of any page of
the secure daemon browser administration interface.
For rvsd, this page contains two areas—Administrator and Password panel, and
a Default Network and Service panel. For rvsrd, this page adds a third panel for
logging parameters; see Logging on page 147.
Primary The first administrator to register is called the primary administrator. In addition to
Administrator configuring the daemon, the primary administrator can also add, delete and
modify identification information pertaining to the other administrators.
Each daemon configuration can store up to 16 additional administrator name and
password pairs (after the primary administrator).
One Each daemon process permits only one administrator session at a time. When one
Administrator administrator is logged in, other administrators are locked out; this prevents
Session conflicts in which two administrators attempt to modify the configuration at the
same time. To terminate a administrator session, see Log Out (below).
(Sheet 1 of 2)
Item Description
Name Type a name string.
(Sheet 2 of 2)
Item Description
Delete Click this button to delete administrator identification
information.
This action is available only to the primary
administrator.
Deleting the primary administrator also deletes all
other administrators.
Log Out
To end an administrative session, click Log Out in the left margin of the browser
administration interface. This item appears only when you are logged in as an
Administrator.
Daemons automatically log out administrator sessions that have been idle for 10
minutes.
Unless you explicitly set values for these default parameters, they remain null—
indicating the absence of any default value.
When either default is absent, the secure daemon will refuse connections from
programs that rely on the default. As a result the transport creation call in the
program fails.
Item Description
Network Type the default network.
Users
This page lets you configure the set of users that can connect to a secure daemon.
(In contrast, to configure administrative users, see Administrator and Password
on page 195.)
To display this page, click Users in the left margin of any page of the secure
daemon browser administration interface.
For background information, see Users on page 171.
Item Description
User Name Required. Every user must have a unique name, distinct from every
other user that this secure daemon administers.
For syntax rules governing user names, see User Name and Password
Identification on page 171.
To add a user, type the user name, and click the Add User button.
Existing Users
This list displays the users currently authorized to connect to the secure daemon.
Buttons operate on selected users from the list.
Button Description
Password Displays a page that lets you view and set the password for the selected
user.
Certificates Displays a series of pages that let you view and set public certificates for
the selected user.
Remove Selected Deletes one or more selected users from the list.
Users
This page lets you configure the network and service pairs that users can access
through the secure daemon.
To display this page, click Networks and Services in the left margin of any page
of the secure daemon browser administration interface.
Item Description
Network & This table lists the pairs of network and service that all authenticated
Service Pairs users may access through this secure daemon.
To remove a pair from this list, click to check its Select box, then click the
Remove Selected Network & Service Pairs button.
Add To add access to a network and service pair, type the specifications and
click the Add button.
Authorize Subjects
This page lets you configure the Rendezvous subjects that users can access
through the secure daemon.
To display this page, click Subjects in the left margin of any page of the secure
daemon browser administration interface.
For background information, see Subject Authorization on page 173.
_INBOX subjects are implicitly authorized both for listening and sending. You do
not need to authorize them explicitly on this page.
(Sheet 1 of 2)
Item Description
Authorized to Listen This table lists subjects to which authenticated users may subscribe.
Authorized to Send This table lists subjects to which authenticated users may send messages.
(Sheet 2 of 2)
Item Description
Remove Selected To remove authorization for particular subjects, select the affected subjects
Subjects and click this button.
Subject To add access to a subject, type the subject here and click one of three
buttons:
• Authorize to Listen
• Authorize to Send
• Authorize to Listen and Send
Certificates
This page lets you configure the X.509 certificates that a secure daemon uses to
identify itself.
To display this page, click Certificates in the left margin of any page of the rvsd
or rvsrd browser administration interface.
For background information, see Certificates and Security on page 52 in TIBCO
Rendezvous Concepts.
Each daemon process keeps a list of certificates it can use to identify itself. These
certificates are numbered for easy reference. The first panel on this page
determines which of these certificates the daemon uses for particular tasks. The
remainder of the page lets you enter the certificates.
Certificate Uses
Figure 57 rvsrd Certificate Uses Form
(Sheet 1 of 2)
Item Description
HTTPS Set the certificate for the secure browser administration interface.
To avoid security warnings from the web browser, distribute the public portion of
this certificate to authorized administrators.
(Sheet 2 of 2)
Item Description
Routers to Set the certificate for secure SSL neighbor connections.
Routers
Distribute the public portion of this certificate to each applicable neighbor.
(This item is included in routing daemons only; it is absent from rvsd.)
Daemon to Set the certificate for secure SSL client transport connections.
Clients
Distribute the public portion of this certificate to each client program; see Secure
Daemon on page 60 in TIBCO Rendezvous Concepts.
Certificate List
Figure 58 rvsrd Certificate List
Item Description
certificate Use this number to refer to the certificate in the Certificate Uses panel.
number
Add from Enter a file name and a private key password. When you click Add from File, the
File daemon reads the certificate with private key from the file. The file may be in either
PEM encoding, or PKCS #12 format.
See also Security Factors on page 175.
Add from Paste the text of a certificate with private key. Enter a private key password.
Text
The certificate must be in PEM encoding.
See also Security Factors on page 175.
Self-Signed When the daemon creates its store file (the first time it starts), it also creates a
Certificate self-signed certificate, and registers it in the list as certificate #1. You may use that
certificate as is, add other certificates to the list, or delete it and enter other
certificates.
The self-signed certificate expires one year after creation.
CA-Signed You can also supply certificates signed by a certificate authority (CA). To use a
Certificate CA-signed certificate, you must supply not only the certificate and private key,
but also the CA’s public certificate (or a chain of such certificates). Concatenate
these items in one file or string. For more details, see CA-Signed Certificates on
page 175.
CA-signed certificates expire at dates recorded within the certificate data.
Although it has a similar name, this feature component is not related to the
DaemonManager class of the configuration tools API.
Topics
Overview of RVDM
Motivation However, in other enterprises, distributing control over the network can result in
ineffective or inefficient use of resources. Centralizing network management can
help resolve these issues.
Rendezvous daemon manager (RVDM) implements a centralized management
paradigm, in which administrators manage network topology and resources,
coordinating the behavior of Rendezvous daemons throughout an enterprise.
Component Architecture
RVDM consists of four parts that work in concert (see Figure 59 on page 211):
• RVDM server is a web application that stores daemon management
information, and distributes it to managed daemons.
• RVDM control center is a browser administration interface for the server.
Administrators use this interface to configure and manage daemon behavior.
• JMX MBean is a JMX interface in the server (new in release 8.2).
Administrators can use this interface to configure daemon behavior.
The JMX interface requires Java 1.6 (or later).
• Managed daemons are rvd instances that cooperate with the RVDM server.
The RVDM server and managed daemons communicate over an RVDM
control channel. (Administrators must configure this control channel in the
RVDM server and in every managed daemon.)
RVDM Server
www
RVDM
www Control Center
JMX
Interface JConsole
Web browser
RVDM control channel
TIBCO Rendezvous
Managed
Daemons
Backward Compatibility
The Rendezvous daemon is a crucial component of RVDM. Daemons from release
8.0 (and later) can coexist in the same network with daemons from earlier
releases, however, the following conditions restrict interoperability:
• Daemons earlier than release 8.0 cannot operate as managed daemons.
• Managed daemons and non-managed daemons cannot communicate on a
service for which you have configured a subject map. This restriction prevents
non-managed daemons from interfering with managed daemons (but it does
not completely prevent the reverse). For details, see Mixed Environment—
Subject Maps on page 220.
• Managed daemons and non-managed daemons can communicate on a service
for which you have not configured any subject map. This feature lets you
roll-out managed daemons gradually throughout a large enterprise, while
maintaining interoperability—managing network topology only as the final
step.
Network topology and data flow affect network behavior and performance. You
can use RVDM to manage network topology.
Motivation
Separating To understand the motivation for central management of network topology,
Delivery from consider this analogy. The customers of a railroad freight company are concerned
Transport that their shipments arrive on schedule and in good condition; they are usually
not interested in choosing the exact tracks upon which their freight travels. In
contrast, railroad track managers can improve speed, safety and resource
efficiency by thoughtfully assigning trains to specific tracks.
A similar division of interests applies in some large information enterprises.
Application developers and administrators are concerned that data arrives in a
timely fashion, but the actual details of network transport are usually not of
particular interest. Developers and administrators may assign transport services
piecemeal or arbitrarily, and only later discover a more efficient way to isolate
application data or to allocate network bandwidth. RVDM is a tool that lets
administrators globally reassign application data to network services and
multicast groups, in order to improve performance, scalability or flexibility.
Multicast Multicast addressing lets you isolate data according to application destinations.
Addressing Ordinary broadcast addressing requires all receiving Rendezvous daemons to
examine each inbound data packet and filter by service and subject. With
multicast addressing, sending daemons can pre-sort outbound data into multicast
groups. Receiving host computers can efficiently ignore irrelevant packets at
hardware and operating system levels—passing exactly the correct subset of
packets to the receiving Rendezvous daemon. In a network that carries data from
several unrelated applications, appropriate use of this technique can reduce
daemon load, dropped packets and retransmissions, improving processor and
I/O utilization, application performance, and overall network performance.
RVDM lets you administer multicast addressing from a centralized control point,
instead of separately modifying many applications or application instances.
subjects and listener subjects. You can use subject maps to improve network
efficiency (as described above). For details, see Subject Map, page 214.
A managed service is a service for which RVDM manages its behavior (for
example, with a subject map).
• The port map globally overrides the service (that is, port) specifications of
application transports. You can use the port map to shift message traffic from
an original service (which application developers specify in transport creation
calls) to an effective service (which you configure with RVDM). For details, see
Port Map on page 223.
Transparency
RVDM network topology tools are transparent to application programs in the
sense that you do not need to recompile or relink application programs in order to
use RVDM. Instead, managed daemons rearrange message flow according the
configuration that you specify.
For example, consider existing application programs that specify transports to
communicate over service 7500, and exchange messages with subjects Foo and
Bar. An administrator can configure a subject map with service number 7500,
such that messages with subject Foo actually traverse the network on multicast
group 244.1.1.5, while messages with subject Bar traverse the network on
multicast group 244.1.1.9.
For network communication, the daemons separate the two subjects into the
specified multicast groups, while the transport objects within sending and
listening applications remain unchanged. Mapping occurs entirely within the
daemons that mediate between those applications and the network.
Subject Map
The primary tool for reorganizing Rendezvous network topology is the subject
map.
The term subject map is an abbreviation for subject-to-multicast-group map. A subject
map defines a mapping from Rendezvous subjects to multicast groups. When a
managed daemon applies a subject map to a managed service, it sorts and
separates messages into multicast groups, based on the message subjects. You can
use subject maps to improve network efficiency.
You can configure subject maps in the RVDM control center; the RVDM server
pushes the configuration to all its managed daemons, which do the actual sorting.
You may configure any number of subject maps. Each subject map applies to a
specific service (port number).
Interaction with When the port map feature is enabled, the service number of a subject map refers
Port Map to an effective port (not an original client application port). That is, managed
daemons apply the port map first, then apply subject maps afterward. (For
background information, see Port Map, page 223. For an example, see Order of
Operations, page 224.)
Specification
The following values define a subject map:
• a managed service, specified by its service number (that is, a UDP or PGM port
number)
• a mapping table, which maps Rendezvous subject names to multicast groups
Each row in a mapping table includes three items:
— a Rendezvous subject name (wildcards are permitted)
— multicast groups
— a relative rank (which serves as a tie-breaker when a message subject
matches several rows)
— other distinguished subjects (for example, _RVCM and _RVFT) that do not
match any row of the mapping table
• default user groups, for non-system messages with any other subject name (that
is, subjects that do not match any row of the mapping table, and are not
Rendezvous system messages)
Note that the service number implies a specific and unique network interface as
well (for more information, see Interaction between Service and Network
Parameters, page 20).
Example
To understand the concepts of subject maps, consider the two example subject
maps in Table 13.
Each subject map specifies a fine-grained division of the message flow within its
service. Because the action of a subject map is limited to a specific managed
service (specified by a service number), the two subject maps are independent,
and do not interfere with one another, even though some of their multicast group
numbers overlap.
Foo.> 225.1.1.3 3
Bar.* 225.1.1.4 4
Baz.> 225.1.1.1 5
Wildcard Subject Subject names in the mapping table may contain wildcard elements.
Matching Managed daemons use the following matching procedure to sort a subject into a
multicast group, based on the specification of a subject map:
1. Compare the subject against the subject column in each row of the mapping
table. The subject can match zero, one or several rows.
2. User subjects that do not match any row of the mapping table automatically
match the default user group.
3. Distinguished subjects that match the wildcard pattern _RV.> always match
the default system group—even if they match an explicit row of the mapping
table.
4. All other distinguished subjects (for example, _RVCM.> and _RVFT.>) map to
the default system group only if they do not match an explicit row of the
mapping table.
(For basic information about Rendezvous subject matching, see Using Wildcards
to Receive Related Subjects, page 66 in TIBCO Rendezvous Concepts.)
If the message subject matches more than one row of the mapping table, the
daemon nonetheless sends the message on exactly one multicast group, using
the row with the lowest rank to determine the corresponding multicast group.
Example
To understand the effects of matching on message flow, consider again the
example of Table 13 on page 215.
Single Match When an application transport using service 7500 creates a listener (L1) on subject
Foo.Bar, the managed daemon maps the subject to group 225.1.1.1, and listens
only on that group.
When an application transport using service 7500 sends a message with subject
Foo.Bar, the managed daemon maps the message to group 225.1.1.1. Listener
L1 receives the message.
Several Matches When an application transport using service 7500 creates a listener (L2) on subject
Foo.>, the managed daemon maps the subject to groups 225.1.1.1 and
225.1.1.2, and listens on both groups.
When an application transport using service 7500 sends a message with subject
Foo.Bar, even though the subject matches two rows, the managed daemon uses
rank to map the subject only to group 225.1.1.1, and sends the message only on
that group. Listener L2 receives the message through group 225.1.1.1.
When an application transport using service 7500 sends a message with subject
Foo.Foo, the managed daemon maps the message to group 225.1.1.2. Listener
L2 receives the message through group 225.1.1.2.
No Match When an application transport with service 7500 sends a message with subject
User Subject Bar.Foo, the subject does not match any row of the subject map, so the managed
daemon maps it to the default user group, 225.0.0.1.
See Also
For information about multicast groups, see Constructing the Network Parameter
on page 23.
For information about multicast performance, see Multicast Addressing on
page 25.
Asymmetric Multicast
Subject Map Each row in an RVDM subject map can specify multicasting in either of two ways:
Syntax
• Symmetric multicast—the same group for listening and sending. For example,
225.1.1.1.
• Asymmetric multicast—two multicast groups, one for listening and the other
for sending. For example, 225.2.2.2;225.1.1.1 (the general form is
listen;send).
Motivation Some enterprises use asymmetric multicast to direct message traffic along one
dimension. Figure 60 depicts an example in which two cache applications
cooperate for fault tolerance (top) and many users (bottom, only two are shown)
interact with them.
TIBCO Rendezvous
Green arrows in Figure 60 show the required message flow, while red lines
(marked with X) indicate undesirable flow:
• Each user must communicate with both caches in order to request and receive
data.
• Users must not communicate with other users, because users do not need to
see cache requests from other users, and forcing the daemon to discard those
request messages (based on subject names) could decrease useful throughput.
• The two caches must not communicate with each another, so the backup
cache’s daemon need not discard responses from the primary cache to the
users. Nonetheless, the two caches use a separate channel (not shown) to
coordinate for fault tolerance.
Asymmetric multicast offers one way to satisfy these constraints. Users send
requests to the cache on multicast group 225.1.1.1, which we call the upward
group, and listen for responses on multicast group 225.2.2.2, which we call the
downward group. The two caches do the inverse—they listen for user requests on
the upward group, and send responses on the downward group. Messages flow
up and down along separate channels, but not horizontally.
Configuring the If the request and response messages use different subject names, then the
Subject Map administrator could configure two separate rows in the subject map—mapping
request subjects to the upward group, and response subjects to the downward
group. When designing subject name conventions for an enterprise or
application, we recommend this approach.
Reversing the In contrast, if an existing subject name convention requires that some subjects
Subject Map must flow both upward and downward, the administrator must use a different
tactic when configuring the subject map.
One row of the subject map matches these bi-directional subjects, and maps them
to the asymmetric multicast groups 225.1.1.1;225.2.2.2—that is, listen on the
downward group, and send on the upward group. This configuration is correct
for the users in the example of Figure 60 on page 218.
However, the caches in Figure 60 must reverse this configuration—they must listen
on the upward group and send on the downward group. To arrange this
inversion, the administrator must supply the -rvdm-reverse-asym option when
starting the managed daemons that serve the caches. This option flips the
direction of asymmetric multicast in all rows of the subject map (that is, in all
rows that specify asymmetric multicast groups—it does not affect rows that
specify symmetric multicast).
See Also
-rvdm-reverse-asym on page 47
rvd A rvd B
with without
Subject Map Subject Map
225.1.1.1
TIBCO Rendezvous
The red arrow with an X indicates that managed daemon A discards all messages
from daemon B. Logic within daemon A prevents interference from daemon B.
However, the situation in the opposite direction is less absolute. Ideally, messages
would not flow from daemon A flow to daemon B either. When daemon B is
earlier than release 8.0, this flow can occur (green arrow with dashed line), and
can even flow to application B (because it happens to listen to multicast group
225.1.1.1). While we cannot prevent this flow, we do not support it, because the
Rendezvous daemon cannot ensure reliable delivery in this situation. (The same
logic in daemon A that prevents interference from daemon B also discards
retransmission requests from daemon B.)
Resolving When you notice these advisories or incidents, take action to eliminate the source
Interference of the interference. Techniques to resolve the situation might include any of the
following (in consultation with the administrator for application B):
• Terminate application B.
• Incorporate daemon B into the subject mapping regimen.
See Also In contrast, the behavior of daemons in a mixed environment with respect to the
port map is quite different; see Mixed Environment—Port Map on page 226.
Non-Network Messages
It should be intuitively obvious that subject maps affect only messages that
traverse the network. To clarify this distinction, Table 14 on page 221 presents
examples of exempt and affected message subjects.
Port Map
The port map is a secondary tool for reorganizing Rendezvous network usage.
The port map instructs managed daemons to shunt message traffic among
Rendezvous service ports. You can use the port map to rearrange and rationalize
network port usage.
You can configure the port map in the RVDM control center; the RVDM server
pushes the configuration to all its managed daemons, which do the actual
shunting.
You may configure one port map.
Scope The port map applies to reliable messages, certified messages, Rendezvous
protocol messages, multicast messages, and point-to-point (inbox) messages.
However, they do not apply to direct communication.
The port map applies to both daemon variants—TRDP and PGM.
Interaction with When the port map feature is enabled, the service numbers of subject maps refer
Subject Maps to effective ports (not original client application ports). That is, managed daemons
apply the port map first, then apply subject maps afterward. (For background
information, see Subject Map, page 214. For an example, see Order of Operations,
page 224.)
Service Pairs
The port map is a set of service pairs, which are ordered pairs with this signature:
(original port, effective port)
• The original port is the service port number that the client transport specifies.
• The effective port is the service port number that the managed daemon uses for
network communication on behalf of client transports that specify the
corresponding original port.
Shunting In effect, the port map overrides the service parameter of application transport
objects.
More specifically, each service pair specifies two complementary actions in
managed daemons:
• Listening
Non-Recursive The port map is a non-recursive mapping. That is, each daemon applies at most one
service pair to each client transport.
For example, consider this port map:
7501 7502
Order of Daemons apply the port map first, and then apply the subject map that pertains to
Operations the effective port (if one exists).
For example, consider the effect of combining the example port map in Table 15
(above), with the subject maps in Table 16:
225.0.0.0 (DU)
225.0.0.1 (DU)
225.0.0.2 (DU)
At the listener:
Notice that throughout this example, the managed daemon applies only the
subject map with service number 7501.
Name Description
Permitted
Symmetric Swap It is permitted to symmetrically map original port M to effective port N, while
simultaneously mapping original port N to effective port M.
Merge It is permitted to map several original ports to the same effective port.
Many-to-One
Forbidden
Caution
The port map feature has far-reaching ramifications. Before attempting to use the
port map feature, read and understand this section thoroughly.
While the effect of a port map might seem straightforward, the actual
consequences can be very complicated. This section presents operational aspects
of the port map feature.
Switchover Applying the port map (or applying changes to the port map) implicitly involves
all managed daemons. Depending on the size of your enterprise, the effect might
involve hundreds of daemons and thousands of transport objects—temporarily
interrupting Rendezvous communications throughout the network.
RVDM coordinates the switchover with all managed daemons. Managed
daemons destroy old transport and listener objects, and create new objects to
reflect the current port map. Meanwhile, daemons buffer outbound data from
clients (that is, data from send operations in client programs), with possible side
effects:
• Time The switchover could delay communications for several milliseconds, or
even several seconds.
If the delay exceeds a daemon’s reliability time, data loss can occur. (For
background information, see Reliability and Message Retention Time on
page 34.)
• Space While daemons buffer outbound data from clients, you can expect
daemon process storage to grow accordingly.
• Interaction One daemon that is slow to switch prohibits all the others from
resuming communications.
Figure 62 depicts two daemons and their applications. The managed daemon on
the left (rvd C) has a port map, which maps a transport in application C to the
effective port 7979. In contrast, the daemon on the right (rvd D) does not have a
port map, but application D has a transport that uses port 7979. Messages flow in
both directions between applications C and D on service 7979.
Application Application
C D
Svc 7979
rvd C rvd D
with without
Port Map Port Map
Svc 7979
TIBCO Rendezvous
See Also In contrast, the behavior of daemons in a mixed environment with respect to
subject maps is quite different; see Mixed Environment—Subject Maps on
page 220.
Daemon List
Each managed daemon sends periodic administrative messages to the RVDM
server indicating its status. Based on these status messages, the RVDM server
maintains a list of managed daemons, annotated with status information. You can
view a this list in the RVDM control center; see Daemons Tab on page 250.
Inactive Daemon When the stream of status messages from a managed daemon is interrupted, the
RVDM server marks that daemon as inactive.
When the stream of status messages resumes, the server marks the daemon as
active once again.
Purge The server periodically purges inactive daemons from the daemon list. At each
purge, the server removes from the list any daemons that have been inactive for
longer than the purge threshold.
Configuration Updates
When administrators modify the configuration of RVDM, the server pushes the
new configuration to all managed daemons. As each daemon receives and installs
the updated configuration, it confirms receipt to the RVDM server.
The server collects and tallies these confirmation messages. If any active daemon
fails to confirm receipt, the server reports an error. When an inactive daemon
becomes active again, the server ensures that the daemon receives and confirms
the configuration update.
Files
Table 18 RVDM Files (Sheet 1 of 2)
Administrative Tasks
This section outlines administrative tasks associated with RVDM, with references
to more detailed information.
Start Server
To start the RVDM server, see rvdm on page 233.
About the
Configuration Interface About Behavior
Subject Description
_RVDM.> In release 8.1.0 (and later) RVDM software uses
messages with these subjects to communicate with
managed daemons. Routing daemons must forward
these subjects in both directions.
Modifications to subject maps or the port map can dramatically affect daemon
performance and data latency. We strongly recommend that you make
modifications only during periods of low network usage.
This section explains the potential consequences of updating managed daemons.
While managed daemons update their local subject maps and port map, they
must buffer all data. Then they must resolve all the buffered data using the new
mappings.
When the overall network publishing rate is high, this buffering could result in
very high growth of process memory usage in managed daemons. Potential
problems could include exhausting available memory, high retransmission rates
exhausting network bandwidth, data loss.
To avoid these severe consequences, we strongly recommend choosing to update
managed daemons during times of low overall network activity. To estimate
overall network activity, you must take into account all publishers on all multicast
groups.
rvdm
Command
Purpose The command rvdm starts the RVDM server web application.
Location
OS Location
Windows rv_home/RVDM/rvdm.bat
UNIX rv_home/RVDM/rvdm.sh
Remarks The RVDM server is a Java web application. You can configure and deploy the
web application directly in a web container, or you can use this shell script to start
it.
Configure RVDM To configure RVDM while delaying any changes to daemon behavior, start RVDM
while Idle with the command line parameter -idle.
RVDM Requires The web application requires JRE 1.6 (or later). This prerequisite is not available
JRE 1.6 on the z/OS and IBM i operating system platforms.
Fault Tolerance RVDM servers on the same control channel automatically attempt run as
fault-tolerant partners. However, to correctly configure fault-tolerant operation,
all partners must access the same data directory (in a shared location); to
configure, see Data Directory on page 258.
(Sheet 1 of 2)
Parameter Description
-http http_port The browser administration interface accepts browser
connections on this 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 8080.
If this default port is unavailable, the operating system
assigns an ephemeral port number.
-idle When present, start rvdm in its idle state. You can configure
RVDM parameters, managed services and the port map—but
RVDM does not communicate with managed daemons.
(When the configuration is complete and satisfactory, stop
RVDM and restart it without this command line argument.)
When absent, start rvdm in its running state—managing
daemons.
-rvdm-home dir RVDM server uses this directory as the default location for
persistent storage.
• RVDM.options.xml is always in this directory.
• RVDM.data.xml is in this directory by default, unless you
override it with another location (see Data Directory on
page 258).
• RVDM.log.txt is in this directory by default, unless you
override its file pathname (see below).
(Sheet 2 of 2)
Parameter Description
-purge-threshold time RVDM regularly purges inactive daemons from its internal
list of managed daemons. An inactive daemon is one for
which RVDM has not received a heartbeat during an interval
that exceeds this value (in seconds).
This value must be greater than or equal to 15 seconds.
When absent, the default is 1 hour (3600 seconds).
For background information, see Daemon List on page 228.
-rmi-port The RMI registry within RVDM listens on this port for RMI
rmi_port registry requests.
When absent, the default value is 1099.
When present, the port you supply overrides the default. We
recommend using the default value unless it conflicts with
another RMI registry on the same host computer.
-mbean-port The MBean server within RVDM listens on this port for
mbean_port connection requests from JMX consoles.
When absent, the default value is 9589.
When present, the port you supply overrides the default.
For background information, see JMX Ports on page 259.
RVDM control center requires a web browser with Javascript. Any of the
following are acceptable:
• Microsoft Internet Explorer 6 and later (with latest patches)
• Firefox 1.5 and later
• Safari
Topics
User Login
The first time you start an RVDM server instance, two default users are
configured. The user names are user1 and user2, and the password for both of
them is CHANGE_ME. This arrangement can be useful during initial configuration
and testing phases. However, during regular operation we recommend limiting
access.
To ensure security, you must change these default users and passwords; see Users
on page 258.
Lockout
RVDM accepts only one user login at a time. Other users are locked out (including
the same user login from another browser).
Users must log out before closing the RVDM browser administration interface,
otherwise all users will be locked out.
If you are certain that another user is not actively using RVDM, you can logout
that user (overriding the lock-out feature).
RVDM automatically cancels an inactive login after approximately 60 minutes.
Alternatively, you can restart the RVDM web application, which cancels an open
login and begins again with a clean slate.
Navigation Tabs
Home Tab
The Home tab displays general information about the RVDM server.
For information about the port map feature and its use, see Port Map on page 223.
Table 20 on page 241 describes the graphical elements of the interfaces in
Figure 65 and Figure 66.
Figure 65 shows an example port map. To modify the port map, click the Edit Port
Map link, which displays an editable perspective on the port map, like the
example in Figure 66 on page 241. (Editing the RVDM configuration requires
login authentication.)
Item Description
Enable
Effective Port
Delete To delete a service pair from the port map, check its Delete box. Changes
take effect when you click Apply.
Item Description
Command Buttons
Add 1 Mapping Row To add a new service pair to the port map, click this button, and supply
values for the client and effective ports. Changes take effect when you click
Apply.
For information about the subject mapping feature and its use, see Subject Map on
page 214.
Table 21 on page 243 describes the graphical elements of the interfaces in
Figure 67.
Figure 67 shows an example subject map. To modify the subject map, click the
Edit this Subject Map link, which displays an editable perspective on the subject
map, like the example in Figure 68 on page 244. (Editing the RVDM configuration
requires login authentication.)
To add a new subject map, edit a different subject map, or delete a subject map,
click the Add, Edit or Delete link, which displays a screen like the example in
Figure 69 on page 246. (Editing the RVDM configuration requires login
authentication.)
Item Description
Service Selector
Service Select a specific subject map by specifying its service (port number) from
the drop-down menu. (If the port map is enabled, this value represents the
effective service.)
Item Description
Map Table
Each row maps a subject to a multicast group.
Multicast Groups Map the service and subject name to these multicast groups. For syntax and
semantics, see Asymmetric Multicast on page 218.
Rank Rank is relative, showing the current position of a row in the matching
order. Managed daemons use rank to resolve conflicts when a subject
matches more than one row; see Several Matches on page 217.
Delete To delete a row from this subject map, check its Delete box. Changes take
effect when you click Apply.
Add 1 Mapping Row To add a new row to the subject map, click this button, and supply values
for the subject, multicast group and rank.
Item Description
Default Groups
Default System Distinguished subjects that do not match any row of the mapping table
Groups automatically match one of these multicast groups. For syntax and
semantics, see Asymmetric Multicast on page 218.
Default User Groups Subjects that do not match any row of the mapping table automatically
match one of these multicast groups. For syntax and semantics, see
Asymmetric Multicast on page 218.
Wildcard Publish
Allow publishing to • When enabled, managed daemons allow their client transports to
wildcard subjects on publish messages with wildcard subjects on this service. Messages with
this service. wildcard subjects bypass the map table, traversing the network on the
default user group (or, with asymmetric multicasting, the user send
group).
By enabling this feature, you force all managed daemons to
automatically join the default user group, which could expose them to
additional network load, decreasing the benefit of subject mapping. We
discourage enabling this feature except in situations where wildcard
publishing is absolutely essential.
More generally, we discourage publishing to wildcard subjects because
such subjects can often be broader than intended, so that unrelated
applications might receive messages that they cannot parse.
• When disabled, managed daemons prohibit their client transports from
publishing messages with wildcard subjects on this service. If a client
sends to a wildcard subject, the daemon logs an error, reports an error
advisory, and reports the incident to RVDM.
See also, CLIENT.ILLEGAL_PUBLISH on page 264 in TIBCO
Rendezvous Concepts.
Mapping Table
Each row maps a subject to a multicast group.
Item Description
Multicast Groups Map the subject name to these multicast groups. For syntax and semantics,
see Asymmetric Multicast on page 218.
Rank Optional.
Rank is relative, showing the current position of a row in the matching
order. Managed daemons use rank to resolve conflicts when a subject
matches more than one row; see Several Matches on page 217.
You may specify a non-negative integer rank to resolve conflicts when a
subject matches more than one row; see Several Matches on page 217.
When absent, RVDM server computes a default value by finding the
greatest rank specified so far, and adding one to that number.
After each update, RVDM server displays the rows in the new rank order,
numbering them with consecutive non-negative integers.
Delete To delete a row from this subject map, check its Delete box. Changes take
effect when you click Apply.
Add 1 Mapping Row To add a new row to the subject map, click this button, and supply values
for the subject, multicast group and rank.
Update
When you edit the port map or a subject map, and click the Apply button, RVDM
sends the updated instructions to its managed daemons. Since all managed
daemons must implement exactly the same instructions, they behave in a way
that is similar to transaction semantics:
1. RVDM sends updated instructions to managed daemons.
2. As each daemon receives the update, it stores the new instructions and replies
to RVDM to indicate receipt.
3. Upon a second signal from RVDM, all managed daemons either implement
the new instructions simultaneously, or roll-back to the previous set of
instructions.
Progress During step 2, RVDM displays the progress of the managed daemons, as in
Figure 70. Table 23 on page 248 describes the elements of the progress display.
The progress display lets you track the managed daemons as they receive the
updated instructions. You can also control the update by forcing daemons to skip
immediately to step 3, or rolling back to cancel the update.
Item Description
progress bar Step 2 can continue for at most 60 seconds. The progress bar indicates the
time elapsed and remaining.
Below the progress bar, a text field indicates the number managed daemons
that have replied, and the total number of managed daemons.
The following This field lists the names of the daemon hosts for which RVDM has not yet
daemons have not received a reply.
replied...
The following This field displays incidents—for example, a daemon replied that it could
incidents were not implement the update.
reported...
Update Immediately Clicking this button circumvents the 60-second waiting period, and forces
all daemons that have received the new instructions to implement the
update immediately.
Rollback Clicking this button cancels the update. Daemons continue implementing
the previous instructions.
Report When the update completes (step 3), RVDM displays a report, as in Figure 71 on
page 249. The report displays the final result of the update, and lists all incidents.
You can use the report to determine whether any daemons did not successfully
update their instructions.
The report includes links to the daemon involved in each exception incident.
Clicking the link displays that daemon’s browser administration interface (if the
daemon is running).
Daemons Tab
The Daemons tab displays information about the managed daemons that the
RVDM server controls. For background information, see Daemon List on
page 228.
Figure 72 shows an example with one managed daemon. Table 24 describes the
elements of the table.
Item Description
Hosts
This table displays a row for each host computer with a managed daemon.
Yellow highlighting of a row indicates an inactive daemon (see Inactive Daemon on page 228).
Active Transports
For each managed daemon, this table displays a sub-row for each service that has client transports
(whether or not subject maps or the port map affect those transports). Each row displays the
following fields.
Port Number Service (port). To view network packet statistics for a host and port, click
the port number; see Daemon Port Statistics on page 251. (If the port map is
enabled, this value represents the effective service.)
Item Description
Transports Number of transports on that service.
Listeners Number of listeners on that service (summed over all transports on that
service).
Item Description
Host The name of the daemon host computer. To view statistics for a different
daemon host, select its name from this drop-down menu.
Service The service (port) number. To view statistics for a different service, select its
number from this drop-down menu. (If the port map is enabled, this value
represents the effective service.)
Purge Statistics To delete all statistical records for this Host and Service, click this link.
Age The time that this daemon has been active on the service. If the daemon is not
currently active on the service, this item displays the time it has been inactive,
as well as the time it had previously been active.
Group The multicast group number for which this table presents statistics. The string
All Groups indicates that statistics are summed over all multicast groups on
the service.
Group Statistics When a service has a subject map, a separate table lists the multicast groups for
the service. To view statistics only for a specific multicast group, click its group
number in this table; the result is a similar table, limited to a single group.
Count This column shows statistics as a count; for example, the number of packets.
All counts are cumulative since the daemon became active on the service.
Rate This column shows statistics as a rate; for example, packets per second. All
rates are calculated as the total cumulative count divided by the age of the
service (in seconds).
Messages Sent Outbound messages that this daemon sent on this service (and multicast
group).
Messages Inbound messages that this daemon received on this service (and multicast
Received group).
Bytes Sent Outbound bytes (summed over all messages) that this daemon sent on this
service (and multicast group).
Bytes Received Inbound bytes (summed over all messages) that this daemon received on this
service (and multicast group).
Packets Sent Outbound packets that this daemon sent on this service (and multicast group).
Item Description
Packets Received Inbound packets that this daemon received on this service (and multicast
group).
Packets Outbound packets that this daemon retransmitted on this service (and
Retransmitted multicast group).
Packets Missed Inbound packets that this daemon missed on this service (and multicast
group).
Inbound Dataloss Inbound packets that this daemon missed on this service (and multicast
(packets) group), and did not successfully receive retransmission.
Outbound Outbound packets for which this daemon received retransmission requests,
Dataloss but could not retransmit the data (because it was outside the reliability
(packets) window).
Incidents Tab
Item Description
Date & Time The timestamp indicates when the incident occurred.
RVDM does not persistently record incidents, it merely displays them on this
centralized tab for convenience. The permanent record of an incident is in the log
file of the managed daemon that originally reports the incident.
Options Tab
The Options tab displays the current values for general parameters of the RVDM
server, and lets you configure new values.
Figure 75 on page 256 shows an example configuration. Table 27 on page 256
describes the graphical elements of the interface.
To modify configuration, type new values in the appropriate fields, and click the
Apply button.
Item Description
Name
Item Description
Control Channel
RVDM server communicates with managed daemons on this control channel. This control channel
must be distinct from any transport affected by the subject maps and port map. You must not use this
channel to carry application data messages.
Furthermore, you must explicitly configure each managed daemon to use this control channel for
RVDM control messages. (See also -rvdm on page 47.)
Service RVDM server creates a control transport on this service, which it uses to
communicate with managed daemons. Managed daemons must use the
same service.
Specify a port number for RVDM control messages. It is an error if the
control channel service port appears in the port map.
Network On computers with more than one network interface, this parameter
instructs RVDM server to use a particular network interface for control
communications.
Specify a CIDR address that denotes the same physical network that
applications use for data messages. When omitted, the default value is the
host computer’s primary network interface.
Multicast addressing is permitted; see Constructing the Network
Parameter on page 23. However, we strongly discourage specifying
asymmetric multicast groups for the control channel. The added
complexity of asymmetry would not add any benefit, since managed
daemons send only point-to-point messages to the RVDM server,
Daemon RVDM listens for control channel connections from daemons on this port.
Fault Tolerance
Item Description
Storage
Data Directory RVDM server stores its configuration data file (RVDM.data.xml) in this
file-system directory.
For fault-tolerant operation, ensure that this directory is a shared location,
accessible by all members of the fault tolerance group.
See also Appendix B, Store Files, on page 419.
Users
RVDM lets you define two user accounts (User 1 and User 2). A valid login with either user account
permits editing RVDM configuration values.
Use these fields to change the name or password of these accounts. To leave user account
information unchanged, omit these fields.
Current Password You must supply the current password in order to change user information.
Command Buttons
Overview
The package com.tibco.tibrv.rvdm.jmx contains three MBean interfaces to
RVDM:
• DaemonManagerMBean interfaces with an RVDM instance. You can use it to
access the parameters in the Options tab (see Options Tab on page 255).
• PortMapMBean interfaces with the port map feature of an RVDM instance.
You can use it to access the parameters in the Port Map tab (see Port Map Tab
on page 240).
• ServicesMBean interfaces with the managed services feature of an RVDM
instance. You can use it to access the parameters in the Subject Maps tab (see
Subject Maps Tab on page 243).
You can write Java programs that use the methods of these interfaces to configure
RVDM parameters. For complete documentation (HTML only) of these methods,
see RVDM JMX MBean API Reference Pages.
You can use JConsole, or any other JMX-compliant console, to access the
attributes and operations of these interfaces; see Using JConsole with RVDM on
page 259.
JMX Ports
The RVDM JMX agent uses these ports:
• RMI Port The RMI registry within RVDM listens on this port for RMI registry
requests. The default value is 1099; to override this default, see -rmi-port on
page 235.
• MBean Port The MBean server in RVDM uses this port to receive connection
requests from JMX consoles. The default value is 9589; to override this default,
see -mbean-port on page 235.
1. When starting RVDM, it outputs the JMX service URL in its start banner and
log file; as in this example:
2009-02-05 10:56:30 rvdm: JMX Service URL:
service:jmx:rmi://myrvdmhost.mydomain.com:9589/jndi/rmi://myrvd
mhost.mydomain.com:1099/RVDM
Topics
See Also
Certified Message Delivery on page 139 in TIBCO Rendezvous Concepts
Relay Agent on page 169 in TIBCO Rendezvous Concepts
rvrad
Command
Purpose The command rvrad starts a Rendezvous relay agent process. The relay agent is a
process that stores certified messages (and associated protocol messages) for
program processes that connect to the network intermittently. For an overview,
see Relay Agent on page 169 in TIBCO Rendezvous Concepts.
Remarks System administrators must start relay agent (rvrad) processes explicitly, and
keep it running at all times. That is, the relay agent must be running whenever
disconnected program processes reconnect to the network, and must remain
running continuously to collect inbound messages on behalf of their client
programs.
A relay agent process requires resources in proportion to the number of certified
delivery client programs that it serves.
From the perspective of the Rendezvous daemon (rvd), the relay agent process
(rvrad) behaves exactly like any other Rendezvous program. The relay agent’s
-service, -network and -daemon parameters are completely analogous to the
corresponding parameters of the transport creation call; rvrad uses these values
to create a transport that it uses to communicate both with certified delivery client
programs and with other relay agents.
When relay agents or their client programs operate across routing daemons, see
Forward RVCM Administrative Messages across Network Boundaries on
page 404.
On UNIX computers, the relay agent runs as a background process.
The relay agent does not use a browser administration interface.
(Sheet 1 of 2)
Parameter Description
-name name Bind this reusable name to the relay agent process.
CM transports designate and locate their relay agents by name.
Relay agent names must be unique. It is illegal to run two or more relay
agents with the same name simultaneously. It is illegal for a relay agent to
have the same name as a CM correspondent.
We strongly discourage using the empty string as a relay agent name.
The name must conform to the syntax rules for reusable names. For details,
see Reusable Names on page 166 in TIBCO Rendezvous Concepts.
-service service The relay agent creates a transport on this service, which it uses to
communicate both with its clients and with other relay agents. Clients that
communicate with this relay agent must use the same service and network.
You can specify the service in several ways. For details, see Service
Selection on page 20.
NULL specifies the default rendezvous service.
-network network On computers with more than one network interface, the -network
parameter instructs the Rendezvous daemon to use a particular network
for communications involving this transport.
The relay agent creates a transport on this network, which it uses to
communicate both with its certified delivery client programs and with
other relay agents. Clients that communicate with this relay agent must
use the same service and network.
You can specify the network in several ways. For details, see Constructing
the Network Parameter on page 23.
NULL specifies the primary network interface for the host computer.
(Sheet 2 of 2)
Parameter Description
-daemon daemon The -daemon parameter instructs rvrad about how and where to find rvd
and establish communication. The value of the rvrad -daemon parameter
must match the rvd -listen parameter.
For details, see Daemon Client Socket—Establishing Connections on
page 28.
You can specify a daemon on a remote computer. For details, see Remote
Daemon on page 29. However, rvrad cannot start a remote rvd
automatically; it must be already running on the remote computer.
If -daemon is not present, rvrad finds the local daemon on TCP socket
7500.
See Also Forward RVCM Administrative Messages across Network Boundaries, page 404.
Relay Agent on page 169 in TIBCO Rendezvous Concepts.
Topics
rva
Command
Purpose The command rva starts the Rendezvous agent process. The Rendezvous agent is
the gateway to the Rendezvous network for remote Java applets.
Remarks Usually, administrators must start the Rendezvous agent (rva) process explicitly.
A Java applet cannot start rva; an applet must connect to an agent that is already
running.
From the perspective of the Rendezvous daemon (rvd), the agent process (rva)
behaves exactly like any other Rendezvous program. The agent’s Service,
Network and Daemon parameters are completely analogous to the corresponding
parameters of the transport creation call (because rva uses these values to create a
transport). In turn, the transport creation call uses these parameters to find or
start an appropriate daemon and connect to it.
Licenses Each rva process instance reads the license ticket file (tibrv.tkt) when it starts.
To put new license tickets into effect, stop and restart rva.
If rvd is not running, then rva starts it automatically, and the new rvd process
instance requires a valid rvd license (in addition to the rva license).
Subject Gating For fine-grained control over all the information flowing in or out of your
networks, limit communication by subject name.
The Import and Export parameters let system administrators restrict the flow of
messages through rva based on subject names.
Point-to-point messages (_INBOX.>) always pass through rva. They are not
restricted by subject gating parameters.
For information about restricting with wildcard subjects, see Subject Filtering
with Wildcards on page 85.
In release 6 (and later), the default behavior for rva subject gating is to restrict all
subjects unless permitted by subject gating parameters.
In earlier releases, when gating parameters were not specified, the default
behavior was to permit all subjects for import and export.
(Sheet 1 of 3)
Parameter Description
-store filename This file contains the parameters that configure rva.
rva reads this file when the process starts, and writes this file
each time you change the configuration using the browser
administration interface.
See also Appendix B, Store Files, on page 419.
(Sheet 2 of 3)
Parameter Description
-http ip_address:http_port The browser administration interface accepts connections on this
HTTP or HTTPS port. Permit administration access only through
-http http_port
the network interface specified by this IP address.
-https ip_address:https_port To limit access to a browser on the rva host computer, specify
127.0.0.1 (the local host address).
-https https_port
When the IP address is absent, the daemon accepts connections
through any network interface on the specified HTTP or HTTPS
port.
If the explicitly specified HTTP or HTTPS port is already
occupied, the program exits.
When the -http parameter is entirely absent, the default
behavior is to accept connections from any computer on HTTP
port 7680; If this default port is unavailable, the operating
system assigns an ephemeral port number.
When the -https parameter is entirely absent, the default
behavior is to accept secure connections from any computer on
an ephemeral HTTPS port.
In all cases, the program prints (in its start banner and log file)
the actual HTTP and HTTPS ports where it accepts browser
administration interface connections.
-no-http Disable all HTTP and HTTPS connections, overriding -http and
-https.
(Sheet 3 of 3)
Parameter Description
-logfile log_filename Send log output to this file.
When absent, the default is stderr.
Log file rotation is not available for rva.
(Sheet 1 of 5)
Parameter Description
State
Network Connections
Listen Port The Rendezvous agent creates a TCP socket to establish communication
between itself and its Java clients. This parameter specifies the TCP port
where the agent listens for client connect requests. This port number
corresponds to the port parameter of the Java TibrvRvaTransport()
constructor (they must specify the same TCP socket number).
The default TCP port is 7600—corresponding to the default port that
TibrvRvaTransport() uses.
(Sheet 2 of 5)
Parameter Description
Service When rva communicates on behalf of its Java clients, it communicates on
this UDP or PGM service. As a result, the Java clients can communicate
only with other programs that create transports in this service group.
The Rendezvous agent uses this parameter to connect to the Rendezvous
daemon. This parameter is analogous to the service parameter of the
transport creation call.
Each rva process can communicate on only one service. To communicate
over more than one service, you must start additional rva processes.
You can specify the service in several ways. For details, see Service
Selection on page 20.
Network On computers with more than one network interface, this parameter
instructs the Rendezvous daemon to use a particular network for all
communications involving this transport.
The Rendezvous agent uses this parameter to connect to the Rendezvous
daemon. This parameter is analogous to the network parameter of the
transport creation call.
Each rva process can send outbound broadcast messages to only one
network. To communicate over more than one network, you must start
additional rva processes.
You can specify the network in several ways. For details, see Constructing
the Network Parameter on page 23.
Daemon This parameter instructs rva to find rvd and establish communication on a
specific TCP port. The value of this rva daemon parameter must match the
rvd listen parameter.
(Sheet 3 of 5)
Parameter Description
Subject Gating
Imported Subjects rva imports messages from clients (applets) to the network.
Only messages with subject names that match these subject names are
eligible for import.
You can remove a subject at any time.
Exported Subjects rva exports messages from the network to clients (applets).
Only messages with subject names that match these subject names are
eligible for export.
You can remove a subject at any time.
HTTP Tunnel
See also HTTP Tunnel on page 277.
Enable When enabled, rva accepts HTTP connections from client transports. To
enable HTTP tunneling, check this box.
Port rva accepts HTTP connections from client transports on this port.
Zero is a special value, which instructs rva to use its Listen Port for this
purpose.
Client Timeout In some situations, rva closes HTTP connections to flush data to clients
through intervening proxy servers. Each client transport subsequently
reestablishes its connection after a delay (specified in the client program).
Meanwhile, rva maintains state information for the client. If this timeout
expires before the client reconnects, rva can discard the state information.
Ensure that this parameter (in seconds) is much greater than the reconnect
delay parameter of every client transport.
Ping Interval Intervening proxy servers might automatically close client connections to
rva that appear inactive. To circumvent this feature, rva sends ping
messages to clients when a connection has been idle for this interval (in
seconds).
To disable this feature, supply zero.
(Sheet 4 of 5)
Parameter Description
Max Client Queue rva limits the length of the data queue for each client (data is outbound
from rva, inbound to the client). When a queue exceeds this number of
messages, rva discards subsequent messages as they arrive.
To disable this feature, supply zero.
Max Queue Size rva limits the size of the data queue for each client (data is outbound from
rva, inbound to the client). When a queue exceeds this size (in kilobytes),
rva discards subsequent messages as they arrive.
Active Flush This parameter limits data latency (in seconds) caused by buffering in
intervening proxy servers. If rva has directed data to a client, and this time
limit has elapsed since rva last flushed the data, then rva closes the
connection to force proxy servers to deliver the data to the client. This
action occurs even when rva has more data queued for the client (that is,
the queue is active).
If you are certain that no proxy servers intervene between rva and the
client, set this parameter to zero.
Inactive Flush This parameter limits data latency (in seconds) caused by buffering in
intervening proxy servers. If rva has directed data to a client, and does not
have more data queued for the client (that is, the queue is inactive), and
this time limit has elapsed since rva last directed data to the client, then
rva closes the connection to force proxy servers to deliver the data to the
client.
If you are certain that no proxy servers intervene between rva and the
client, set this parameter to zero.
Request Flush This parameter limits data latency (in seconds) for reply messages. In some
application domains, the client sends a request message, and receives only
one small reply message. Setting this parameter smaller than
inactiveFlush can expedites delivery of such reply messages to the
client.
(Sheet 5 of 5)
Parameter Description
Max Proxy Buffer This hint estimates the size (in kilobytes) of the largest buffer in
intervening proxy servers. Before triggering an active flush, rva checks the
amount of data it directed to the client since the last flush; if that amount is
greater than this value, the proxy server has probably flushed its buffer
automatically, so rva does not close the connection to flush the data.
If you are certain that no proxy servers intervene between rva and the
client, set this parameter to zero.
Certificates
These parameters control the use of certificates as administrator credentials.
XML Configuration
View the current configuration as an XML document, and reconfigure the component by submitting
an edited XML document.
Security
These parameters control access to the configuration pages of the rva browser administration
interface.
The Rendezvous agent (rva) is a key component of any web site that distributes
Rendezvous applets. A full treatment of web site administration is beyond the
scope of this book; this section discusses issues specific to Rendezvous applets
and rva.
Physical
Software Hardware
Connections
Remote
Internet
Java Applet
External Computer
Applet
A
Download Hardware Router
Outer Firewall
Outer Firewall
Listen 7600
http Server
rva
Daemon
Web Server Host
Daemon 7577
Inner Firewall
B
Hardware Router
Inner Firewall
Listen 7577
Service 7901
rvd
Internal Computer
Internal Network
Information Bus
For example, near the bottom of Figure 76 on page 275, rvd links external applets
with internal UDP or PGM service 7901. All internal Rendezvous programs that
use service 7901 can exchange messages with applets across the Internet. In
contrast, a private demonstration applet uses service 7854—it is effectively
isolated from the external applets, as well as from internal programs using service
7901.
HTTP Tunnel
Operation When rva enables HTTP tunneling, it accepts client connection requests on an
HTTP port. Client transports connect to rva at that port.
rva maintains state information for each client, as well as a queue of data for the
client (data is outbound from rva, inbound to the client).
For efficiency, rva accumulates several messages in a queue before directing them
to a client.
HTTP proxy servers might intervene between rva and the client. Proxy servers
are usually transparent to both clients and rva. However, some intervening proxy
servers might buffer data at a low level, causing delays in data delivery to clients.
To limit data latency, rva can force proxy servers to flush their buffers by closing
the client connection; several parameters affect this flushing action. Client
transports automatically reestablish the connection, after a time delay specified in
the client program. rva maintains client state (for a limited time) while waiting
for the client to reconnect.
Parameters For a list of rva parameters that affect this feature, see HTTP Tunnel on page 271.
In many distributed applications new processes can join the system at any time.
Often these new processes need access to the current information state of the
system in order to function properly. In many cases a straightforward cache
program can fill that need.
The Rendezvous distribution includes a utility program called rvcache, which
caches the data from messages sent to each subject name. Whenever a
Rendezvous program begins listening to a subject name, it can query rvcache to
send it the current data for that subject.
The data cached for a subject can be either the most recent whole message on that
subject, or a composite set containing the most recent value of each field sent on
that subject.
Although rvcache resembles a simple database program in some respects, it
differs in an important way. Namely, updates are implicit; that is, rvcache
monitors message activity and automatically caches the data. Application
components query for data by subject.
We recommend that administrators arrange for correct operation of rvcache. This
chapter describes administrative considerations; for a command summary, see
rvcache on page 291.
Topics
Operation
Although many distributed system components may depend upon rvcache, its
caching operation remains transparent to them.
Other application programs do not send update messages specifically to rvcache.
Instead, rvcache listens for a set of subjects, silently receiving messages and
caching the most recent data on each subject as it arrives, as in Figure 77.
rvcache
foo.bar value
A B C
foo.bar
Rendezvous
rvcache
foo.bar value
A New B C
Rendezvous
Resource Requirements
Load
For fastest response, run rvcache on a computer with a light processing load.
Storage
The exact amount of required storage space varies with three factors—the storage
mode, the number of subjects cached, and the size of the stored message values.
• In standard operation, rvcache keeps a table of cached subjects in memory,
while it keeps message data for those subjects in a store file on disk. The
computer running rvcache must have sufficient storage of each type.
• In memory-only mode, rvcache keeps both in memory (both the table of
cached subjects and the message data). The computer running rvcache must
have sufficient memory. (For background information, see Memory-Only
Mode on page 289.)
Distributed Caches
In some cases, you may find it expedient to distribute the resource requirements
and the processing load among several computers. To achieve this goal, you can
run several process instances of rvcache on separate computers. However, it is
important that various process instances of rvcache cache disjoint sets of subjects
(see Avoid Duplicates on page 283).
Avoid Duplicates
Listening programs rarely profit from receiving duplicate copies of the current
data. To prevent duplicates, consider one of these strategies:
• Run exactly one rvcache service.
• Ensure that rvcache services store disjoint subject sets.
When two or more rvcache services store the same subjects, then duplicate
messages can result. It the subject sets do not overlap, then duplication cannot
occur.
• Segregate rvcache services by listening on different UDP or PGM services.
You can use different UDP or PGM services to isolate groups of program
processes so that members of each group receive Rendezvous messages
exclusively from other members of the same group. In such cases, configure a
separate instance of rvcache for each group by setting its service parameter to
match the UDP or PGM service used by group members. For more detail
about this parameter, see Service Selection on page 20.
When a network boundary separates rvcache from its client programs, and a
routing daemon (rvrd) connects them across that boundary, you must configure
rvrd to ensure correct operation of rvcache.
Cached Subjects
The routing daemons (on both sides of the neighbor link) must permit all the
cached subjects to flow from all senders to all rvcache processes.
Query Subjects
The rvrd configuration for exchanging query subjects depends on the
distribution of rvcache and its query clients.
• If each network runs one local cache process, with all the caches synchronized
(so they all contain the same data), then it is crucial that only one rvcache
process receive each query. The routing daemons must not import or export
_SNAP.> (the query subject).
• If only one network runs a cache process, and programs on other networks
query it across the network boundary, then the routing daemons must forward
_SNAP.> (the query subject) into the rvcache network. That is, rvrd must
import these query names into the rvcache network; rvrd must export these
query names from each query client network.
Fault Tolerance
Usage
To run rvcache as a fault-tolerant service, start two or more rvcache processes. It
is essential that all processes use identical parameters—with only one exception:
• The -store parameter specifies a file for persistent storage of the cache and
configuration parameters. Member processes must not share this file. Each
member must keep its own distinct cache file (we recommend storing it on a
local disk).
Replace & Merge rvcache can store message data in two ways. For each subject, it can either replace
all previously stored data with the contents of each new message, or it can merge
information from the fields of the message into the stored data, overwriting only
those fields specified in the new message.
Select one of these two storage methods each time you add a subject.
Shallow & Deep Furthermore, rvcache can merge data in either of two ways. The command line
Merge parameter -merge selects either shallow merge or deep merge as the behavior of
the cache, consistent for all merged subjects. Consider a new message that
contains nested messages as field values.
• Shallow merge replaces the old field value with the new nested message as an
indivisible unit, without special treatment for the individual fields of the
nested message. That is, merging occurs at only one level of nesting; level-one
fields replace level-one fields.
• Deep merge inspects the fields of nested messages, and recursively merges the
fields of a new nested message into fields of a stored nested message. Merging
continues recursively to any depth of nesting.
Example Table 28 on page 288 presents an example, contrasting the different behavior of
replacement, shallow merge and deep merge.
Data stored in rvcache never expires. It remains in the cache until superseded or
augmented by data from a new message on the same subject.
Memory-Only Mode
Store File In standard operation, rvcache uses the store file to record parameter
configuration and for persistent cache storage. Parameter configuration includes
the list of cached subjects. Persistent cache storage includes the cached values of
those subjects. The required command line parameter -store specifies the
pathname of the store file.
Memory-Only In some high-volume situations, writing cached values to the store file can result
in an I/O bottleneck. If rvcache I/O presents a problem, you can disable
persistent cache storage. The command line parameter -memory-only starts
rvcache in memory-only mode (otherwise, rvcache runs in store mode).
Memory-only mode increases the operating speed of rvcache at the cost of data
persistence. If the process exits, all cached values are lost.
In memory-only mode, you can expect rvcache to consume more process
memory than in store mode. Since it cannot retrieve infrequently accessed values
from the store file, rvcache must keep all values in process memory. You must
ensure that adequate memory is available. In addition, we recommend running
the 64-bit version of rvcache where possible (since it can address twice as much
process memory as the 32-bit version).
Switching from store mode to memory-only mode does not automatically erase
all initial values from the store file. Even though rvcache does not read them,
they remain in the store file (which as a result might be larger because of these
unnecessary values).
Since a larger store file can slow rvcache initialization, we recommend starting
with an empty store file when you begin using memory-only mode.
You can use the dumpXML command of tibrvcfg to dump the configuration of
rvcache as an XML document. Then use the matchXML command to create an
empty store file with the required configuration. For details, see Command Line
Tool—tibrvcfg on page 347 in TIBCO Rendezvous Configuration Tools.
After switching from store mode to memory-only mode and back again, you
cannot rely on cached values in the store file. Some subject configuration changes
can erase the value of a subject as a side effect. Before switching modes, we
recommend saving a backup copy of the store file.
Alternatively, you can use the dumpXML command of tibrvcfg to save a backup
copy of configuration data before you switch modes. See Command Line Tool—
tibrvcfg on page 347 in TIBCO Rendezvous Configuration Tools.
When configuring large or complex sets of subjects, the configuration API is more
convenient than the browser administration interface; see Chapter 8 on page 271
in TIBCO Rendezvous Configuration Tools.
rvcache
Command
Purpose The program rvcache stores data from recent messages, indexed by subject name,
and automatically sends the cached data to new listeners.
Remarks Given a set of one or more subject names, rvcache listens for messages addressed
to those subjects. Each time it receives such a message, it stores the message’s data
content.
When a client program queries for a cached subject, rvcache sends a reply
message with the current cached value.
Initial Subject The first time you run rvcache, you must configure its subjects and change its
Configuration state to running. After that, rvcache reads the subject list from its file.
Storage rvcache stores the data in process memory and in a disk file. The command line
parameter -store specifies the name of the disk file; if the file exists when
rvcache starts, then rvcache reads the file to initialize its configuration
parameters and to populate its cache in process memory.
The command line parameter -sync specifies the interval at which to synchronize
the file-based store with process-based store.
(Sheet 1 of 2)
Parameter Description
-store filename Use filename to record parameter configuration and for persistent
cache storage. For best performance, use a local file system
(remote file servers can cause delays and synchronization
difficulties).
For more information, see Storage on page 291.
See also Appendix B, Store Files, on page 419.
(Sheet 2 of 2)
Parameter Description
-no-http Disable all HTTP and HTTPS connections, overriding -http and
-https.
-merge shallow | deep For subjects that cache by merging the new value into the stored
value, two types of merge behavior are available. When present,
this parameter selects that behavior for all merged subjects. For
complete details, see Replace and Merge on page 287.
When absent, the default behavior is shallow merging.
(Sheet 1 of 3)
Parameter Description
information
This page displays general information about the rvcache process.
change state
certificates
This page lets you configure the certificates that rvcache uses to identify itself to web browsers. For
more information, see the analogous section for secure daemons, Certificates on page 204.
security
These parameters control access to the configuration pages of the rvcache browser administration
interface.
connection
rvcache uses these parameters to create its network transport object.
For general explanations, see Chapter 3, Network Details, on page 17.
fault tolerance
(Sheet 2 of 3)
Parameter Description
Service Use this UDP or PGM service for fault tolerance control messages between
rvcache member processes.
The default value is rendezvous-ft; if the operating system cannot interpret that
service name, then the secondary default is UDP or PGM port 7504.
Network Use this network for fault tolerance control messages between rvcache member
processes.
The default value is the computer’s primary network interface.
Group Use this string as the name of the rvcache fault tolerance group.
Processes with the same group name cooperate to provide fault-tolerant service.
The default value is RVCACHE.
Heartbeat Use this floating point value (in seconds) as the fault tolerance heartbeat interval.
Members of a fault tolerance group send status reports at this interval. We
recommend that this value be slightly less than one third of the activation
interval.
The default value is 3 seconds.
Activation Use this floating point value (in seconds) as the fault tolerance activation interval.
This value represents the longest interruption in service before the partner
process activates. It must be the same for all members of a fault tolerance group.
The default value is 10 seconds.
subjects
Subjects To see information about a specific subject, click that subject in the current subject
list.
You can add new subjects or remove current subjects at any time.
For more information, see Replace and Merge on page 287.
(Sheet 3 of 3)
Parameter Description
XML Configure
View the current configuration as an XML document, and reconfigure the component by submitting
an edited XML document.
Performance assessment software can help you gauge and improve Rendezvous
network performance, plan hardware purchases and software deployment, and
test network configurations.
Topics
Overview
Components
Performance assessment software consists of two executable programs:
• rvperfm (master) sends messages, gathers performance data, and outputs the
report.
See rvperfm on page 306.
• rvperfs (slave) subscribes to messages from rvperfm, and sends back data
about its own speed and effectiveness.
See rvperfs on page 311.
You can run rvperfm alone, or with any number of rvperfs processes in the
network.
Principles of Operation
Listeners
rvperfm can send messages to the network whether or not any rvperfs processes
are listening to receive those messages.
• When rvperfs listeners are present, the performance assessment tool
measures their capacity to receive messages as part of overall network
performance.
• In the absence of rvperfs listeners, the performance assessment tool
measures the network performance of the sending computer only.
In automatic mode, rvperfm uses a binary search algorithm to adjust its batch size
and interval parameters between runs. These rules control rvperfm as it
empirically determines the maximum throughput:
• For the first run, rvperfm determines the batch size and interval from
command parameters or default values.
• If rvperfm loses data, it aborts the run immediately, and adjusts parameters to
decrease the send rate for the next run.
• If even one of the rvperfs processes lost data during the run, then the send
rate exceeds the maximum network throughput. In this case, rvperfm aborts
the run, records the upper bound on maximum throughput, and adjusts the
parameters to decrease the send rate for the next run.
• If all active rvperfs processes keep pace without lagging behind, and receive
all the messages without losing data—then the send rate is lower than the
maximum throughput. In this case, rvperfm records the lower bound on
maximum throughput, and adjusts the parameters to increase the send rate
for the next run.
• After a finite number of runs, the upper and lower bounds converge at the
maximum throughput. When rvperfm exits, the report of the last run
indicates the batch size and interval parameters that yield the maximum
network throughput.
If no rvperfs processes are active, the parameters of the last run yield the
maximum send rate for rvperfm on its host computer (with the prevailing
network conditions).
Dataloss Advisory
rvperfm and rvperfs both subscribe to DATALOSS advisories. At the end of each
complete run, both programs report the number of advisories they received
during the run.
If rvperfm receives a DATALOSS advisory, it aborts the run immediately. (This
paragraph applies only to automatic mode; if rvperfs receives a DATALOSS
advisory while rvperfm is in single mode, the run does not abort.)
If rvperfs receives a DATALOSS advisory, while receiving messages from rvperfm
in automatic mode, then rvperfs informs rvperfm in its response to the next auto
window poll, and rvperfm aborts the run. (This paragraph applies only to
automatic mode; if rvperfs receives a DATALOSS advisory while rvperfm is in
single mode, the run does not abort.)
See also, DATALOSS on page 269, TIBCO Rendezvous Concepts.
Broadcast Do not specify multicast addressing in the -network parameter. TRDP only
Omit the -inbox parameter.
rvd Reliability
To ensure accurate and efficient testing, it is critical that you first disable the
reliable message storage feature of rvd.
• To disable reliability for non-managed daemons, manually start rvd (or rvrd)
with the command line parameter -reliability 0.
This zero value instructs rvd not to retain outbound messages in case they are
needed for retransmission. For more information, see Reliability and Message
Retention Time on page 34.
rvperfm
Command
Remarks In single mode (without the flag -auto), rvperfm sends one run of messages, and
then exits.
In automatic mode (with the flag -auto), rvperfm sends several runs of
messages, adjusting the batch size and interval parameters to empirically
determine the combination that yields maximum network throughput. After it
finds the optimal settings, it exits; the parameters and report of the final run
reflect optimal network performance. For details, see Automatic Mode—Binary
Search on page 301.
(Sheet 1 of 4)
Parameter Description
-service service service is the service name or UDP or PGM port number that defines the
service group.
See Service Selection on page 20.
If you do not specify the -service parameter, the default value is 7599.
-network network network narrows the service group by selecting a local network by
network name or IP network number (when the host computer has
multiple network interfaces). It can also specify multicast addresses.
See Network Selection on page 23.
If you do not specify the -network parameter, the default value is the
multicast address ";225.9.9.9". On operating systems that do not
support multicast addressing, you must supply a valid broadcast
network address.
-daemon daemon The -daemon parameter instructs the program about how and where to
find rvd and establish communication.
See Daemon Client Socket—Establishing Connections on page 28.
You can specify a daemon on a remote computer. For details, see Remote
Daemon on page 29. However, the program cannot start a remote
daemon automatically—you must start it manually on the remote
computer.
If you do not specify the -daemon parameter, the program finds the local
daemon on TCP socket 7500.
(Sheet 2 of 4)
Parameter Description
-subject subject rvperfm sends messages to this subject name.
If you specify neither -subject nor -inbox, then the program uses
_perf as a prefix to construct broadcast subjects.
-auto When present, rvperfm operates in automatic mode, sending several runs
of messages to automatically determine the optimal batch size and
interval parameters for the network.
When absent, rvperfm operates in single mode, sending only one run of
messages.
See also, Automatic Mode—Binary Search on page 301.
-terse When present, suppress most reporting and simplify the final report.
The terse final report contains one line per receiver (rvperfs). Each line
is a comma-separated list of the following values:
send message rate, received message rate,
send byte rate, received byte rate,
elapsed send time, elapsed receiver time,
receiver SlowConsumer, receiver DataLoss,
messages sent, send size, batch interval, batch size, reply name
For descriptions of these values, see Interpreting the Report on page 314.
(Sheet 3 of 4)
Parameter Description
-size size rvperfm sends messages with size bytes of payload data.
Use this size to model application data rates. This size does not include
message header data nor packet overhead, so computing the network
byte transfer rate from this size results in an slight underestimate of the
actual throughput.
If not present, the default is 256 payload bytes in each message.
-interval pause rvperfm sends messages in batches, waiting for pause seconds between
the end of one batch and the start of the next batch.
When absent, the default pause is zero seconds.
In single mode, rvperfm sends the run with this interval.
In automatic mode, rvperfm sends the first run with this interval,
adjusting the parameters in subsequent runs.
-batch batch_size rvperfm sends messages in batches, with batch_size messages in each
batch.
When absent, the default is 128 messages per batch.
To send messages individually, specify 1 as the batch_size.
In single mode, rvperfm sends the run with this batch size.
In automatic mode, rvperfm sends the first run with this batch size,
adjusting the parameters in subsequent runs.
(Sheet 4 of 4)
Parameter Description
-cm When present, rvperfm sends messages with certified delivery features.
If rvperfs also specifies -cm, then the programs establish a certified
delivery agreement.
-cm-name name When present, rvperfm specifies this reusable correspondent name
when it enables certified delivery.
When -cm is present, but -cm-name is not, rvperfm operates with a
non-reusable correspondent name.
-cm-ledger filename When present, rvperfm uses this ledger file. You must also supply
-cm-name.
-cm-sync When present, then operations that update the ledger file do not return
until the changes are written to the storage medium. You must also
supply -cm-ledger and -cm-name.
When absent, the operating system writes ledger file changes to the
storage medium asynchronously.
rvperfs
Command
Purpose rvperfs listens for messages from rvperfm, gathers and reports statistics to
rvperfm at the end of each run.
Remarks rvperfs operates passively; it sends messages only in response to requests from
rvperfm.
You can leave process instances of rvperfs running idle. Each instance of
rvperfs can report statistics from several consecutive process instances of
rvperfm—as long as only one rvperfm executes at a time. You can relocate the
rvperfm process from one host computer to another without restarting the
rvperfs processes.
Unlike rvperfm, an rvperfs process never exits by itself. You must explicitly
terminate each rvperfs process.
In addition to sending its statistics to rvperfm, rvperfs also prints its report to
stdout.
(Sheet 1 of 3)
Parameter Description
-service service service is the service name or UDP or PGM port number that defines the
service group.
See Service Selection on page 20.
If you do not specify the -service parameter, the default value is 7599.
(Sheet 2 of 3)
Parameter Description
-network network network narrows the service group by selecting a local network by
network name or IP network number (when the host computer has
multiple network interfaces). It can also specify multicast addresses.
See Network Selection on page 23.
If you do not specify the -network parameter, the default value is the
multicast address ";225.9.9.9".
-daemon daemon The -daemon parameter instructs the program about how and where to
find rvd and establish communication.
See Daemon Client Socket—Establishing Connections on page 28.
You can specify a daemon on a remote computer. For details, see Remote
Daemon on page 29. However, the program cannot start a remote
daemon automatically—you must start it manually on the remote
computer.
If you do not specify the -daemon parameter, the program finds the local
daemon on TCP socket 7500.
-subject subject rvperfs listens for messages with this subject name.
If this parameter is absent, then rvperfs uses _perf as a prefix to
construct broadcast subjects.
(When you specify the -inbox flag to rvperfm, you need not specify this
rvperfs parameter.)
-cm When present, rvperfs listens for messages using certified delivery
features. If rvperfm also specifies -cm, then the programs establish a
certified delivery agreement.
-cm-name name When present, rvperfs specifies this reusable correspondent name
when it enables certified delivery.
When -cm is present, but -cm-name is not, rvperfs operates with a
non-reusable correspondent name.
-cm-ledger filename When present, rvperfs uses this ledger file. You must also supply
-cm-name.
(Sheet 3 of 3)
Parameter Description
-cm-sync When present, then operations that update the ledger file do not return
until the changes are written to the storage medium. You must also
supply -cm-ledger and -cm-name.
When absent, the operating system writes ledger file changes to the
storage medium asynchronously.
rvperfm prints a brief string as it begins sending the run of messages, and another
when it finishes sending the run. Then it outputs its run report:
1. Statistics that rvperfm collects while sending the messages.
2. Statistics that each rvperfs process collects while receiving messages. Each
group of statistics represents the performance of one rvperfs process.
Version 6.7.5
Configuration parameters
Service: 8000
Network: ;225.9.9.9
Daemon: 8888
Subject: _perf
Run #1 beginning...
Messages/second: 10530.010
Payload Bytes/second: 10782730.413 (10.3Mb) Actual send rate
Receive statistics
from rvperfs
Report from receiver _INBOX.0A650224.1E0743AA4617B2004CDE8.1
Elapsed time: 10.205277 seconds
Messages received: 102400 (100.0%) All messages
arrived
Messages/second: 10034.025
Actual receive rate
Payload Bytes/second: 10274841.143 (9.8Mb)
Run complete
Version 6.7.5
Configuration paramters
Service: 7599
Network: ;225.9.9.10 This inbox name identifies this process
Daemon: NULL instance of rvperfs. The same name
Subject: _perf appears in rvperfm report to denote
this rvperfs process.
My name is _INBOX.0A65034A.DDF3B32312A8085470.1
Ready...
rvperfm prepares for a
Reset received from _INBOX.0A6503F6.10D3B324033911710.1
new run.
Test message received
This inbox name identifies
Run beginning...
that rvperfm process.
Run complete
Elapsed time: 6.035
receiver
Messages received: 20000
statistics
Messages/second: 3313.853
Number of receivers 1
Elapsed Time
Both programs in the performance tool report the total time that elapsed in each
complete run. The speed at which the Rendezvous daemon can deliver messages
to the network depends on the network itself, the network interface card (and
other hardware parameters), and the host operating system. If rvperfm sends at a
faster rate than the network can accept, rvperfm retains messages in its outbound
queue until the network can accept them.
Sending complete
Elapsed time: 9.737 seconds
In this example, 9.737 seconds elapsed from the time that rvperfm sent the first
message of the run, until the time that the daemon transmitted the last message of
the run to the network.
Network Stress
Hardware Capabilities
In this group of examples, the performance assessment tool measures the speed of
specific computers—individually or in a group.
After rvperfm experiments with its parameters, the final run indicates the values
that yield the optimal receive rate for the receiving computer under prevailing
network conditions. (However, you must validate this measurement; see below.)
A similar test with several receivers determines the optimal rate of the slowest
receiver.
Validate against To validate an optimal receive rate, check that it is strictly less than the maximum
Max Transfer transfer rate from rvperfm to rvd (see below).
Rate
• If rvperfm on the sending computer has successfully transferred a run of
messages at a rate strictly greater than the optimal receive rate, then that
receive rate is valid.
• If the measured receive rate is approximately equal to the maximum transfer
rate, it might be because some limitation on the sending host is causing an
artificially low result for the receive test.
Finding the Max To obtain the sender’s maximum transfer rate, run rvperfm in automatic mode on
Transfer Rate the sending computer, without any rvperfs processes to receive the messages;
use the same message size as in the receive test.
sender> rvperfm -auto -size 1000
After rvperfm experiments with its parameters, the final run indicates the values
that yield the maximum transfer rate to the daemon. This result is not a useful
measure of network performance; its only legitimate use is to validate
measurements of receive rates.
receiver2> rvperfs
...
receiver42> rvperfs
The run report indicates whether the receivers keep pace with the sender under
prevailing network conditions.
In a wide area network (WAN) the transit time between sites can limit
throughput. To keep information flowing smoothly, it is essential to measure the
optimal throughput rates for the entire WAN, and limit sending rates to avoid
exceeding overall network capacity.
Consider a global network connected using the Rendezvous routing daemon,
rvrd. You can use the performance assessment tool for these tasks:
Ledger
Certified delivery depends on a ledger to track messages and confirmations. Two
types of ledger are available; each has a different effect on performance:
• A file-based ledger with asynchronous I/O offers persistence at the cost of
disk operations. With asynchronous file I/O, some information could be lost
in the event of sudden termination.
• A file-based ledger with synchronous I/O offers greater certainty at the cost of
additional speed because the disk write operations block. Synchronous file
I/O dramatically reduces the probability of lost information in the event of
sudden termination.
You can use the performance tool to compare the effect of these options on
certified message throughput.
Rendezvous software can transport very large messages; it divides them into
small packets, and places them on the network as quickly as the network can
accept them. In some situations, this behavior can overwhelm network capacity;
applications can achieve higher throughput by dividing large messages into
smaller chunks and regulating the rate at which it sends those chunks. You can
use the performance tool to evaluate chunk sizes and send rates for optimal
throughput.
This example, sends one message consisting of ten million bytes. Rendezvous
software automatically divides the message into packets and sends them.
However, this burst of packets might exceed network capacity, resulting in poor
throughput:
sender> rvperfm -size 10000000 -messages 1
In this second example, the application divides the ten million bytes into one
thousand smaller messages of ten thousand bytes each, and automatically
determines the batch size and interval to regulate the flow for optimal
throughput:
sender> rvperfm -size 10000 -messages 1000 -auto
By varying the -messages and -size parameters, you can determine the optimal
message size for your applications in a specific network. Application developers
can use this information to regulate sending rates for improved performance.
Latency assessment software can help you gauge message latency in your
network.
Topics
Overview
Principles of Operation
The basic operation of rvlat is similar to Rendezvous performance assessment
software, even though it measures a different property of the network. An rvlat
client process sends a run of messages to a server; the server replies to those
messages; the client receives the replies and measures latency statistics. You can
vary parameters such as message size, run length, batch size, pause interval—
which affect the network latency. (For descriptions of these quantities, see
Chapter 11, Performance Assessment (rvperf), on page 297.)
rvlat can measure multicast or broadcast latency. It does not measure
point-to-point latency.
You can use rvlat to measure latency while communicating through Rendezvous
local daemons, remote daemons, and TIBCO Messaging Appliance™ P-7500.
Measuring Technique
rvlat measures the round-trip time for a request-reply message pair:
1. The client timestamps its outbound request message.
2. The server responds to a request by immediately returning the same message
to the client.
3. The client timestamps the inbound reply, and measures the difference
between the two timestamps to obtain the round-trip time.
Many applications that require low latency send messages in only one direction.
However, clock synchronization between two computers is not precise enough to
accurately measure one-way travel time. To avoid this difficulty rvlat measures
round-trip time using a single clock.
Nonetheless, measuring round-trip time can also distort the results in several
ways. For example, doubling the number of messages doubles the network
bandwidth usage, and the effect on Rendezvous can be different for one-way
versus two-way communication. The two computers might have different
throughput capabilities. Timestamps, data computations and data output at the
client add overhead. Turn-around time at the server adds a small overhead.
Random In serial mode and with small batches, the distorting factors are minimal.
Sampling However, when the batch size is large, the distortion can be more noticeable.
You can reduce these distorting factors large batch sizes by reducing the number
of round-trip messages. The -sample parameter instructs the server to respond to
a subset of the request messages that it receives, using a probability-based
sampling method.
You can use sampling to create high-throughput network conditions, while
dramatically reducing the volume of data collected.
For example, consider a run of 1,000,000 requests with a message payload of 100
bytes each. Sending 1,000,000 requests but only 5000 replies (a 0.5% sample)
represents a network bandwidth load of approximately 100,500,000 bytes. The
0.5% sample distorts the results less than a 100% sample, and collects far less data,
yet the client still has enough data points to measure latency under
high-throughput conditions.
Caveat However, this sampling technique can also miss important patterns in the data.
For example, if latency spikes occur with regular periodicity, random sampling
might miss some or all of those spikes.
Using rvlat
rvlat runs as a client-server pair. You cannot run several clients with one server,
nor vice versa.
We recommend that you write a script to run rvlat, redirecting its output streams
to capture files (see Output Streams on page 338).
Start the server before starting the client.
Subjects
rvlat uses subjects that match RVLAT.> to carry its requests, replies, control
signals and data.
• If you use subject mapping (with RVDM), then you must ensure that these
subjects are appropriately mapped.
• If the network interposes a routing daemon between the client and server, you
must configure it to forward these subjects in both directions.
Test Conditions
Measure latency in a controlled environment. That is, ensure that no other
applications are consuming CPU or I/O resources on the two test computers, and
that no other applications are consuming network bandwidth. For example:
• Terminate all other user applications.
• Terminate scheduled jobs (UNIX cron), and anything else that uses CPU
cycles.
• Use a network analyzer to detect other bandwidth usage, and eliminate it.
• To reduce variability that can distort latency measurements, you can set the
reliability interval to zero.
Test Strategies
Run a series of trials lasting between 30 seconds and a few minutes.
Set message size to approximate expected data payloads for your applications.
Use serial mode to establish baseline round-trip statistics under uniform
low-throughput conditions, and to understand network behavior. Then use batch
mode to understand how latency degrades under high-throughput conditions.
Vary batch size to simulate the actual data rates of your applications.
Data Strategies
Capture summaries from several trials in a spreadsheet, so you can easily analyze
and manipulate the results.
Large datasets are unwieldy. When it is crucial to capture raw data (with
-datapoints), use the -sample parameter to reduce dataset size.
Interpreting Data
Use plotting and statistical tools to graph latency data, visualize patterns, and
correlate those patterns with network behavior.
rvlat
Command
Purpose rvlat measures network latency. The client sends request messages to the server,
and reports statistics to stdout and stderr. The server responds to client requests
immediately.
(Sheet 1 of 5)
Parameter Description
Mode Parameters
(Sheet 2 of 5)
Parameter Description
Parameters that Apply to Both Client and Server
-service service service is the service name or UDP or PGM port number that defines the
service group.
See Service Selection on page 20.
When absent, the default value is 12486.
-network network network narrows the service group by selecting a local network by
network name or IP network number (when the host computer has
multiple network interfaces). It can also specify multicast addresses.
See Network Selection on page 23.
When absent, the default value is the multicast address ";224.1.1.5".
On operating systems that do not support multicast addressing, you
must supply a valid broadcast network address.
-daemon daemon The -daemon parameter instructs the program about how and where to
find rvd and establish communication.
See Daemon Client Socket—Establishing Connections on page 28.
You can specify a daemon on a remote computer. For details, see Remote
Daemon on page 29. However, the program cannot start a remote
daemon automatically—you must start it manually on the remote
computer. Note that using a remote daemon could increase latency.
When testing latency through TIBCO Messaging Appliance P-7500,
supply the hostname:port of the P-7500.
When absent, the program finds the local daemon on TCP socket 50000.
(Sheet 3 of 5)
Parameter Description
-vectored Sending
Server-Only Parameters
-sample response_rate For background information, see Measuring Technique on page 328.
When present, the server uses a random number generator to select a
subset of requests to which it responds, while ignoring all the rest. The
value of response_rate specifies the probability of a response (as a
percentage) for each message.
When absent, the server responds to 100% of the request messages it
receives.
We do not recommend using -sample when measuring in serial mode.
(Sheet 4 of 5)
Parameter Description
-time t When present, rvlat sends a run of messages that continues for t
seconds. When -messages is also present, -time overrides -messages.
When absent, the default behavior sends a specific number of messages
(rather than running for a specific time).
-size size rvlat sends request messages with size bytes of payload data.
Use this size to model application data rates. This size does not include
message header data nor packet overhead.
When absent, the default is 0 payload bytes in each message.
-batch batch_size When present, rvlat sends messages in batches, with batch_size messages
in each batch.
When absent, rvlat sends messages serially, sending each request
immediately after receiving a response to the previous request.
-interval pause When rvlat sends messages in batches, it waits for pause seconds
between the end of one batch and the start of the next batch.
When absent, the default pause is 1 second.
In serial mode (that is, when -batch is absent), rvlat ignores this
parameter.
-inbox When present, the client sends request messages to an inbox on the
server (using point-to-point protocols). The server responds to an inbox
on the client.
When absent, the client sends request messages to a multicast subject
(using either multicast or broadcast protocols, as specified in the
-network parameter). The server responds to a multicast subject.
(Sheet 5 of 5)
Parameter Description
Client-Only Parameters that Control Output
The two types of report include the same information, and both are in
CSV format.
When this option is present, rvlat outputs only a terse report to stdout.
When absent, rvlat outputs two reports—a terse report to stdout, and
a human-readable verbose report to stderr.
-datapoints When present, rvlat outputs each round-trip data point (in
milliseconds) to stdout.
Caution: This option can generate an unwieldy volume of data.
-spikes threshold When present, rvlat outputs data points greater than threshold to stderr.
Each data point includes the round-trip time and the sequence number
of the request message (within the run).
-w filename When present, rvlat takes output data that would otherwise go to
stdout, and instead writes it to the specified file for later analysis.
If the file is not empty, rvlat appends the data at the end of the file.
Output to stderr is not affected; see Output Streams on page 338.
Output
rvlat produces several kinds of output, including summary, raw data points, and
outliers; human-readable and spreadsheet-ready; as well as error messages
(which indicate problems with the command line parameters).
Output Streams
rvlat directs its output to two streams:
• stderr for human-readable output
This category includes the human-readable summary, the spike data points
(when requested), and error messages (if any).
• stdout for spreadsheet output
This category includes the terse spreadsheet summary, and the raw data
points (when requested).
Summaries
After a run, rvlat produces a summary of its data. The summary includes 13
comma-separated values (see Table 29). The summary is available in two forms:
• Human-readable summary, including units and abbreviated labels for each
value
• Terse spreadsheet summary, including only the numeric values (with neither
units nor labels)
# Label Description
1 max Maximum latency (in milliseconds)
# Label Description
6 sampled Number of responses actually sent by the server.
7 discarded Number of data points discarded by the client; for background information,
see Discarded Data Points on page 339.
10 total time Total processing time for the trial (from the time the client sends the first
request, to the time it receives the last reply).
Spikes
With the -spikes option, rvlat outputs high-latency data points (those with
round-trip time greater than a threshold). This output to stderr is in two
columns. Each row is one data point, which consists of two comma-separated
values—the sequence number of the request message and its round-trip time (in
milliseconds).
After all the spike data, rvlat outputs the human-readable summary line to
stderr (unless -terse suppresses it).
The occurrence of any discards indicates that measurements are less precise than
they could be. A computer with finer-grained time of day clock could produce
more precise measurements.
If any discards occur, the client outputs a warning message. If this warning
appears, we recommend selecting a different computer for the client.
This chapter describes executable tools that measure performance and latency
while communicating using IPM.
Topics
IPM Tools
The product distribution includes executable tools that measure performance and
latency while communicating using IPM; see Table 30.
Each IPM tool corresponds to a regular tool that communicates through a
Rendezvous daemon. For a description of the regular tool, see TIBCO Rendezvous
Administration.
rvperfs_ipm rvperfs
rvlat_ipm rvlat
Table 31 presents the differences in command line parameters between IPM tools
and their corresponding regular tools.
Parameter Description
IPM Parameters
-reliability time You can control the reliability window of IPM measuring tools using this
parameter; see Reliable Delivery & Latency on page 254 in TIBCO
Rendezvous Concepts.
When present, IPM retains messages for time (in seconds). The value
must be a non-negative integer. For least distortion of latency
measurements, we recommend zero.
When absent, IPM uses its own default (5 seconds).
Invalid Parameters
-daemon daemon IPM tools ignore this parameter (which is available with the
corresponding regular tools).
This chapter describes rvtrace, the Rendezvous protocol monitoring tool, which
is distributed with Rendezvous Software Release 8.3.0.
Topics
Overview
Snapshots
rvtrace operates by capturing network packets, extracting information from
packet headers, and gathering statistics about those packets. At the end of each
interval, it compiles a statistical snapshot, and resets its counters for the next
interval.
rvtrace can output those statistics in table format, or you can use SNMP to query
the most recent snapshot.
Prerequisites
rvtrace is a tool for experienced network administrators.
• You must already understand IP protocols and addressing conventions.
• You must already understand Rendezvous software from an administrator’s
perspective.
• To use rvtrace effectively, you must understand the topology of your
network.
Licensing
rvtrace is sold and licensed separately from other Rendezvous components.
After purchasing rvtrace, you must include the rvtrace license ticket in the file
tibrv.tkt. If rvtrace does not find a valid license ticket, it runs for a 10-minute
evaluation period.
Limitations
Range Limitations
rvtrace cannot examine packets unless they traverse the immediate network
segment in which rvtrace is running. For example, point-to-point conversations
within or between other network segments are invisible to rvtrace. Most
saliently, retransmission requests and retransmission rejections are point-to-point
packets, so they are visible to rvtrace only when they either originate or
terminate in the local network segment. Consequently, in some situations
rvtrace can detect retransmission broadcasts, even though it cannot detect the
point-to-point packets that request retransmissions.
Switched network environments (such as switched Ethernet, or ATM) further
limit the usefulness of rvtrace as a diagnostic tool. Since switching hardware
forwards every point-to-point packet directly to its destination host, rvtrace
detects point-to-point packets only when they either originate or terminate in the
computer running rvtrace. In some switched networks, you can ameliorate this
situation by disabling switching behavior—for example, by setting one port to
diagnostic mode, or by using a diagnostic utility. This tactic can yield the full
stream of point-to-point packets in a limited portion of the network; run rvtrace
in that portion.
In addition, some network switching hardware can route multicast packets to a
network segment only when a host in the segment is actually listening to the
corresponding multicast group. Such high specificity further limits the range of
rvtrace.
Protocol Limitation
rvtrace supports only UDP multicast and UDP point-to-point protocols. It does
not support PGM or RPTP protocols.
Interface Limitation
rvtrace supports only Ethernet interfaces.
rvtrace does not support these (or any other) non-Ethernet interfaces: Token
Ring, FDDI, ATM.
Passive Monitor
Performance Effects
Obtaining pcap
Before using rvtrace, you must first ensure that the pcap facility is properly
installed.
On most UNIX platforms, pcap is ready to use.
For Windows, you can download the WinPcap NDIS packet capture driver from
this URL:
• http://www.winpcap.org/install/default.htm
For Windows platforms with multiple network interfaces, see also Selecting the
Network Interface on page 351.
Packet Filtering
pcap has a flexible filtering language for selecting the set of packets to capture.
rvtrace inherits this language through its -filter parameter.
You can select packets based on source, destination, host, network interface, port,
packet length, and protocol. Packets that match the filter appear in rvtrace
output; packets that do not match are ignored.
See Also
-filter expr on page 356
Filtering, page 360
UNIX On UNIX platforms with more than one network interface, use iniftst to
determine the correct interface name.
Windows On Windows platforms with more than one network interface, it is sometimes
difficult to determine the correct interface name. The remainder of this section
presents a method to determine it:
1. If data capture appears correct, then the remaining steps are not needed.
However, if the captured data is all zeroes, then specify a different network
interface (using rvtrace -i). Only one of the interfaces carries the data that
rvtrace requires.
C:\>rvtrace -i \Device\Packet_{D7308399-80B2-4CA1-A9E6-C90DD74511A8}
rvtrace can write packets into a capture file, and read a stream of packets from a
file (as if from the network).
Motivation
Packet capture files are an important tool for problem diagnosis. Several
techniques are useful:
• Capture packet data for later analysis.
• Capture packet data for further analysis at a remote location.
• Capture packets at high speed, then replay later when I/O delays are
acceptable.
In general, rvtrace can capture packets to a file faster than it can display
statistics. Large amounts of display data can create I/O delays, which could
cause rvtrace to miss packets. For example, in a heavily loaded network,
displaying subject statistics for many subjects could have this undesirable
result.
You can use data capture files to side-step this difficulty. For example, capture
a five-minute snapshot of packets (capturing suppresses display); then replay
packets from the file, displaying statistics when the consequences of I/O
delays are no longer problematic.
The command line option -w-rotate total_size is deprecated in release 7.5, and
will become obsolete in a subsequent release. We recommend migrating to the
new rotation parameters at your earliest convenience.
In the meantime, we preserve backward compatibility by converting the value of
this deprecated parameter to corresponding values of the new parameters:
• -w-rotate total_size retains its old meaning—specifying the total size for all
data capture files. The maximum size for each individual file in the rotation is
total_size/10.
• If both old and new parameters are present, the new parameters take
precedence (overriding the old parameter).
rvtrace
Command
(Sheet 1 of 6)
Parameter Description
Data Source
-i interface The program monitors packets on the network interface with this
name. If absent, the default value varies, depending on operating
system and network hardware. For Windows platforms, see also
Selecting the Network Interface on page 351.
(Sheet 2 of 6)
Parameter Description
-r input_file When present, read recorded packets from input_file instead of a
network interface.
This option overrides the -i parameter.
For more information, see Data Capture Files on page 352.
Data Filtering
-addr expr Filter the set of packets to process only those with source or
destination in the set of hosts or networks specified in expr. For filter
expression syntax and semantics, see Filtering on page 360.
Enclose filter expressions in quotation marks (").
The parameter -addr filter is equivalent to:
-filter udp and (src filter or dst filter)
-src expr Filter the set of packets to process only those that originate from the
set of hosts or networks specified in expr. For filter expression syntax
and semantics, see Filtering on page 360.
Enclose filter expressions in quotation marks (").
The parameter -src expr is equivalent to:
-filter udp and src expr
(Sheet 3 of 6)
Parameter Description
-dst expr Filter the set of packets to process only those with destination in the
set of hosts or networks specified in expr. For filter expression syntax
and semantics, see Filtering on page 360.
Enclose filter expressions in quotation marks (").
The parameter -dst filter is equivalent to:
-filter udp and dst filter
-port expr Filter the set of packets to process only those with destination port in
the set of ports specified in expr. For filter expression syntax and
semantics, see Filtering on page 360.
Enclose filter expressions in quotation marks (").
The parameter -port port is equivalent to:
-filter udp and dst port port
-filter expr Filter the set of packets to process only those that match expr. For
filter expression syntax and semantics, see Filtering on page 360.
Enclose filter expressions in quotation marks (").
When present, this parameter overrides the -src, -dst, -addr, and
-port parameters.
(Sheet 4 of 6)
Parameter Description
Data Capture
-w output_file When present, write packet information to output_file for later replay
or analysis.
When absent, do not record packet information to a file.
For more information, see Data Capture Files on page 352.
When -w is present, rvtrace does not display statistics. To see
statistics, use -r to read the packet capture file.
When both -r and -w are present, rvtrace reads packets from
input_file, filters them, and then recaptures the filtered packets to
output_file. You can use this technique to prune an existing capture
file by reducing information or filtering extraneous traffic.
-w-max-size size When present, activate the capture-file rotation regimen (see Data
Capture Files on page 352 and Log Rotation on page 54).
-w-max-rotations n
When you specify these options, you must also specify -w.
size is in megabytes. 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
rotation. When -w-max-size is zero or absent, a single capture file
may grow without limit (other than the limit of available storage).
n indicates the maximum number of files in the rotation. When
-w-max-rotations is absent, the default value is 10.
Statistics
(Sheet 5 of 6)
Parameter Description
-addrinfo When present, display network totals, subtotals, and detail rows.
When absent, display only network totals and subtotal rows.
For example output, see Figure 81, rvtrace Output with -addrinfo,
on page 363, and Figure 82, rvtrace Output without -addrinfo, on
page 363.
Log Output
(Sheet 6 of 6)
Parameter Description
-log-max-size size When present, activate the log rotation regimen (see Log Rotation on
page 54).
-log-max-rotations n
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.
Other
Errors • rvtrace uses the pcap facility, which requires root privileges (because it must
open the raw ethernet device in promiscuous mode). Without appropriate
privileges, pcap denies permission to initialize, and rvtrace exits
immediately.
• The pcap library calls reject improperly formed filter expressions. It reports
them with messages such as this:
pcap_compile: syntax error
Filtering
You can modify the set of packets that rvtrace processes by supplying either the
-filter parameter, or a combination of the -src, -dst, -addr, and -port
parameters. Filter expressions specify the set of packets to process.
rvtrace uses the pcap facility to capture and filter packets. The tcpdump utility
also uses pcap, so the syntax and semantics for rvtrace and tcpdump filter
expressions are identical. Table 32 summarizes the subset of filter expressions that
are relevant to rvtrace; for additional options, see documentation for tcpdump.
(Disclaimer: pcap and tcpdump are not TIBCO products; we do not sell, support
or document them.)
Each row of Table 32 constitutes an expr, and can be used in place of the syntax
marker expr elsewhere in Table 32, and in the parameter table for rvtrace.
When specifying a filter expression to an rvtrace parameter, enclose the
expression in quotation marks (").
Element Description
Host Expressions
host host Process a packet if either the IP source or destination of the packet is host.
Specify host as a name or an IP address.
Network Expressions
net net Process a packet if either the IP source or destination of the packet is net.
Specify net as a name or an IP network number.
Element Description
Port or Service Expressions
port port Process a packet if either the IP source or destination port of the packet is
port. Specify port as a service name or a UDP port number.
Protocol Expressions
Boolean Operators
Use parentheses to group boolean expressions; use appropriate escape characters to override
shell-specific semantics of parentheses.
The remaining sections of this chapter describe the output from rvtrace.
Figure 81 on page 363 shows a sample of the output that rvtrace prints at the
conclusion of each interval, when the -addrinfo flag is present:
• Time stamp—identifies the interval
• Multicast Data Statistics—summarizes Rendezvous multicast and broadcast
packets during the interval, organized by UDP port (service) and destination
address (see Multicast Data Statistics on page 365)
• Multicast Retrans Statistics—summarizes requests to retransmit packets of
multicast and broadcast data (this table does not appear in Figure 81; see
Multicast Retransmit Statistics on page 369)
• PTP Statistics—summarizes Rendezvous point-to-point packets during the
interval, organized by UDP port (service) and destination address (see
Point-to-Point Statistics on page 376)
• Subject Statistics—recapitulates Rendezvous multicast and broadcast message
activity during the interval, featuring information about subject names (see
Subject Statistics on page 383)
Notice that each table begins with a network total, and then breaks down the total
into subtotals and fine-grained categories.
Figure 82 on page 363 shows a sample of the less verbose output that rvtrace
prints when the -addrinfo flag is absent. Notice that tables omit the fine-grained
categories—displaying only the network total and subtotals
Number of Senders
To determine the number of Rendezvous daemons that sent data messages during
an interval, count the number of distinct source addresses in all source rows of the
Multicast Data Statistics table and the Point-to-Point Statistics table.
Bad Packets
Bad packets lack UDP checksums, or are corrupt in some other way.
False Bad In some situations, rvtrace can incorrectly report bad packets.
Packets
When a sending host computer enables checksum off-loading features, the
network interface card (rather than the CPU) adds checksums to outbound
packets. If rvtrace is running on the same host as the sender, it captures
outbound packets before the checksums have been added. rvtrace detects the
missing checksums, and reports bad packets. However, by the time these packets
actually reach the network, they might not be bad packets.
Figure 83 shows a multicast data table (from rvtrace -addrinfo). The text
below introduces important concepts. Table 33 on page 366 describes the columns
in detail.
Notice that the rows divide visually into six groups, as indicated by a number in
the Port column and an asterisk (*).
Network Total The first row (immediately after the table and column headings, and before the
Row four groups) is a network total row; the word Totals in the Address column is a
visual cue. This row shows the grand total of multicast and broadcast packets on
the network during the interval. For example, the Data column shows the total
number of data packets that rvtrace detected on the network during the interval.
The remaining rows display more fine-grained information about those packets—
grouping them by UDP service, destination address, and source address.
Subtotal Groups A number in the Port column indicates the UDP service for its row, and the group
of rows that follow it. A blank in this column means that the row has the same
port as the row above, and is part of the same subtotal group. Notice how the
pattern of numbers and blanks in the Port column visually indicates the subtotal
groups.
Destination Row * flags a row as a destination subtotal row. A blank (space character) in this column
flags a row as a source row. Each group begins with a destination subtotal row,
followed by one or more source rows.
Each destination subtotal row is the heading and subtotal for the source rows that
follow it. For example, consider the destination row with 20000 in the Port
column, and 224.1.1.12 in the Address column. The Data column indicates 20
packets on UDP service 20000 sent to the multicast group 224.1.1.12. The two
subsequent source rows indicate that those 20 packets came from two sources—
the daemon or IPM with SCid 39365 at 10.101.2.102 sent 10 packets, while SCid
39364 at the same host sent another 10 packets. The subtotal 20 in turn
contributes to the grand total 51 in the first row.
A destination subtotal row governs the source rows below it (until the next
destination subtotal row). That is, the UDP service (port) and address in the
governing row apply to those source rows. Similarly, the governing row address
implies either multicast or broadcast protocol, and this protocol also applies to the
statistics in the source rows that it governs. (Naturally, all of this information also
applies to the governing row itself.)
Source Row Each source row shows a very narrow subset of packet activity during the
interval—packets on a specific UDP service (port), with a specific destination
address, and originating at a specific source (IP address). The Address column
shows the source; the UDP service and destination address are specified in the
governing row (that is, the nearest preceding destination subtotal row).
Statistics In destination rows numbers in statistics columns count packets with the
destination specified in the Address column.
In source rows numbers in statistics columns count packets originating from the IP
address in the Address column.
In network total rows, numbers in statistics columns represent the packet totals for
the network during the interval.
Column Description
Port In destination subtotal rows, this column contains a UDP port number indicating the
Rendezvous service for the group of rows that it begins.
In source rows this column is blank; the service in the nearest preceding destination row
also applies to the source row.
Column Description
Address In destination rows this column shows the destination address shared among a group of
packets. It can be an IP address or a multicast group.
In source rows this column shows the IP address from which group of packets originate.
In network total rows, this column contains the word Totals.
Column Description
Gaps Sequence gaps.
rvtrace tracks the serial numbers of Rendezvous packets. The Gaps column counts the
missing packets in each sequence of multicast or broadcast data packets.
For more information, see Gaps Diagnoses on page 368.
R Reliability.
A numeric value indicates the reliability of a specific service on a specific host.
Hyphen (-) is a place holder in rows that don’t represent a host (that is, in port rows
and total rows).
Gaps Diagnoses
A sequence gap can occur in two situations:
• rvtrace misses one or more packets; that is, the hardware or operating
system on which rvtrace is running drops one or more packets.
• The network infrastructure drops one or more packets between their source
and rvtrace.
To determine which of these two situations has actually occurred, check the Rdata
values within the interval and in subsequent intervals. If Rdata remains at zero,
then it is likely that rvtrace alone is missing packets. If Rdata is non-zero, then it
is likely that the network infrastructure is dropping packets (Rdata is non-zero
because other daemons on the network are requesting retransmission of the
missing packets).
The Rreq column of this table counts point-to-point packets. In contrast, the
actual retransmitted data packets use the same protocol (multicast or broadcast)
as the original data packets that they recapitulate (as do the rejection notices in the
Rrej column).
Figure 84 shows a multicast retransmit table (from rvtrace -addrinfo). The text
below introduces important concepts. Table 34 on page 370 describes the columns
in detail.
Network Total The first row (immediately after the table and column headings) is a network total
Row row; the word Totals in the Address column is a visual cue. This row shows the
grand total of packets related to retransmission detected on the network during
the interval.
The remaining rows display more fine-grained information about those packets—
grouping them by UDP service, and destination or source IP address.
Port Subtotal Row The second row in Figure 84 is a port subtotal row—its columns subtotal the
statistics over the subsequent destination and source rows which it governs (until
the next port subtotal row).
A number in the Port column indicates the UDP service for its row, and the group
of rows that follow it. A blank in this column means that the row has the same
port as the row above, and is part of the same subtotal group. Notice how the
pattern of numbers and blanks in the Port column visually indicates the subtotal
groups.
Destination and For each IP address with retransmission request activity, this table contains a
Source Rows destination row and a source row—always paired in that order. An * and an IP
address (in the Address column) flags a row as a destination row. A blank (space
characters) flags a row as a source row. The address in the destination row also
applies to the source row that immediately follows it.
Counting Packets This table displays each packet twice—once in a destination row, and once in a
source row.
In each statistical column, the number in the port subtotal row is equal to the sum
of the values in the destination rows, which is also equal to the sum of the values
in the source rows.
In many networks it is possible to match the numbers in the source row for one IP
address against the numbers in the destination row for another IP address. From
this information you can deduce which Rendezvous daemons are missing packets
and requesting retransmissions.
Column Description
Port In port subtotal rows, this column contains a UDP port number indicating the
Rendezvous service for the group of rows that it begins.
In destination and source rows this column is blank; the service in the nearest
preceding port subtotal row governs the destination and source rows below it.
Column Description
Address In destination rows this column shows the destination IP address of retransmission
request packets (that is, the Rendezvous daemon that originally sent data packets).
In source rows this column shows the IP address from which retransmission request or
rejection packets originate (that is, the Rendezvous daemon that missed receiving data
packets).
In network total rows, this column contains the word Totals.
Column Description
Bad Bad packets.
This column shows the number of packets that lack UDP checksums, or are corrupt in
some other way.
Diagnoses
Scanning for Problems on page 363 described a quick scanning technique for
locating problems in rvtrace output, looking for non-zero values in the Bad,
Gaps, and Rbytes columns of the multicast data tables. When such a scan
indicates problems, look more closely at the retransmit statistics in nearby
intervals.
Rseq measures retransmission requests for missed multicast or broadcast packets.
Non-zero Rseq values generally indicate a problem. The ratio Rdata/Data
measures the severity of the problem. Small ratios indicate low-level problems,
which you can investigate as time permits. Ratios of 2% or greater indicate
potentially serious network problems; investigate further. High ratios that last for
only one interval, could indicate an intermittent problem, which could become
more serious in other situations.
Notice that Rseq tabulates packets that serve a feedback mechanism within the
protocol. A data receiver becomes a feedback sender when it detects that it has
missed data packets. So the Rseq value in source rows indicates a data receiver
sending retransmission requests. Conversely, the Rseq value in destination rows
indicates a data sender receiving retransmission requests.
Consider the following two examples.
• One slow computer is flooded by too much data from a network of faster
senders; the receiver cannot process inbound data as fast as the rest of the
network.
• One receiver with intermittent network interface failures or a loose network
cable.
In Figure 85 on page 373, the first interval shows 9 sequence gaps in the multicast
statistics table—that is, 9 gaps in the stream of multicast packets. The Rseq
column of the multicast retransmit table contains further details; the host at
address 10.101.3.246 requested 2211 packets for retransmission, while the other
hosts requested a total of 11 packets. Conclude that the locus of the problem is at
10.101.3.246, and that retransmit requests from the other receivers are side
effects.
The second interval of Figure 85 shows zero sequence gaps—the problem has
abated. Nonetheless, the Rdata and Rbytes columns indicate that retransmissions
continue as Rendezvous daemons recover from the problem by resending stored
data.
By the third interval of Figure 85, everything has returned to normal.
In Figure 86, the multicast statistics table shows 411 sequence gaps—that is, 411
gaps in the stream of multicast packets. Moreover, all the missing packets
originate at one sender, 10.101.3.246. The Rseq column of the multicast
retransmit table contains further details; both of the receivers in the network
requested those packets for retransmission—that is 10.101.3.74 and
10.101.3.237 both sent retransmit requests to 10.101.3.246. Conclude that the
locus of the problem is at 10.101.3.246.
The Rdata column of the multicast statistics table shows that before the end of the
interval, the sender had retransmitted all 411 missing packets. The problem was a
brief glitch—the Rendezvous reliable transport mechanisms easily smoothed over
this temporary rough spot. Nonetheless, if such behavior recurs, the
administrator must investigate the problem.
Point-to-Point Statistics
Network Total The first row (immediately after the table and column headings) is a network total
Row row; the word Totals in the Address column is a visual cue. This row shows the
grand total of packets related to retransmission detected on the network during
the interval.
The remaining rows display more fine-grained information about those packets—
grouping them by UDP service, and destination or source IP address.
Port Subtotal Row The second row in Figure 87 is a port subtotal row—its columns subtotal the
statistics over the subsequent destination and source rows which it governs (until
the next port subtotal row).
A number in the Port column indicates the UDP service for its row, and the group
of rows that follow it. A blank in this column means that the row has the same
port as the row above, and is part of the same subtotal group. Notice how the
pattern of numbers and blanks in the Port column visually indicates the subtotal
groups.
Destination and For each IP address with point-to-point data packet activity, this table contains a
Source Rows destination row and a source row—always paired in that order. An * and an IP
address (in the Address column) flags a row as a destination row. A blank (space
characters) flags a row as a source row. The address in the destination row also
applies to the source row that immediately follows it.
Counting Packets This table displays each packet twice—once in a destination row, and once in a
source row.
In each statistical column, the number in the port subtotal row is equal to the sum
of the values in the destination rows, which is also equal to the sum of the values
in the source rows.
In many networks it is possible to match the numbers in the source row for one IP
address against the numbers in the destination row for another IP address. From
this information you can deduce which Rendezvous daemons are exchanging
point-to-point data packets and requesting retransmissions.
Column Description
Port In port subtotal rows, this column contains a UDP port number indicating the
Rendezvous service for the group of rows that it begins.
In destination and source rows this column is blank; the service in the nearest
preceding port subtotal row governs the destination and source rows below it.
Column Description
Address In destination rows this column shows the destination IP address of retransmission
request packets (that is, the Rendezvous daemon that originally sent data packets).
In source rows this column shows the IP address from which retransmission request or
rejection packets originate (that is, the Rendezvous daemon that missed receiving data
packets).
In network total rows, this column contains the word Totals.
Column Description
Bad Bad packets.
This column shows the number of packets that lack UDP checksums, or are corrupt in
some other way.
Nak Diagnoses
Nak measures the number of point-to-point packets that request retransmission of
point-to-point data.
Non-zero Nak values to or from a specific address usually indicates one of these
problems:
• A faulty network interface card at a specific computer.
• A faulty or overloaded network infrastructure component (for example,
switching or router hardware).
• A fast sender is overwhelming a slower receiver with point-to-point packets.
• A sender on a fast network is overwhelming a network infrastructure
component by sending point-to-point packets to a receiver on a slower
network.
Begin by checking the specific interface card, and widen the investigation to other
components until you can resolve the difficulty.
• The Ack column shows that eventually, 10.101.2.249 did receive all 68
retransmitted packets correctly, recovering from the problem.
Subject Statistics
The subject table counts multicast and broadcast messages (not packets) and
organizes statistics by Rendezvous subject name (in addition to UDP service and
destination address).
Figure 89 shows a subject table (from rvtrace -addrinfo). The text below
introduces important concepts. Table 36 on page 384 describes the columns in
detail.
Network Total The first row (immediately after the table and column headings) is a network total
Row row; the word Totals in the Address column is a visual cue. This row shows the
grand total of messages that rvtrace detected on the network during the interval.
The remaining rows display more fine-grained information about those
messages—grouping them by UDP service, destination address, subject name,
and source address.
Subject Subtotal A character string in the Subject column indicates the Rendezvous subject name
Groups for its row, and the group of rows that follow it. A blank in this column means
that the row has the same subject as the row above, and is part of the same
subtotal group. Notice how the pattern of subject names and blanks in the
Subject column visually indicates the subtotal groups. The visual pattern of
numbers in the Port column echoes this division.
Each subject subtotal group begins with a subject row (which is also a destination
row) followed by one or more source rows.
Destination and * flags a row as a destination row. A blank (space character) in this column flags a
Source Rows row as a source row.
Each destination row is the heading and subtotal for the source rows that follow
it. For example, consider the destination row with foo.1 in the Subject column.
The Msgs column indicates 20 multicast messages. The two subsequent source
rows indicate that those 20 messages came from two sources on the host
10.101.2.102—that is, SCid 39365 sent 10 messages, while 39364 sent another
10 messages. The subtotal 20 in turn contributes to the grand total 21 in the
network total row.
A subject row governs the source rows below it (until the next subject row). That is,
the subject, UDP service (port), and address in the governing row apply to those
source rows. Similarly, the governing row address implies either multicast or
broadcast protocol, and this protocol also applies to the statistics in the source
rows that it governs. (Naturally, all of this information also applies to the
governing row itself.)
Statistics In destination rows numbers in statistics columns count messages with the
destination specified in the Address column.
In source rows numbers in statistics columns count messages originating from the
IP address in the Address column.
In network total rows, numbers in statistics columns represent the message totals
for the network during the interval.
Column Description
Port In destination subtotal rows, this column contains a UDP port number indicating the
Rendezvous service for the group of rows that it begins.
In source rows this column is blank; the service in the nearest preceding destination row
also applies to the source row.
Address In destination rows this column shows the destination address shared among a group of
messages. It can be an IP address or a multicast group.
In source rows this column shows the IP address from which group of messages
originate.
In network total rows, this column contains the word Totals.
Column Description
SCid Service communication ID.
In source rows, this value differentiates the source of packets when several daemons or
IPM intances on the same host computer reuse the same service port.
Zero in this column indicates that the source is the only sender on that service and host.
In destination rows this column is blank.
Subject This column shows the Rendezvous subject name shared among the messages in a
subtotal group.
SNMP
rvtrace embeds an SNMP agent. You can use SNMP applications to query
rvtrace statistics and trap SNMP events (as listed in Table 37).
Thresholds
rvTrdpMCHostTable Table of multicast statistics, with one entry for each triple of sending
host (rvTrdpMCHostAddr), service port (rvTrdpMCPort), and
destination address (rvTrdpMCDestAddr).
rvTrdpRtHostTable Table of multicast retransmission statistics, with one entry for each
pair of host (rvTrdpRtHostAddr) and service port (rvTrdpRtPort).
Entries in this table count several types of packets related to the
retransmission request protocol for multicast or broadcast data.
rvTrdpRtReqPktsSrc Number of retransmission request packets sent by the host (that is,
the host is the source of the request packet).
These packets indicate that the receiving Rendezvous daemon on the
host missed inbound data packets, and has requested
retransmission.
Each request packet counts separately, even if several request
packets specify the same data packet numbers for retransmission.
rvTrdpRtRejPktsSrc Number of retransmission rejection notices sent by the host (that is,
the host is the source of the rejection packet).
Although Rendezvous daemons comply with retransmission
requests whenever possible, sometimes the requested data packets
are no longer available.
rvTrdpRtReqSeqDest Number of data packet sequence numbers requested from the host.
Each retransmission request packet can solicit one or more data
packets for retransmission. This item counts the number of data
packets requested, summing them over the request packets (as
counted by rvTrdpRtReqPktsDest).
If several daemons request a data packet several times, each request
counts separately. For more information, see Diagnoses on page 372.
rvPtpHostTable Table of point-to-point statistics, with one entry for each pair of host
(rvPtpHostAddr) and service port (rvPtpPort)
rvPtpPktsSrc Number of point-to-point data packets sent by the host (that is, the
host is the source of the data packet).
rvPtpBytesDest Number of payload bytes summed over data packets indicating the
host as destination.
rvSubjTable Table of subject statistics, with one entry for each pair of subject
(rvSubject) and service port (rvSubjPort)
rvSubjBytes Number of payload bytes summed over messages for this pair.
Traps
rvNotifyBadPkts Notify when the number of bad packets during an interval exceeds
rvBadPktThreshold.
Environment variables can instruct SNMP to search for the configuration file in a
different location; for details, see this web page:
http://net-snmp.sourceforge.net/docs/man/snmp_config.html
Table 38 on page 394 presents the configuration parameters. To change the default
values of these parameters, create this file, and configure it appropriately.
Parameter Description
rocommunity community [location [oid]] You must specify at least one rocommunity and at
least one rwcommunity. You may specify more than
rwcommunity community [location [oid]]
one of each.
Each such line controls SNMP access from a set of
SNMP managing systems, granting either read-only
or read-write access to a set of rvtrace SNMP
objects.
• community (required) must be a sequence of
alphanumeric characters (without quote marks,
and without intervening spaces). This argument
restricts SNMP access, allowing queries only
from managing systems that present an identical
string.
• location (optional) further restricts access to
managing systems on a designated host
computer or network. You may supply an
argument in these three forms:
— A hostname or IP address restricts access to
managing systems on the specified host
computer.
— An IP network address with mask bits
restricts access to managing systems within
the specified IP network, as determined by
matching the specified number of mask bits.
For example, 10.1.1.0/24 allows any
computer with an address matching
10.1.1.*.
Parameter Description
agentaddress port When present, the SNMP agent accepts requests and
queries on this port.
port can have either of two forms:
• 1234 (represents a UDP port)
• tcp:1234 (represents a TCP port)
informsink host [community] [port] When this line is present, the SNMP agent enables
trap objects, and sends trap notification to the
SNMP trap daemon on host.
When the optional community property is present, the
trap daemon must present an identical property
before it can receive trap notifications. The community
property must be a sequence of alphanumeric
characters (without quote marks, and without
intervening spaces).
When the optional port property is present, the agent
sends notifications on this port. The port can have
the same two forms as with agentaddress, above.
When absent, the default port is 162.
To send notification to several trap daemons, specify
a separate informsink line for each destination.
When informsink is absent, the agent disables trap
objects.
Perl programs can call Rendezvous API functions directly using a Perl 5 loadable
module called Tibrv, which extends the Perl language.
Topics
Tibrv presents the C API. All API details (for example, function names,
parameter lists, types, return codes) are the same as for C programs, so Perl
programmers can use it to:
• Prototype Rendezvous programs in Perl for later translation into C.
• Write Rendezvous programs in Perl.
System administrators often choose Perl for data organization tasks. Combining
Perl with Rendezvous software yields a powerful tool for:
• Gathering and organizing information about the operation of distributed
systems.
• Administering physically distant computers across a network.
Be sure that the library path variable is set properly; for instructions, see the
README file.
Place this module reference near the top of each Perl program file that calls
Rendezvous API functions:
use Tibrv;
If the program uses Rendezvous fault tolerance features, add this module
reference:
use TibrvFt;
Topics
Subject Description
_RVCM.> Rendezvous certified delivery software uses administrative
messages with these subjects. Routing daemons must forward
these subjects in both directions.
The ledger file must reside on the same host computer as the program that uses it.
Do not use network-mounted storage for ledger files.
Remember that certified message delivery protects against component or network
failure. Placing ledger files across a network (for example, on a separate file
server) introduces a new dependency on the network, leaving components
vulnerable to network failures.
Topics
Network Placement
Subject Description
_RVFT.*.group_name Rendezvous fault tolerance software uses messages
with these subjects to communicate among group
members. Routing daemons must forward these
subjects in both directions.
Topics
Subject Description
_RVCMQ.> Rendezvous distributed queue software uses administrative
messages with these subjects.
Whenever potential scheduler members run in one network, and
potential listener members of the same distributed queue run in a
second network, then routing daemons must forward these
subjects in both directions between the two networks.
Similarly, whenever potential listener members of the same
distributed queue run in two separate networks, then routing
daemons must forward these subjects in both directions between
the two networks.
Subject Description
_RVFT.> Rendezvous distributed queue software uses administrative
messages with these subjects.
Whenever potential scheduler members of the same distributed
queue run in two separate networks, then routing daemons must
forward these subjects in both directions between the two
networks.
Topics
See Also
Register Windows Services on page 8
rvntscfg
Utility
Restrictions You must have administrator privileges to change the Windows registry.
Remarks Locate this utility program as an executable file in the Rendezvous bin\ directory.
Rendezvous components belong to one of two categories:
• Base communications components. This category consists of rvd and rvrd—
the two components that enable network communications.
• Dependent components. All other components are in this category—they
depend on the presence of a base communications component.
Before you can start one of these programs as a service, one of the base
communications components must already be running as a service.
rvntsreg
Utility
Restrictions You must have administrator privileges to change the Windows registry.
Remarks Locate this utility program as an executable file in the Rendezvous bin\ directory.
The rvntscfg utility achieves the same end as this program, adding an intuitive
graphical user interface.
Register To register a component as a Windows service, run the utility with this command
line:
rvntsreg /i service_name ctrl_dir daemon_dir arguments
For example:
rvntsreg /i rvrd c:\tibco\tibrv\8.3.0\bin c:\tibco\tibrv\8.3.0\bin "-store
C:\tibco\tibrv\local_adm\rvrd.adm"
Parameter Description
service_name Name of the Windows service.
ctrl_dir Directory path to the controller executable rvntsctl.exe. Usually this file is in the
same location as the Rendezvous daemon, though you may copy it to another
location (for example, the Windows directory).
arguments The controller executable passes these command line arguments to the Rendezvous
daemon.
Supply the arguments as a quoted string. If an argument is a file or directory name
that contains space characters, you must enclose that name within escaped quotes
(\").
Remove To unregister a service, run the utility with this command line:
rvntsreg /r service_name
Command To view a command line summary, run the utility with this command line:
Summary rvntsreg
Many daemons associated with TIBCO Rendezvous use store files to maintain
configuration or state. This appendix presents details about store files that are
common to all daemons.
Topics
Locking
Daemons access store files using a cooperative file locking regimen, which
guarantees unique sequential access when two or more daemon processes
attempt to share the same store file. This guarantee depends on the daemon
processes’ adherence to the locking regimen.
Since non-Rendezvous processes do not adhere to the locking regimen, they can
cause store file corruption—for example, by replacing the store file at
inappropriate times.
To prevent store file corruption, ensure that non-Rendezvous processes do not
replace or modify a store file while any instance of its daemon is running. For
example, avoid replacing a store file with a saved backup version while the
daemon is running.
Index
Numerics batch
interval, rvlat parameter 336
64-bit daemon 49 interval, rvperfm parameter 309
size, rvlat parameter 336
size, rvperfm parameter 309
batch, rvperf 299
A binary executable files 4
boolean operators in filters, rvtrace 361
accept any as neighbor, rvrd 92 border routing 110
Ack column, rvtrace 378, 379, 380 broadcast filter, rvtrace 361
AckR column, rvtrace 378, 379, 380 browser administration interface 32
active neighbor, rvrd 91 Bytes column, rvtrace 367, 378, 379, 380, 385
address usage 362
Address column, rvtrace 367, 371, 378, 379, 380, 384
filter, rvtrace 355
information, rvtrace 358
administration interface, browser 32 C
administrator name and password 145, 195
administrator’s checklist 1 cache 279–296
advisory message cache modes, store vs memory-only 289
See also, the book TIBCO Rendezvous Concepts capture file, rvtrace 352
and, boolean filters, rvtrace 361 CA-signed certificate 175, 176
applet, Java 274 certificate
asymmetric multicast, RVDM 47, 130, 183, 187, 218 CA-signed 175, 176
authorization, secure daemon 173 security factor 175
auto, rvperfm parameter 308 certified delivery
automatic mode, rvperf 300, 301, 308 routing daemons 403
rvperf 316, 322
rvperfm parameters 310
rvperfs parameters 312
B checklist for administrators 1
checksum 6
backlog, routing 120 client socket, daemon parameter 28
Bad column, rvtrace 368, 372, 381 cm, See certified delivery
barring remote connections 29 cm-sync, rvperf parameter 310, 313
collision, rvperfm 307
core dump file, security factor 175
current value cache 279–296
customer support xxxi
D filter
details, rvtrace 360
daemon list, RVDM 228 parameter, rvtrace 356
daemon manager, RVDM 209 pcap, rvtrace 350
daemon parameter 18, 28 firewalls
rvlat 334 rva 274
rvperfm 307 rvrd 106
rvperfs 312 fixed subject interest, rvrd (obsolete) 88
daemon utility script 49 flush time, rvperf 317
daemon, rvd 41–74 -foreground, rvtrace parameter 359
data capture file, rvtrace 352
Data column, rvtrace 367, 378, 379, 380
usage 362
data loss advisory, rvperf 302 G
datapoints, rvlat parameter 337
deep merge (rvcache) 287 Gaps column, rvtrace 368
default port and service numbers 32 diagnosing 368
destination filter, rvtrace 356 gating, subject
distributed queues and routing daemons 411 rva 266
dividing large messages, rvperf 323 rvrd 85
duplicate messages from rvcache 283
H
E
h (help)
elapsed time, rvperf 317 rvlat parameter 335
errors 359 rvperfm parameter 310
execution search path 4 rvperfs parameter 313
rvtrace parameter 359
hardware, gauging capabilities, rvperf 319
host filter, rvtrace 360
F hostmsgs, rvtrace parameter 358
HP Tru64 UNIX, -reuse-port 52
fault tolerance HTTP, default ports 32
rvcache 286
rvrd 94
rvrd serving FT programs 407
feedback source and destination, rvtrace 372 I
file descriptor
inheritance 9 idle
limit 9 rva 269
rvcache 293
rvrd 121
inactive daemon, RVDM 228
W
WAN, rvperf 321
warning
limits of performance assessment 324
network stress, rvperf 318
performance effects, rvtrace 349
security factors 175
web site 274
wide-area network, rvperf 321
wide-area routing daemon (rvrd) 75–166
wildcard
excluding subjects with lead wildcards 45, 127
importing and export in rvrd 86, 87
publishing and RVDM 245
Windows, register service 8
-w-max-size, -w-max-rotations, rvtrace
parameters 357
write packets to file, rvtrace 357