• Antelope Release 5.4 Mac OS X 10.8.5 2014-05-02

 

NAME

orbserver - orb ring buffer server

SYNOPSIS

orbserver [-p port] [-P prefix] [-s size] [-fFhkKr] [{-v|-vv}] pfname

DESCRIPTION

orbserver is an orb ring buffer server, configured according to the parameter file pfname. It listens either at the default port or a specified port number and starts new threads which service requests from each new connection. A connection may be one of two types: a read connection or a write connection. A write connection allows saving packets into the ring buffer. A read connection allows getting packets from the ring buffer, or getting other information (statistics) about the ring buffer and packets.

Note that if you are running multiple instances of orbserver, you must specify a unique port and a unique prefix (set of local file buffers) for each instance. The prefix is most conveniently specified on the command line using the -P option, but can also be handled in the parameter file, by providing a separate parameter file for each orbserver instance.

OPTIONS

FILES

orbserver creates and maintains several ring buffer files. The directory and initial portion of the names of these files are specified by the prefix parameter in the parameter file. The files include a buffer containing packets and indexes of packet id and source id.

These orb ring buffer files must be local to the machine where orbserver is running, not nfs mounted.

DYNAMIC CONTROLS

orbserver does not create a .dynamic_controls file. However, if the file .dynamic_controls is present, the following controls and variables may be modified or observed.

PARAMETER FILE

EXAMPLE

command line


    % orbserver orbserver &

within rtexec

SEE ALSO

orb(3)

BUGS AND CAVEATS

When an orbserver is first started and the buffers need to be created, it does not completely initialize the packet buffer, but instead seeks to the specified size and writes a byte. This tactic provides a very rapid initialization of large files. The downside to this approach is that the operating system does not actually allocate all of the file space. The space gets allocated as data gets written into the buffer files. If there is insufficient space on the disk to accommodate the packet buffer and the packet index and the source index, the orbserver does not fail immediately, but fails later (with a bus error or segmentation fault) when it attempts to save a packet onto an already full partition. Therefore, it is important to be sure there is adequate space on the partition for the packet buffer, and the packet index, and the source index. Alternatively, the -f option can be used to force zero filling of the entire buffer files at initialization which will insure that space is available at startup time.

The pktid by time index in memory is computed whenever orbserver is started, and thereafter updated whenever packets are added to the ring buffer. Because this index is fixed in size, under some conditions the index may not cover the entire time range of packets in the ring buffer. The index always covers the most recent packets, but when orbafter is called with a time before the beginning of the index, the orbserver is forced to do a linear search from the beginning of the ring buffer. This situation might occur when the input to the ring buffer has stopped for some time and is then restarted; the time range in the buffer might greatly exceed the fixed size of the table.

The source index is fixed in size; if the orbserver receives packets with srcnames which do not fit into the source index, these packets are dropped. The orbserver log shows this, but the client is not notified.

A connected program does not receive any notification of a problem if the orbserver rejects its packets because the source index is full, or its connection is read-only and it attempts to send packets to the ring buffer.

The stash buffer never shrinks in size, and the only way to remove unnecessary old stash packets is to restart the orbserver, deleting the stash buffer in the interim.

Prior to Antelope 5.0, two separate executables were available, orbserver and orbserver64. As later releases of Antelope are 64-bit, the separate orbserver64 executable has been removed.

AUTHOR

Daniel Quinlan
Boulder Real Time Technologies, Inc.
Printer icon