---
name: "rspserver"
section: "1"
platform: "linux"
package: "rsplib-tools"
version: "3.4.4-1.1+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rspserver"
---

# rspserver(1)

RSerPool Server (PE) for multiple example services

## NAME

**rspserver** – RSerPool Server (PE) for multiple example services

## SYNOPSIS

**rspserver** \[**-local=address:port,address,...**\] \[**-asapannounce=address:port**\] \[**-identifier=PE\_identifier**\] \[**-policy=policy\_specification**\] \[**-poolhandle=pool\_handle**\] \[**-quiet**\] \[**-registrar=address:port**\] \[**-rereginterval=milliseconds**\] \[**-runtime=milliseconds**\] \[**-uptime=seconds**\] \[**-downtime=seconds**\] \[**-logcolor=on\|off**\] \[**-logappend=filename**\] \[**-logfile=filename**\] \[**-loglevel=0-9**\] \[**-cspserver=address:port**\] \[**-cspinterval=milliseconds**\]

**rspserver** \[**-calcapp**\] \[**-capcapacity=calculations\_per\_second**\] \[**-capcleanshutdownprobability=probability**\] \[**-capcookiemaxcalculations=calculations**\] \[**-capcookiemaxtime=seconds**\] \[**-capkeepalivetransmissioninterval=milliseconds**\] \[**-capkeepalivetimeoutinterval=milliseconds**\] \[**-capmaxjobs=max\_jobs**\] \[**-capobject=name**\] \[**-capscalar=scalae\_file**\] \[**-capvector=vector\_file**\]

**rspserver** \[**-chargen**\] \[**-chargenmaxthreads=threads**\]

**rspserver** \[**-daytime**\]

**rspserver** \[**-discard**\]

**rspserver** \[**-echo**\]

**rspserver** \[**-fractal**\] \[**-fgpcookiemaxpackets=messages**\] \[**-fgpcookiemaxtime=milliseconds**\] \[**-fgpfailureafter=messages**\] \[**-fgpmaxthreads=threads**\] \[**-fgptestmode**\] \[**-fgptransmittimeout=milliseconds**\]

**rspserver** \[**-pingpong**\] \[**-pppfailureafter=messages**\] \[**-pppmaxthreads=threads**\]

**rspserver** \[**-scripting**\] \[**-sskeyring=keyring**\] \[**-sstrustdb=trust\_db**\] \[**-sscachedirectory=directory**\] \[**-sscachemaxentries=entries**\] \[**-sscachemaxsize=kibibytes**\] \[**-sskeepaliveinterval=milliseconds**\] \[**-sskeepalivetimeout=milliseconds**\] \[**-sskeeptempdirs**\] \[**-ssmaxthreads=threads**\] \[**-sstransmittimeout=milliseconds**\]

## DESCRIPTION

**rspserver** is an example Reliable Server Pooling (RSerPool) pool element (PE) that provides multiple services. Upon startup, one service has to be selected by the command-line parameters. To start multiple services, run multiple instances. **rspserver** provides the following services:

- CalcApp

  Calculation application model for performance tests. See https://duepublico.uni-duisburg-essen.de/servlets/DerivateServlet/Derivate-16326/Dre2006\_final.pdf for more information.

- CharGen

  Sending as much character data as possible.

- Daytime

  Sending back current time of day.

- Discard

  Discarding incoming data.

- Echo

  Echoing back incoming data.

- Fractal

  Fractal generator with cookie-based failover.

- PingPong

  Simple request-response example using cookies for failover.

- Scripting

  Remote execution of scripts with upload/download of input/output data. Could for example be used for distributing simulation runs. Take care of security when using this service!

## ARGUMENTS

The following options are available:

- Common Pool Element Parameters:

  - **-local=address:port,address,...**

    Sets the local endpoint address(es).

  - **-asapannounce=address:port\|auto\|off**

    Sets the multicast address and port the ASAP instance listens for ASAP Server Announces on.

  - **-identifier=PE\_identifier**

    Sets a fixed PE identifier. Handle with care!

  - **-policy=policy\_specification**

    Sets the pool policy and its parameters (default is Round Robin). Supported policy specifications:

    - RoundRobin (default policy)

      - WeightedRoundRobin:weight

      - Random

      - WeightedRandom:weight

      - LeastUsed

      - LeastUsedDegradation:increment

      - PriorityLeastUsed:increment

      - LeastUsedDPF:dpf\_value

      - Priority:priority

      - ...

      - **-poolhandle=pool\_handle**

    Sets the PH to a non-default value; otherwise, the default setting is the service-specific default.

  - **-quiet**

    Do not print startup and shutdown messages.

  - **-rereginterval=milliseconds**

    Sets the PE's re-registration interval.

  - **-runtime=seconds**

    After the configured number of seconds, the service is shut down. Floating-point values (e.g. 30.125) are possible.

  - **-uptime=seconds**

    After negative exponential randomized uptime, the PE service goes down for a configured downtime. After that, it comes up again. This option can be used for testing the failure handling procedures.

  - **-downtime=seconds**

    After negative exponential randomized downtime, the PE service comes up again. This option can be used for testing the failure handling procedures.

- Logging Parameters:

  - **-logappend=filename**

    Write logging output to a file (default is stdout); output will be appended to given file.

  - **-logcolor=on\|off**

    Turns ANSI colorization of the logging output on or off.

  - **-logfile=filename**

    Write logging output to a file (default is stdout); given file will be overwritten.

  - **-loglevel=0-9**

    Sets the logging verbosity from 0 (none) to 9 (very verbose). It is recommended to use at least a value of 2 to see possibly important error messages and warnings.

- ASAP Protocol Parameters:

  - **-registrar=address:port**

    Adds a static PR entry into the Registrar Table. It is possible to add multiple entries.

  - **-registrarannouncetimeout=milliseconds**

    Sets the timeout for ASAP announces via multicast.

  - **-registrarconnecttimeout=milliseconds**

    Sets the timeout for ASAP connection establishment.

  - **-registrarconnectmaxtrials=trials**

    Sets the maximum number of ASAP connection establishment trials.

  - **-registrarrequesttimeout=milliseconds**

    Sets the timeout for ASAP requests.

  - **-registrarresponsetimeout=milliseconds**

    Sets the timeout for waiting to receive ASAP responses.

  - **-registrarrequestmaxtrials=trials**

    Sets the maximum number of ASAP request trials.

- Component Status Protocol (CSP) Parameters:

  - **-cspinterval=milliseconds**

    Sets the interval for the CSP status updates in milliseconds. By default, the content of the environment variable CSP\_INTERVAL is used. If not defined, no CSP status reports will be sent.

  - **-cspserver=address:port**

    Sets the address of a CSP monitor server. By default, the content of the environment variable CSP\_SERVER is used. If not defined, no CSP status reports will be sent.

- Service Parameters:

  - **-calcapp**

    Starts the CalcApp service.

    - **-capcapacity=calculations\_per\_second**

      Sets the service capacity in calculations per second.

    - **-capcleanshutdownprobability=probability**

      Sets the probability for sending state cookies to all sessions before shutting down.

    - **-capcookiemaxcalculations=calculations**

      Sets the cookie interval in calculations.

    - **-capcookiemaxtime=seconds**

      Sets the cookie interval in seconds.

    - **-capkeepalivetransmissioninterval=milliseconds**

      Sets the keep-alive transmission interval in milliseconds.

    - **-capkeepalivetimeoutinterval=milliseconds**

      Sets the keep-alive timeout in milliseconds.

    - **-capmaxjobs=max\_jobs**

      Sets the an upper limit for the number of simultaneous CalcApp requests.

    - **-capobject=name**

      Sets the object name for scalar hierarchy.

    - **-capscalar=scalar\_file**

      Sets the name of vector scalar file.

    - **-capvector=vector\_file**

      Sets the name of vector output file.

  - **-chargen**

    Starts the CharGen service.

    - **-chargenmaxthreads=threads**

      Sets an upper limit for the number of simultaneous CharGen sessions.

  - **-daytime**

    Starts the Daytime service.

  - **-discard**

    Starts the Discard service.

  - **-echo**

    Starts the Echo service.

  - **-fractal**

    Starts the Fractal Generator service.

    - **-fgpcookiemaxpackets=messages**

      Send cookie after given number of Data messages

    - **-fgpcookiemaxtime=milliseconds**

      Send cookie after given number of milliseconds.

    - **-fgpfailureafter=messages**

      After the set number of data packets, the server will terminate the connection in order to test failovers.

    - **-fgpmaxthreads=threads**

      Sets an upper limit for the number of simultaneous Fractal Generator sessions.

    - **-fgptestmode**

      Generate simple test pattern instead of calculating a fractal graphics (useful to conserve CPU power when debugging).

    - **-fgptransmittimeout=milliseconds**

      Sets transmit timeout in milliseconds.

  - **-pingpong**

    Starts the PingPong service.

    - **-pppfailureafter=messages**

      After the set number of messages, the server will terminate the connection in order to test failovers.

    - **-pppmaxthreads=threads**

      Sets an upper limit for the number of simultaneous PingPong sessions.

  - **-scripting**

    Starts the Scripting service.

    - **-sskeyring=keyring**

      The location of a GnuPG keyring to check the work packages and environments against. If a keyring is specified, only files that pass the validation are accepted.

    - **-sscachedirectory=directory**

      Sets the environment cache directory.

    - **-sscachemaxentries=entries**

      Sets the maximum number of environment cache entries.

    - **-sscachemaxsize=kibibytes**

      Sets the maximum size of the environment cache in kibibytes.

    - **-sskeepaliveinterval=milliseconds**

      Sets the keep-alive interval in milliseconds.

    - **-sskeepalivetimeout=milliseconds**

      Sets the keep-alive timeout in milliseconds.

    - **-sskeeptempdirs**

      Turns on keeping all temporary files for debugging. Handle with care!

    - **-ssmaxthreads=threads**

      Sets an upper limit for the number of simultaneous sessions.

    - **-sstransmittimeout=milliseconds**

      Sets the transmission timeout in milliseconds.

## ENVIRONMENT

**rspserver** uses the environment variables CSP\_SERVER and CSP\_INTERVAL to define a CSP server to send reports to in the specified interval.

## DIAGNOSTICS

If loglevel\>0, log messages will be printed to stdout or into a specified log file.

## SEE ALSO

For a detailed introduction to RSerPool, see:\
 https://duepublico.uni-duisburg-essen.de/servlets/DerivateServlet/Derivate-16326/Dre2006\_final.pdf

Thomas Dreibholz's RSerPool Page:\
 https://www.nntb.no/~dreibh/rserpool/
