SPO Configuration Options
Note: We recommend that SPO configuration options be set using only a supported utility such as the Server Manager.
The SPO provides the following levels of configuration options:
Server Options
Apply to the behavior of the server as a whole and include options such as a trace file name, the maximum number of dispatchers, and maximum number of ASO slave processes
Default Dispatcher Options
Specify default options for all dispatchers and include options such as the number of slave processes to start, what machine to run them on, and the timeout interval
Per-application Dispatcher Options
Override the dispatcher defaults and can be specified differently for each application. Thus, the default may be to have one slave process per dispatcher, but a particular application can be configured to run with four slaves.
The signature of an OpenROAD Server application uniquely identifies an ASO configuration for the purposes of pooling shared ASO instances. The full signature is actually a concatenation of the ImgFile/image and Flags parameters that were passed to the Initiate method. For each unique signature that the SPO encounters, a separate dispatcher instance is created to manage the pool of (one or more) shared slaves assigned to that signature. All clients that call Initiate with the same signature are assigned to the same dispatcher and share the same pool of slaves.
The image name is used as a JSON configuration file entry to control dispatcher configuration options. The application signature name (ASN) concept just abstracts that one step further, taking full advantage of a level of indirection through the JSON configuration file. When a client passes an application signature as the ImgFile/image parameter on the Initiate method, this application signature is interpreted as a unique key for an application having a “guid” with that value, with which all the information needed to configure a dispatcher and configure the ASOs can be obtained from the JSON configuration file. Moreover, this JSON configuration file entry provides a place to put new ASO configuration options, such as environment variables. This allows different ASO instances under a single SPO to have different environment settings.
To prevent any risk of changing behavior for existing installations, the ASN feature will remain dormant unless the JSON configuration file entry "usesignatureguids" is set to a nonzero value, which will activate the new behavior.
After the feature is activated, if the image string passed on an Initiate call begins with a curly brace "{", then that string is interpreted as an ASN and not a real image name. This ASN string is then used to find an application having a "guid" with this name to obtain the "real" imgfile and cmdflags strings (any flags passed on the Initiate by the client are ignored in this case). Furthermore, if this application has "environment" and/or "environment_exp" members, then all the environment variables specified there will be set before the Initiate call is passed to the OpenROAD runtime. Environment variables in the "environment_exp" member will be expanded, that is, if their values contain one or more environment-variable strings in the form: %variableName%, for each such reference, the %variableName% portion is replaced with the current value of that environment variable.
This change is transparent to the SPO. The SPO treats an ASN image string just like any other image string. All the transformation happens inside the ASO, and applies the same way for private and shared ASOs.