lsst.ts.ddsconfig¶
Overview¶
ts_ddsconfig contains configuration files for ADLink OpenSplice.
User Guide¶
Install the package with
pip
orconda
(warning:python setup.py install
does not work). You can also use the package “in place” by addingts_ddsconfig/python
to thePYTHONPATH
.Pick an OpenSplice configuration:
For SAL components that listen to events from other SAL components: use the shared memory configuration, which runs the DDS durability service in a dedicated daemon. This is required because the node will have to maintain late-joiner data and the single process mode will be overwhelmed by all our DDS data. Note that use of shared memory requires the licensed version of OpenSplice.
For SAL components that do not listen to events from other SAL components, and for local development: you may safely use the single process mode, because no durability service is needed. This allows use of the community edition of OpenSplice, which is a bit more convenient than the licensed version.
Set environment variable
OSPL_URI
to point to your chosen OpenSplice configuration. For examplefile:///home/saluser/repos/ts_ddsconfig/config/ospl-shmem.xml
.Set environment variable
LSST_DDS_QOS
to point the QoS file. For example:file:///home/saluser/repos/ts_ddsconfig/qos/QoS.xml
. Note that ts_sal uses this environment variable, but ts_salobj callslsst.ts.ddsconfig.get_qos_path
instead.
General OSPL Environment Variables¶
OpenSplice contains a few environment variables that aid in setting up the system.
- ADLINK_LICENSE
This points to directory containing your Vortex OpenSplice license. Required if using the licensed version of Vortex OpenSplice; ignored otherwise. Example value:
/opt/ADLINK/Vortex_v2/Device/VortexOpenSplice/6.10.3/HDE/x86_64.linux/etc
- OSPL_HOME
The directory of the Vortex OpenSplice software and should contain subdirectories
bin
,include
,lib
, etc. This variable is REQUIRED for correct setup. Example:/opt/OpenSpliceDDS/V6.9.0/HDE/x86_64.linux
.- OSPL_URI
A URI pointing to the main DDS configuration file, such as one of the config files in this package. This variable is REQUIRED for correct setup. Example value:
file:///opt/OpenSpliceDDS/V6.9.0/HDE/x86_64.linux/etc/config/ospl.xml
- OSPL_TEMP
A path to an alternate location for writing items OpenSplice writes into
/tmp
. Example value:/var/run
- OSPL_INFOFILE
A full path specifying the location for writing the STDOUT logging to a file. Example value:
/var/log/my-process-info.log
- OSPL_ERRORFILE
A full path specifying the location for writing the STDERR logging to a file. Example value:
/var/log/my-process-error.log
Environment Variables in OSPL Configuration Files¶
The OSPL configuration files, ospl-shmem.xml
and ospl-sp.xml
files have a number of environment variables to control behavior.
Except where noted, the environment variables are assumed to be present in both files.
- LSST_DDS_DOMAIN_NAME
This variable controls the name for the domain. Defaults to
ospl_sp_ddsi
in all configurations. See /OpenSplice/Domain/Name.- LSST_DDS_DOMAIN_ID
This variable controls the domain ID that system communicate on. All of our sites use 0 for the production environment. Other domain IDs maybe used to test systems without effecting the production environment. The default is 0 (zero).
- LSST_DDS_SHMEM_SIZE
This variable controls the size in bytes of the shared memory database. Defaults to 504857600 for standard shared memory configuration. Defaults to 209715200 for embedded shared memory configuration. See /OpenSplice/Domain/Database/Size for specifications.
- LSST_DDS_REPORT_LEVEL
This variable controls the overall verbosity level of the OSPL log files. The default is INFO. See /OpenSplice/Domain/Report@verbosity for more options.
- LSST_DDS_INTERFACE
This variable controls the networking interface that DDS should bind to. The default is AUTO. See /OpenSplice/DDSI2Service/General/NetworkInterfaceAddress for more specifications.
- LSST_DDS_RESPONSIVENESS_TIMEOUT
This variable determines how long unresponsive readers can block a transmit thread. Only the OSPL daemons, Kafka producers and single process CSCs run with anything other than inf. The default is inf. See /OpenSplice/DDSI2Service/Internal/ResponsivenessTimeout for more specifications.
- LSST_DDSI2_SERVICE_TRACING_VERBOSITY
This variable controls the level of tracing for the DDSI2 service. The default is none. See /OpenSplice/DDSI2Service/Tracing/Verbosity for more options.
- LSST_DDSI2_SERVICE_TRACING_OUTPUT
This variable controls the name of the log file for the tracing. The default is ddsi2.log. See /OpenSplice/DDSI2Service/Tracing/OutputFile for more details.
- LSST_ENABLE_DURABILITY_SERVICE_TRACING
This variable controls the tracing for the durability service. NOTE: An output file (if one is specified) is written with size zero even if the tracing is disabled. The default is FALSE. See /OpenSplice/DurabilityService/Tracing@enabled for more details.
- LSST_DURABILITY_SERVICE_TRACING_VERBOSITY
This variable controls the level of tracing for the durability service. The default is FINER. See /OpenSplice/DurabilityService/Tracing/Verbosity for more options.
- LSST_DURABILITY_SERVICE_TRACING_OUTPUT
This variable controls the name of the log file for the tracing. The default is durability.log. See /OpenSplice/DurabilityService/Tracing/OutputFile for more details.
- LSST_DDS_PARTITION_PREFIX
This variable controls the partition prefix applied to the common namespace. We use a different partition prefix per site. Not specifying this variable results in a partition of *. See /OpenSplice/DurabilityService/Namespaces/Namespace/Partition for more details.
- LSST_DDS_ALIGNEE
This variable controls the how the historical data is managed by the system. NOTE: Only the main daemon is allowed to set this to Initial. The default is Lazy. See /OpenSplice/DurabilityService/Namespaces/Policy@alignee for more details.
- LSST_DDS_ALIGNER
This variable determines if the durability service can provide historical data to other durability services. NOTE: Only the main daemon is allowed to set this to true. The default is false. See /OpenSplice/DurabilityService/Namespaces/Policy@aligner for more details.
- LSST_DDS_MERGE_POLICY
This variable sets the merge policy for the given namespace. NOTE: Only designated daemons may set this variable. The default is Ignore. See /OpenSplice/DurabilityService/NameSpaces/Policy/Merge for more details.
- OSPL_MASTER_PRIORITY
This variable sets the priority level for which durability service is the main (master). The main daemon is set to a value ~200. All other daemons and CSCs are set to a much lower value or zero. See /OpenSplice/DurabilityService/Namespaces/Policy@masterPriority for more details.