14.1 System Start Up
On This Page:
System Parameter Tables
As each process starts up it must configure itself to run with the correct set of parameters.
- For the FRU process this means parameters for each of its functional threads e.g. ABS, Optimizer, Dispatch and Jeopardy.
- Other processes, i.e. 14.1 API Agent and 14.1 Gantt Router, do not have such differentiated functional threads, but still need to pick up a set of parameters to affect behaviour.
See the Table Definitions to navigate to the database table descriptions if they are of general interest. The specific parameters of note at this stage are given below.
How It Works
The System Monitor(s) will automatically start all the server processes.
The Master System Monitor process is responsible for starting the API Agent and Gantt Router(s) and an FRU process for each FRU, using the settings in the database table sp400_components
, with the corresponding database connections. In a distributed system, the Slave System Monitor acts as the Master System Monitor's delegate for actions local to a specific node (e.g. process creation, application log file recovery).
SP400 Tables
The sp400
series of database tables allows for the configuration of the system - how it will physically be implemented on the various machines/operating systems in use. Full descriptions are given in the Database Specification.
However, this section provides more detail as to specific usage of some of those tables, and what one might expect to see at various stages of a system run time.
sp400_components
The Master System Monitor will build its list of Monitored Components (processes) to start and monitor from this table. It will provide all the required information to start a component process. See database table sp400_components
for the full set of parameters, but the following are of note at this point.
Column Name | Comment |
---|---|
component_id | The Wide characters (2 or more bytes) must not be used |
parameters | See the API Agent documentation for details on how to set up the |
host_machine | Only applicable if the ServiceOptimizer instance is running in distributed mode. If you want this component to run on the same machine as the master System Monitor, then set this field to either:
|
max_restarts | The count of attempts is reset to zero after a clean start. |
trace_mask_no | If |
max_log_file_size | If |
sp401_component_hierarchy
The sp401_component_hierarchy
database table defines the hierarchy between Monitored Components (processes). There may be multiple entries for each component_no
, and a component_no
can appear multiple times in the is_client_of
column, but each row should have a unique pair.
Note that the hierarchy level number (sp405_hierarchy_level
) of each component_no
is one less than that of the paired is_client_of
. There should normally be one entry for each level 2 component (14.1 API Agent or 14.1 Gantt Router) and level 3 component (14.1 FRU Process) combination. See also 14.1 Multiple GanttRouters.
sp406_monitors
The sp406_monitors
database table contains the data associated with the system monitor processes. It includes both the master system monitor and (for a distributed ServiceOptimizer instance) slave system monitors. The table below shows what one would expect to see for a non-running system.
Column Name | Description | Master | Slave | Notes |
---|---|---|---|---|
| Component identifier for the System Monitor from | |||
| Port number on which the System Monitor will listen for heartbeats. | |||
| Host name/IP address on which the System Monitor will listen for heartbeats. | For valid address settings see | ||
| State of the System Monitor. | |||
| The process identifier of the System Monitor. |
| NULL initially, or if process exited normally. | |
| Port number of the port used for administration commands. | |||
| Hostname/IP address that hosts the port used for administration commands. |
sp409_component_ports
The sp409_component_ports
database table contains the port numbers and addresses for all ServiceOptimizer processes.
Potential networking issue!
WARNING: If a machine has multiple network interfaces and a port address has been specified as NULL
or as the host name, then ServiceOptimizer may choose any of the network interfaces. This can be problematic if one or more of those interfaces is not accessible from other machines in the ServiceOptimizer instance. In this case, you should specify the port address as the IP address of a valid network interface.
Potential Performance Issue!
WARNING: The value of database sp409_component_ports
column listener_count
is critical to the running of the system and incorrect settings can result in performance degradation, system instability or hitting operating system limits. ServicePower recommends obtaining advice from our consutancy team to ensure this is properly configured.
port_address
The address for the port. A number of different formats for the address are accepted in this field:
Format | Description |
---|---|
NULL | Allows the port to be used without specifying the address of the machine the server process is running on, or, in the case of a machine with multiple network interfaces, allows the server process to receive connections on any of the interfaces. This is the recommended setting for this version of ServiceOptimizer. |
Host Name | The host name for the machine on which the server process is to run according to DNS. |
IP Address | The IPv4 address of a network interface on the machine on which the server process is to run, e.g. "195.173.29.225". |
localhost or 127.0.0.1 | Also known as the loopback interface. Has the effect of only allowing the port to be visible to other processes on the same machine. Other machines on the network will not be able to connect to the port. |
Not all components will appear in this table - some components may have their ports allocated dynamically by the operating system. It is also possible for there to be more than one row per component as a component usually has more than one port (with the exception of the FRU).
port_address
/port_no
Each port address/number pair set must be unique.
port_no
All port numbers must be in the range 5000
to 49151
in order to generate valid port numbers which will not interfere with the set of ports allocated by the operating system (by default 1024
-4999
or 49152
-65535
).
Example Configuration: SOAP API over HTTP/HTTPS
ServiceOptimizer's 14.1 SOAP APIs are delivered via the 14.1 API Agent. It is possible to offer the SOAP APIs over HTTP, HTTPS, or both.
To configure the way the SOAP APIs are delivered:
Step 1: Enable the use of HTTPS, if required
If you want to run the SOAP API over HTTPS, before the SOAP API ports are configured, the use of an HTTPS SOAP port needs to be configured. See the section below on the sp411_component_port_types
database table for details.
Step 2: Configure the required port(s).
Update the sp409_component_ports
database table to ensure it contains an entry for each port that you want to run the SOAP API on. That is:
If you want to run the SOAP API over HTTP, on host IP address 195.173.29.225 and port 8080, ensure there is the following entry in the sp409_component_ports
database table:
component_no | port_type | port_no | port_address | listener_count |
---|---|---|---|---|
<api_agent_component_no> | 3 | 8080 | 195.173.29.225 | 1 |
If you want to run the SOAP API over HTTPS, on host IP address 195.173.29.225 and port 8443, ensure there is the following entry in the sp409_component_ports
database table:
component_no | port_type | port_no | port_address | listener_count |
---|---|---|---|---|
<api_agent_component_no> | 4 | 8443 | 195.173.29.225 | 1 |
If you want to run the SOAP API over both HTTP, on host IP address 195.173.29.225 and port 8080, and HTTPS, on host IP address 195.173.29.225 and port 8443, ensure there are both of the above entries in the sp409_component_ports
database table.
In both of the above examples, the value of <api_agent_component_no>
in the compnent_no
column needs to be the corresponding component_no
value of the entry in the sp400_components
table which corresponds via the component_type
field to the API Agent entry in the sp405_component_types
database table.
sp410_component_alerts
The sp410_component_alerts
database table contains the name and path for the command required to run the process used to alert the ServiceOptimizer administrator when System Monitor fails or is unable to restart one of the processes. This table may contain 0 or 1 entries only. Arguments to the process are defined in the sp413_alert_arguments
database table.
Example Configuration
Column | Value |
---|---|
| 1 |
| send_alert |
path | /home/sp-admin/bin |
The configuration above would use the /home/sp-admin/bin/send-alert
command to send alerts.
sp411_component_port_types
The sp411_component_port_types
database table contains the predetermined, non-configurable set of valid port types that may be configured in the sp409_component_ports
database table.
Preset Values
|
| Notes |
|
|
|
|
| Predefined client port is required when using Web Start Gantt. |
|
|
|
|
| API connection may be made onto this port. However, if SSL connections are required, the below type should be used instead. The system supports both simultaneously if that is required. |
|
| When using the HTTPS SOAP port, the following SSL certificate requirements will need to be met:
In addition, the following change will need to made before an HTTPS SOAP port can be used:
The instance will need to be restarted after putting an SSL certificate in place and updating |
sp413_alert_arguments
The sp413_alert_arguments
database table contains the list of arguments for an alert command. Each argument and switch should have a separate row. The sequence number is used to define the order in which they should be supplied.
Example Configuration
Column |
|
|
|
|
|
| 1 | 1 | 1 | 1 | 1 |
| 1 | 2 | 3 | 4 | 5 |
| -f | output-file-name | --component | %SPCOMPONENT% | "Instance name %INSTANCE% failed" |
Given the example configuration for database table sp410_component_alerts
above, with an alert executable: /home/sp-admin/bin/send-alert
, this configuration would give a command line:
/home/sp-admin/bin/send-alert -f output-file-name --component <component-id> "Instance name <instance> failed"
In the above, <component-id>
and <instance>
are substituted with the failed component id and sp instance names, respectively.