Service section
The Service section within the application profile defines a group of configuration settings for service attributes. Multiple service elements can be defined in this section with different configuration settings for each service. Defining multiple services allows you to use more than one service within a single application. You can add or update (or remove) a service to an existing application dynamically using the cluster management console.
Service
Description: Configures service attributes.- cleanupTimeout
- Maximum time, in seconds, to allow a service instance to cleanup if an application is disabled
or unregistered, or a middleware component becomes unavailable.
Cleanup allows the running service method to gracefully finish executing. If the service method and cleanup does not complete within the set time, then IBM® Spectrum Symphony will terminate the SIM.
Where use: Service
Required or optional: Optional
Valid values: 1 to 4294967295
Default: 60
- debugSetting
- Description: Helps you to use a debugger to step through the service code and find any errors in
the service logic or in the environment.
For a customized debugSetting, you can configure the specific events that you want IBM Spectrum Symphony to detect by specifying the customizedDebugAction for each of these events.
Where use: Service
Required or optional: Optional
Valid values: none, customized, or full:- none: never generates debug logs
- customized: generates debug logs upon detection of specific customizable events
- full: always generate debug logs
- default
- Description: Identifies a service as the default service, which means that the default service
is immediately started when the service instance manager starts.
Where use: Service
Required or optional: Optional when one service section is defined. Required when multiple service sections are defined.
Valid values: true or false
Default value: true if only one service is defined in the application profile. If only one service is defined, that service is identified as the default and is started when the service instance manager starts.
When multiple services are defined, at least one of the services default value should be set to true. Other services' default value is optional.
- delaySlotRelease
- Description: Specifies the amount of time that an unassigned service will remain idle with the
application before releasing its corresponding slot to EGO (and terminating the service). An
unassigned service is defined as a service not assigned to any session. If new workload arrives
before the configured time elapses, these unassigned services can be used to handle the new
workload. Once an unassigned service becomes assigned to a session again, its idle timer is
reset.
Note that delaySlotRelease is not supported for MapReduce workload.
Where use: Service
Required or optional: Optional
Valid values: 1 to 2147483647
Default: Unspecified (use application-level setting)
- deploymentRetryCount
- Description: Specifies the number of times the soamdeploy command retries to
connect to the repository server and download the service package from the repository server. After
the service experiences the specified number of retries, the service is aborted.
Where use: Service
Required or optional: Optional
Valid values: 0 to 2147483647
Default value: 3
- deploymentTimeout
- Description: Maximum time, in seconds, to wait before the soamdeploy command
checks the connection with the repository server.
Where use: Service
Required or optional: Optional
Valid values: 0 to 2147483647
Default value: 300
- description
- Description: String that describes the service.
Where use: Service
Required or optional: Optional
Valid values: 1 to 256 alphanumeric characters, including all printable characters
- dockerContainerDefinitionName
- Description: Associates a service with a ContainerDefinition by name. This
parameter only takes effect when enableDockerForServiceInstance is set to true.
The maximum length is 128 characters.
Where used: Service
Required or optional: Optional
Valid values: 0 to 9, A to Z, a to z, underscore (_), or hyphen (-)
- maxOtherInstances
- Description: Applies only when multiple services are used in a single application. Defines the
maximum number of other service instances that a single service instance manager can run
concurrently, in addition to the current service, on the same resource where the current service
running. This preserves the service instance process to remain alive on the resource, and saves the
service instance startup time the next time the resource is allocated to another workload and needs
this service instance to run tasks.
When this parameter is set to 0, no other service instances started by the service instance manager can run at the same time on the same resource allocated when this service instance manager starts this service.
When this parameter is set to a number larger than 0, the service instance manager can keep maxOtherInstances service instances running along with this service concurrently. Setting a value larger than 0 saves service instance loading time, because service instances are not shut down and restarted.
When a service instance manager needs to shut down a service to satisfy maxOtherInstances, it first tries to gracefully shut down the service instance. If the service instance does not exit when the DestroyService timeout ( duration attribute) expires, the process ends.Note: A service instance manager only manages multiple services that have the same serviceToSlotRatio. As soon as a service instance manager needs to manage a service with a different serviceToSlotRatio, it will terminate all of the service instances it is managing and start a new service instance with the new ratio. The other service instances will not be restarted with the new serviceToSlotRatio unless they are required to run workload.Where use: Service
Required or optional: Optional
Valid values: 0 to 2147483647
Default value: 0, indicating that only one service instance can run at a time
Related attributes:- standbyServiceScope (in Consumer section): Enables the global standby service feature, which allows one or more applications to keep service instances running in standby mode on released slots and to reattach to these service instances when required.
Example: If you have three services with different values for maxOtherInstances:Name maxOtherInstances Default S1 1 true S2 1 false S3 0 false When the service instance manager starts, it starts service S1 by default. The service instance manager has one child process (S1). When service S2 is started, the service instance manager has 2 child processes (S1 and S2). If service S3 is started, the service instance manager has only one child process, which is S3 (S1 and S2 are shut down by the service instance manager).
When service S1 is started again, the service instance manager has only one child process, which is S1 (S3 is shutdown by the service instance manager because its maxOtherInstances value is 0).
- name
- Description: Name of the service to run for this application. The service name must be unique
within the application.
A client application can use the appropriate API to override the service that is used to execute workload. Refer to the API Reference for more details. The service name that the client specifies must be configured in the application profile.
Where use: Service
Required or optional: Required
Valid values: 1 to 256 alphanumeric characters, including all printable characters. Ensure that angle brackets (< >), single quotation marks ('), double quotation marks ("), parentheses (( )), forward slashes (/), and backward slashes (\) are not used.
Related attributes:- ServiceName: Name of service that is used to execute the workload for the sessions in this session type.
- packageName
- Description: Name assigned to the service package during deployment. The value you specify here
must match the value specified during deployment.
Where use: Service
Required or optional: Required if you use the SOAM_DEPLOY_DIR variable in the Service section; optional if you do not use that variable in the Service section.
Valid values: 0 to 9, A to Z, a to z, underscore (_), hyphen (-) or period (.). The name cannot contain only periods.
Default value: None
- resourceUsageInStandbyMode
- Description: Defines how EGO behaves and how it releases operating system resources when it
terminates a standby service. The behavior is different for global (cluster scope) standby services
(as defined by standbyServiceScope set to Cluster) and for consumer scope standby
services (as defined by standbyServiceScope set to Consumer).
For global (cluster scope) standby services, EGO will terminate a standby service to release operating system resources, as necessary, according to the resourceUsageInStandbyMode defined. If resourceUsageInStandbyMode is not defined for global standby services, EGO will terminate a cluster scope standby service to release operating system resource according to the slot definition when services start.
If resourceUsageInStandbyMode is defined for consumer scope standby service, EGO will terminate a standby service to release operating system resources, as necessary, and will also carry out the behavior for cluster scope standby services. If resourceUsageInStandbyMode is not defined for standby services, EGO will not terminate any consumer scope standby services.
Where use: Service
Required or optional: Optional
Valid values: 0 to 256 alphanumeric characters, including all printable characters
Default value: "" (empty) to indicate no definition
- standbyServiceTag
- Description: When the global standby service feature is enabled, specifies a cluster-wide tag
that identifies the global standby service, allowing one or more applications to share this service.
The global service tag must be unique within the application and must be specified only once for
each Service section.
Assign the same tag to services that use the same binaries, start command, and startup environment variables for sharing between multiple applications. If standbyServiceTag is not set or is set as an empty string, a service is not placed in the global standby service mode even if standbyServiceScope in the Consumer section of the application profile is set to Cluster.
Note that standbyServiceTag is not supported for MapReduce workload because global standby services are not supported within MapReduce.
Where use: Service
Required or optional: Optional
Valid values: 1 to 30 alphanumeric characters, including all printable characters
Related attributes:- standbyServiceScope (in Consumer section): Enables the global standby service feature, which allows one or more applications to keep service instances running in standby mode on released slots and to reattach to these service instances when required.
- fileNamePattern
- Description: Used for log retrieval through the cluster management console. File naming convention for
service log files written to the logDirectory. Specify how your files are named. When retrieving
logs for a specific task, the system looks for log files that partially match the file name pattern.
If you are going to name files with variables such as the ID or tag for sessions or tasks, specify
the appropriate special variable; refer to the valid values for special variables in this
section.Configure logDirectory, fileNamePattern, and subDirectoryPattern for each operating system type defined in your service section.Note: Log retrieval is only available in IBM Spectrum Symphony on the grid. Log retrieval is not available in IBM Spectrum Symphony Developer Edition.
Where use:
Required or optional: Optional
Valid values:- Any alphanumeric string
- Any of these special variables: %taskId%, %sessionId%, %sessionTag%, or %taskTag%
Default value: "" (empty) to indicate that the system should retrieve all files under logDirectory/subDirectory
Example: If log files have, for example, the service name, then session ID, and task ID, and your log file name is sampleService_123_1.log, you can specify sampleService_%sessionId%_%taskId%.log. The system matches files containing the session ID and task ID.
Related attributes:- logDirectory: Path to the directory in which logs are written by services for this application.
- subDirectoryPattern: Convention for naming subdirectories in the logDirectory.
- logDirectory
- Description: Used for log retrieval through the cluster management console. Path to the directory in
which logs are written by services for this application. The path can be any desired path and must
be the same on all compute hosts. Configure logDirectory, fileNamePattern, and subDirectoryPattern for each operating system type defined in your service section.Note: Log retrieval is only available in IBM Spectrum Symphony on the grid. Log retrieval is not available in IBM Spectrum Symphony Developer Edition.
Where use:
Required or optional: Required
Default value:- Linux®:
- $SOAM_HOME/work (IBM Spectrum Symphony workload)
- $SOAM_HOME/mapreduce/logs/tasklogs (MapReduce workload)
- Windows: %SOAM_HOME%\work
Related attributes:- fileNamePattern: File naming convention for service log files written to the logDirectory.
- subDirectoryPattern: Convention for naming subdirectories in the logDirectory.
- Linux®:
- name
- Description: Operating system environment in which to run the service. IBM Spectrum Symphony uses this information to
determine where the executable for the service is located and set up the environment variables for
the service instance.Note: While specifying PATH, ensure that you use the proper path delimiter (colon or semicolon) according to the osType.
Where use:
Required or optional: Required
Valid values: all, LINUX86, NTX86, X86_64, NTX64, LINUXPPC64, or a user-defined operating-system type:- all: this configuration is applied if the osType for the allocated resource is not configured in the application profile.
- LINUX86: a 32-bit Linux-based environment, such as Red Hat Linux
- NTX86: a 32-bit Windows-based environment, such as Windows 2000, Windows NT, and Windows XP
- X86_64: a 64-bit Linux-based environment
- NTX64: a 64-bit Windows-based environment
- LINUXPPC64: a Linux x86-64 based environment, such as IBM POWER® systems
- User-defined operating-system types, defined in the ego.shared file
- preExecCmd
- Description: When using a deployment tool other than IBM Spectrum Symphony
soamdeploy, the command specified here will run on the compute host and can be
used to copy the service program to that host.
Multiple commands can be run by calling a script or batch file containing the commands. The path to this command must be defined by an environment variable.
preExecCmd is called only when packageName is not configured in the service section.
Where use:
Required or optional: Optional
Valid values: Any location accessible on your network or local disk.
Default value: "" (empty) to indicate that no pre-execution command will be executed
- startCmd
- Description: Path to the program executable for the service. If you deploy a service package
using IBM Spectrum Symphony deployment,
the directory where your service package is extracted can be referred to as
${SOAM_DEPLOY_DIR}. If you need to reference a file in your service package, use
the ${SOAM_DEPLOY_DIR} variable.For example:
- On Windows, if in your service package you have the directory structure \myservice\myservice.exe, indicate ${SOAM_DEPLOY_DIR}\myservice\myservice.exe in startCmd.
- On Linux, if in your service package you have the directory structure /myservice/myservice, indicate ${SOAM_DEPLOY_DIR}/myservice/myservice in startCmd.
- On Linux, if you are using the default MapReduce service, indicate ${PMR_HOME}/${PMR_VERSION}/${EGO_MACHINE_TYPE}/etc/RunMapReduceService.sh in startCmd.
Note: To run a Windows .bat script, specify a special syntax to run the batch file in command shell. For example:<osType name=NTX86" startCmd="cmd /c cmd /c install.bat"/>Where use:
Required or optional: Required
Valid values: Any location accessible on your network or local disk.
- subDirectoryPattern
- Description: Used for log retrieval through the cluster management console. Convention for naming
subdirectories in the logDirectory. If you want to name subdirectories according to variables such
as the ID or tag for sessions or tasks, specify the appropriate special variable; refer to the valid
values for special variables in this section. When retrieving logs, the system looks for log files
in subdirectories that partially match the subdirectory pattern.Configure logDirectory, fileNamePattern, and subDirectoryPattern for each operating system type defined in your service section.Note: Log retrieval is only available in IBM Spectrum Symphony on the grid. Log retrieval is not available in IBM Spectrum Symphony Developer Edition.
Where use:
Required or optional: Optional
Valid values:- Any alphanumeric string
- Any of these special variables: %applicationName%, %sessionId%, %taskId%, %sessionTag%, or %taskTag%
Default value: "" (empty) to indicate that no subdirectories exist
Example: If you want to name subdirectories according to session ID, specify, without any back slashes: specify %sessionId%. The system looks for logs in subdirectories named according to the session ID.
Related attributes:- logDirectory: Path to the directory in which logs are written by services for this application.
- fileNamePattern: File naming convention for service log files written to the logDirectory.
- workDir
- Description: Working directory of the service instance.
Where use:
Required or optional: Optional
Valid values: Any location accessible on your network or local disk.
Default value: The default working directory for the service is ${SOAM_HOME}/work. The default working directory for the MapReduce service is ${SOAM_HOME}/mapreduce/work/${SUB_WORK_DIR}.
Description: Configures environment variables for running service instances.
- name
- Description: Name of an environment variable to set in the run time environment of the service.
Provide a name in place of the
@ENVNAME@value in<env name"@ENVNAME@">. If you have multiple names, use one env statement is for each environment variable.You can define environment variables so that they are substituted in the startCmd, preExecCmd, and workDir attributes.
You can refer to defined environment variables in other environment variables. For example:<env name="ENVAR1">${SOAM_HOME}/work</env> <env name="ENVAR2">${ENVAR1}/${VERSION_NUM }</env>IBM Spectrum Symphony also substitutes the following environment variables with system values:- ${PATH}: specifies the path to the relevant executable. The specified path is appended in front of the system Path at runtime. For Windows, specifies the path to any dependent library, including the IBM Spectrum Symphony libraries.
- ${LD_LIBRARY_PATH}: Linux only. Specifies the path to the library where the GCC-specific IBM Spectrum Symphony files are located. The specified path is prepended in front of the system LD_LIBRARY_PATH at runtime
- ${SOAM_HOME}: directory where IBM Spectrum Symphony is installed. Replaced with the value of the operating system environment variable SOAM_HOME set on the host.
- ${PMR_HOME}: directory where the MapReduce framework is located within the IBM Spectrum Symphony installation. Replaced with the value of the operating system environment variable PMR_HOME set on the host.
- ${VERSION_NUM}: IBM Spectrum Symphony version on which the service is running.
- ${PMR_VERSION}: IBM Spectrum Symphony version on which the service is running.
- ${EGO_MACHINE_TYPE}: Specifies the host type installation. For example, win32-vc7 specifies a Windows machine. The variable is replaced with the value of the operating system environment variable EGO_MACHINE_TYPE set on the host.
- ${SOAM_DEPLOY_DIR}: internal system directory in which the service package is deployed.
- ${SOAM_SERVICE_EVENT_REPLAY_LOG}: service is driven by the events logged in the SERL file that
this variable references. If this environment variable is not defined, service is driven by the SIM
(as through IBM Spectrum Symphony).CAUTION:EGO_MACHINE_TYPE, SOAM_DEPLOY_DIR, and SOAM_SERVICE_EVENT_REPLAY_LOG environment variables are reserved by IBM Spectrum Symphony. Modifying these environment variables may result in undesirable behavior of your application.
You can also use the following environment variables for the<env name"@ENVNAME@">section:- PREALLOCATE_FIRST_SORT_MB: for MapReduce workload using dual memory buffers, this variable
specifies the buffer size (in MB) for the first map sort buffer which is to be pre-allocated and is
recommended when preStartApplication is enabled.
Dual buffers for map tasks are used to temporarily save intermediate data for map tasks. When you specify a value for PREALLOCATE_FIRST_SORT_MB, the memory buffer of the specified size is pre-allocated for the first map sort during SI startup. If you do not specify a value, the memory buffer is created only when the job is executed. Valid values for the buffer size are between 1 and 2047.
- SYMPHONY_R_LOG_LEVEL: applicable to the open source R-integration for IBM Spectrum Symphony. This environment variable
specifies the level of details for R log files. Valid values are
DIABLE,ERROR,WARN,INFO(default),DEBUG, orALL.
Where use:
Required or optional: Required
Valid values: 1 to 256 alphanumeric characters, including all printable characters
- taskLimit
- Description: Specifies the maximum number of service instance threads in a multiple task service
(MTS). If the taskLimit is specified as n, no more than
n tasks are submitted to the MTS. If more tasks are scheduled to the SIM, a new
MTS service instance is started for the tasks that exceed n. The default value is
0, which indicates that the service does not have a task limit.
Where use:
Required or optional: Optional
Valid values: 0 to 2147483647
Default value: 0 (which means no limit)
Related attributes:- physicalMemoryLimit: Specifies the physical memory limit, in MB, for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- virtualMemoryLimit: Specifies the virtual memory limit for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- physicalMemoryAutoScale: Enables or disables auto scaling of physical memory limits for a single- or multi-thread service instance (SI) group.
- virtualMemoryAutoScale: Enables or disables auto scaling of virtual memory limits for a single- or multi-thread service instance (SI) group.
- cpuLimit: Specifies the CPU usage limit for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- cpuAutoScale: Enables or disables auto scaling of CPU limits for a single- or multi-thread service (SI) group.
- physicalMemoryLimit
- Description: Specifies the physical memory limit, in MB, for a single- or multi-thread service
instance (SI) group, which is defined as a service instance plus all its descendent processes. The
physicalMemoryLimit parameter is configured in conjunction with
virtualMemoryLimit, and represents the maximum amount of memory usage (physical
memory and swap memory) allowed for the SI group. You can set the physicalMemoryLimit, virtualMemoryLimit, or both. However, note that on Linux, during run time, IBM Spectrum Symphony adjusts these memory limits as follows:
- If you set a physicalMemoryLimit value, but not a virtualMemoryLimit value, IBM Spectrum Symphony automatically sets the virtualMemoryLimit value to the maximum usage.
- If you set a virtualMemoryLimit value, but not a physicalMemoryLimit value, IBM Spectrum Symphony automatically sets the physicalMemoryLimit value to be the same as the virtualMemoryLimit value.
- If you set a physicalMemoryLimit value that is greater than the virtualMemoryLimit value, IBM Spectrum Symphony automatically sets the virtualMemoryLimit to be the same as the physicalMemoryLimit value.
Where use:
Required or optional: Optional
Valid values: 0 to 2147483647
Default value: 0
Related attributes:- physicalMemoryAutoScale: Enables or disables auto scaling of physical memory limits for a single- or multi-thread service instance (SI) group.
- virtualMemoryLimit: Specifies the virtual memory limit for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- virtualMemoryAutoScale: Enables or disables auto scaling of virtual memory limits for a single- or multi-thread service instance (SI) group.
- cpuLimit: Specifies the CPU usage limit for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- cpuAutoScale: Enables or disables auto scaling of CPU limits for a single- or multi-thread service (SI) group.
- virtualMemoryLimit
- Description: Specifies the virtual memory limit, in MB, for a single- or multi-thread service
instance (SI) group, which is defined as a service instance plus all its descendent processes. The
virtualMemoryLimit parameter is configured in conjunction with
physicalMemoryLimit, and represents the maximum amount of memory usage
(physical memory and swap memory) allowed for the SI group. You can set the physicalMemoryLimit, virtualMemoryLimit, or both. However, note that on Linux, during run time, IBM Spectrum Symphony adjusts these memory limits as follows:
- If you set a physicalMemoryLimit value, but not a virtualMemoryLimit value, IBM Spectrum Symphony automatically sets the virtualMemoryLimit value to the maximum usage.
- If you set a virtualMemoryLimit value, but not a physicalMemoryLimit value, IBM Spectrum Symphony automatically sets the physicalMemoryLimit value to be the same as the virtualMemoryLimit value.
- If you set a physicalMemoryLimit value that is greater than the virtualMemoryLimit value, IBM Spectrum Symphony automatically sets the virtualMemoryLimit to be the same as the physicalMemoryLimit value.
Where use:
Required or optional: Optional
Valid values: 0 to 2147483647
Default value: 0
Related attributes:- virtualMemoryAutoScale: Enables or disables auto scaling of virtual memory limits for a single- or multi-thread service instance (SI) group.
- physicalMemoryLimit: Specifies the physical memory limit, in MB, for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- physicalMemoryAutoScale: Enables or disables auto scaling of physical memory limits for a single- or multi-thread service instance (SI) group.
- cpuLimit: Specifies the CPU usage limit for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- cpuAutoScale: Enables or disables auto scaling of CPU limits for a single- or multi-thread service (SI) group.
- physicalMemoryAutoScale
- Description: Enables or disables automatic scaling of physical memory limits a single- or
multi-thread service instance (SI) group. When enabled, the physical memory limit is scaled in
proportion to the number of tasks running in the MTS. When disabled, the physical memory limit does
not change during the MTS' lifetime.
When auto scaling of the physical memory limit is enabled (default), ensure that the physicalMemoryLimit parameter is correctly configured to specify the maximum amount of memory usage (physical memory and swap memory) for an MTS.
Where use:
Required or optional: Optional
Valid values: true or false
Default value: true
Related attributes:- physicalMemoryLimit: Specifies the physical memory limit, in MB, for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- virtualMemoryLimit: Specifies the virtual memory limit for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- virtualMemoryAutoScale: Enables or disables auto scaling of virtual memory limits for a single- or multi-thread service instance (SI) group.
- cpuLimit: Specifies the CPU usage limit for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- cpuAutoScale: Enables or disables auto scaling of CPU limits for a single- or multi-thread service (SI) group.
- virtualMemoryAutoScale
- Description: Enables or disables auto scaling of virtual memory limits a single- or multi-thread
service instance (SI) group. When enabled, the virtual memory limit is scaled in proportion to the
number of tasks running in the MTS. When disabled, the virtual memory limit does not change during
the MTS' lifetime.
When auto scaling of the virtual memory limit is enabled (default), ensure that the virtualMemoryLimit parameter is correctly configured to specify the maximum amount of memory usage (physical memory and swap memory) for an MTS.
Where use:
Required or optional: Optional
Valid values: true or false
Default value: true
Related attributes:- virtualMemoryLimit: Specifies the virtual memory limit for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- physicalMemoryLimit: Specifies the physical memory limit, in MB, for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- physicalMemoryAutoScale: Enables or disables auto scaling of physical memory limits for a single- or multi-thread service instance (SI) group.
- cpuLimit: Specifies the CPU usage limit for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- cpuAutoScale: Enables or disables auto scaling of CPU limits for a single- or multi-thread service (SI) group.
- cpuLimit
- Description: Specifies the CPU usage limit for a single- or multi-thread service instance (SI)
group, which is defined as a service instance plus all its descendent processes. The
cpuLimit value indicates the number of cores on which an IBM Spectrum Symphony service is expected to run.
The default value is 0, to indicate no CPU limit for the service.
Where use:
Required or optional: Optional
Valid values: 0 to 262144
Default value: 0
Related attributes:- cpuAutoScale: Enables or disables auto scaling of CPU limits for a single- or multi-thread service (SI) group.
- physicalMemoryLimit: Specifies the physical memory limit, in MB, for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- physicalMemoryAutoScale: Enables or disables auto scaling of physical memory limits for a single- or multi-thread service instance (SI) group.
- virtualMemoryLimit: Specifies the virtual memory limit for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- virtualMemoryAutoScale: Enables or disables auto scaling of virtual memory limits for a single- or multi-thread service instance (SI) group.
- cpuAutoScale
- Description: Enables or disables auto scaling of CPU limits a single- or multi-thread service
instance (SI) group. When enabled, the CPU limit is scaled in proportion to the number of tasks
running in the MTS. When disabled, the CPU limit does not change during the MTS' lifetime.
When auto scaling of the CPU limit is enabled (default), ensure that the cpuLimit parameter is correctly configured to specify the CPU usage limit for an MTS.
Where use:
Required or optional: Optional
Valid values: true or false
Default value: true
Related attributes:- cpuLimit: Specifies the CPU usage limit for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- physicalMemoryLimit: Specifies the physical memory limit, in MB, for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- physicalMemoryAutoScale: Enables or disables auto scaling of physical memory limits for a single- or multi-thread service instance (SI) group.
- virtualMemoryLimit: Specifies the virtual memory limit for a single- or multi-thread service instance (SI) group, which is defined as a service instance plus all its descendent processes.
- virtualMemoryAutoScale: Enables or disables auto scaling of virtual memory limits for a single- or multi-thread service instance (SI) group.
- name
- Description: Service API method to which defined events apply.
Where use:
Required or optional: Required
Valid values:- Register
- Deployment
- Startup
- CreateService
- SessionEnter
- SessionUpdate
- Invoke
- SessionLeave
- DestroyService
Default value: No default
- retryInterval
- Description: Specifies the duration in seconds that the Deployment and Startup methods will
attempt to retry before a blockHost action is taken.
Where use:
Required or optional: Required for Deployment and Startup methods.
Valid values:Method Valid value Register No value possible Deployment 0 to 2147483647 Startup 0 to 2147483647 CreateService No value possible SessionEnter No value possible SessionUpdate No value possible Invoke No value possible SessionLeave No value possible DestroyService No value possible Default value:Method Valid value Register No value possible Deployment 0 Startup 0 CreateService No value possible SessionEnter No value possible SessionUpdate No value possible Invoke No value possible SessionLeave No value possible DestroyService No value possible - retryLimit
- Description: Specifies the number of times the Deployment and Startup methods will retry before
a blockHost action is taken.
Where use:
Required or optional: Required for Deployment and Startup methods.
Valid values:Method Valid value Register No value possible Deployment 0 to 10000 Startup 0 to 10000 CreateService No value possible SessionEnter No value possible SessionUpdate No value possible Invoke No value possible SessionLeave No value possible DestroyService No value possible Default value:Method Valid value Register No value possible Deployment 0 Startup 0 CreateService No value possible SessionEnter No value possible SessionUpdate No value possible Invoke No value possible SessionLeave No value possible DestroyService No value possible
Description: Defines how long to wait for the method specified in the
<Mthod name- ...> element to complete, and what action
to take on service instances, sessions, or tasks, upon timeout of the method.- actionOnSI
- Description: Action to take on the service instance when a timeout occurs.
Where use:
Required or optional: Required. Not allowed for the Startup method.
Valid values: blockHost or restartService:- blockHost: when a timeout is reached on the method, terminate the running service instance on this host and do not use this host to start any other service instance for the application. The host on which the service instance was running is added to the blocked host list for the application. This host is no longer selected to run work for the application until it is explicitly unblocked through the EGO command line or the cluster management console.
- restartService: when a timeout is reached on the method, terminate the service instance, start a new service instance on the same host, and recover state. There is no limit to the number of times that a service instance can be restarted.
Not all values are possible with all methods. The following table outlines possible values:Method Possible action Register - blockHost
- restartService
Deployment - blockHost
Startup No action possible CreateService - blockHost
- restartService
SessionEnter - blockHost
- restartService
SessionUpdate - blockHost
- restartService
Invoke - blockHost
- restartService
SessionLeave - blockHost
- restartService
DestroyService No action possible on the service instance Default value: Default values differ according to method. The following table outlines default values by method:Method Default action Register blockHost Deployment blockHost Startup No action possible CreateService blockHost SessionEnter blockHost SessionUpdate blockHost Invoke restartService SessionLeave restartService DestroyService No action possible - actionOnWorkload
- Description: Action to take on sessions and tasks when a timeout occurs.
Where use:
Required or optional: Required. Not allowed for the Startup method.
Valid values: retry or fail:- retry: when a timeout is reached on the method, retry the method up to the
number of times configured by the session and task retry limits in the application profile.For SessionEnter and SessionUpdate, the system attempts to bind the session to the service instance up to the sessionRetryLimit in the application profile before the session is aborted.Note: The retry count for both of these methods are considered together. For example, if SessionEnter fails once and SessionUpdate fails twice, then the session rerun count is equal to 3. Therefore the sessionRetryLimit should be set to a value that accounts for both SessionEnter and SessionUpdate failures.
For Invoke, the system attempts to run the task up to the taskRetryLimit defined in the application profile before the task is failed.
- fail: when a timeout is reached on the method, abort the session or fail the
task, and propagate errors to the client application.
For SessionEnter or SessionUpdate, immediately abort the session. Do not retry the method.
For Invoke, immediately fail the task. Do not retry the method.
Not all values are possible with all methods. The following table outlines possible actions for methods:Method Possible action Register No action possible Deployment No action possible Startup No action possible CreateService No action possible SessionEnter - retry
- fail
SessionUpdate - retry
- fail
Invoke - retry
- fail
SessionLeave No action possible DestroyService No action possible Default value: Default values differ according to method. The following table outlines default values by method for actions taken:Method Default action Register No action possible Deployment No action possible Startup No action possible CreateService No action possible SessionEnter retry SessionUpdate retry Invoke retry SessionLeave No action possible DestroyService No action possible - retry: when a timeout is reached on the method, retry the method up to the
number of times configured by the session and task retry limits in the application profile.
- customizedDebugAction
- Description: Action to take on sessions and tasks when a timeout occurs and service
debugsettion="customized".Where use:
Required or optional: Optional. Not allowed for the Startup method.
Valid values: writeServiceEventReplayFiles or none:- writeServiceEventReplayFiles: when IBM Spectrum Symphony detects that the specified method has timed out, it generates service event replay files to capture the relevant events that lead up to the timeout. This is the recommended setting if method timeout is an unexpected event for your service.
- none: when IBM Spectrum Symphony detects that the specified method has timed out, it does not generate service event replay files. This is the recommended setting if your service times out as a normal occurrence.
Default value: writeServiceEventReplayFiles
- duration
- Description: Number of seconds to wait for the method specified in
<Method name=...>to complete before a timeout is considered.Where use:
Required or optional: Required. Not allowed for the Startup method.
Valid values:Method Valid value Register 1 to 2147483647 Deployment 0 to 2147483647 Startup No value possible CreateService 0 to 2147483647 SessionEnter 0 to 2147483647 SessionUpdate 0 to 2147483647 Invoke 0 to 2147483647 SessionLeave 0 to 2147483647 DestroyService 0 to 2147483647 Note: The method never times out if you set the value to 0.Default value:Method Default value Register 60 seconds Deployment 0 seconds, never timeout Startup No value possible CreateService 0 seconds, never timeout SessionEnter 0 seconds, never timeout SessionUpdate 0 seconds, never timeout Invoke 0 seconds, never timeout SessionLeave 0 seconds, never timeout DestroyService 15 seconds - retryInterval
- Description: Specifies the duration in seconds that the Register method will attempt to retry
when a timeout occurs.
Where use:
Required or optional: Required for Register method. Not allowed for the Startup method.
Valid values:Method Valid value Register 0 to 2147483647 Deployment No value possible Startup No value possible CreateService No value possible SessionEnter No value possible SessionUpdate No value possible Invoke No value possible SessionLeave No value possible DestroyService No value possible Default value:Method Valid value Register 0 Deployment No value possible Startup No value possible CreateService No value possible SessionEnter No value possible SessionUpdate No value possible Invoke No value possible SessionLeave No value possible DestroyService No value possible - retryLimit
- Description: Specifies the number of times the Register method will retry when a timeout
occurs.
Where use:
Required or optional: Required for the Register method. Not allowed for the Startup method.
Valid values:Method Valid value Register 0 to 10000 Deployment No value possible Startup No value possible CreateService No value possible SessionEnter No value possible SessionUpdate No value possible Invoke No value possible SessionLeave No value possible DestroyService No value possible Default value:Method Valid value Register 0 Deployment No value possible Startup No value possible CreateService No value possible SessionEnter No value possible SessionUpdate No value possible Invoke No value possible SessionLeave No value possible DestroyService No value possible
Description: Defines what action to take on service instances, sessions, or tasks, when the method specified with the Method element exists.
- actionOnSI
- Description: Action to take on the service instance when the method exits.
Where use:
Required or optional: Required. Not allowed for the Startup method.
Valid values: blockHost or restartService:- blockHost: when the method exits, terminate the running service instance on this host and do not use this host to start any other service instance for the application. The host on which the service instance was running is added to the blocked host list for the application. This host is no longer selected to run work for the application until it is explicitly unblocked through the EGO command line or the cluster management console.
- restartService: when the method exits, terminate the service instance, start a new service instance on the same host, and recover state. There is no limit to the number of times that a service instance can be restarted.
Note: For Startup and DestroyService, no action is possible on the service instance.Default value: Default values differ according to method. The following table outlines default values by method for actions:Method Default action Register blockHost Deployment blockHost Startup No action possible CreateService blockHost SessionEnter blockHost SessionUpdate blockHost Invoke restartService SessionLeave restartService DestroyService No action possible - actionOnWorkload
- Description: Action to take on sessions and tasks when the method exits.
Where use:
Required or optional: Required. Not allowed for the Startup method.
Valid values: retry or fail:- retry: if the service exits during execution of the specified method, retry the
method up to the number of times configured by the session and task retry limits in the application
profile.For SessionEnter and SessionUpdate, the system attempts to bind the session to the service instance up to the sessionRetryLimit in the application profile before the session is aborted.Note: The retry count for both of these methods are considered together. For example, if SessionEnter fails once and SessionUpdate fails twice, then the session rerun count is equal to 3. Therefore the sessionRetryLimit should be set to a value that accounts for both SessionEnter and SessionUpdate failures.
For Invoke, the system attempts to run the task up to the taskRetryLimit defined in the application profile before the task is failed.
- fail: when the method exits, abort the session or fail the task, and propagate
errors to the client application.
For SessionEnter or SessionUpdate, immediately abort the session. Do not retry the method.
For Invoke, immediately fail the task. Do not retry the method.
Not all values are possible with all methods. The following table outlines possible actions for methods:Method Possible action Register No action possible Deployment No action possible Startup No action possible CreateService No action possible SessionEnter - retry
- fail
SessionUpdate - retry
- fail
Invoke - retry
- fail
SessionLeave No action possible DestroyService No action possible Default value: Default values differ according to method. The following table outlines default values by method for actions taken:Method Default action Register No action possible Deployment No action possible Startup No action possible CreateService No action possible SessionEnter retry SessionUpdate retry Invoke retry SessionLeave No action possible DestroyService No action possible - retry: if the service exits during execution of the specified method, retry the
method up to the number of times configured by the session and task retry limits in the application
profile.
- action
- Description: Action to take on sessions and tasks when the service process exits during the
execution of the specified method and service
debugSetting="customized".Where use:
Required or optional: Optional. Not allowed for the Startup method.
Valid values: writeServiceEventReplayFiles or none:- writeServiceEventReplayFiles: when IBM Spectrum Symphony detects that the service process has exited (or crashed) while executing the specified method, it generates service event replay files to capture the relevant events that lead up to the exit. This is the recommended setting if the service process exiting or crashing in the specified method is an unexpected event for your service.
- none: when IBM Spectrum Symphony detects that the service process has exited (or crashed) during execution of the specified method, it does not generate service event replay files. This is the recommended setting if your service exits as a normal occurrence.
Default value: writeServiceEventReplayFiles
- retryInterval
- Description: Specifies the duration in seconds that the Register method will attempt to retry on
exit.
Where use:
Required or optional: Required for Register method. Not allowed for the Startup method.
Valid values:Method Valid value Register 0 to 2147483647 Deployment No value possible Startup No value possible CreateService No value possible SessionEnter No value possible SessionUpdate No value possible Invoke No value possible SessionLeave No value possible DestroyService No value possible Default value:Method Valid value Register 0 Deployment No value possible Startup No value possible CreateService No value possible SessionEnter No value possible SessionUpdate No value possible Invoke No value possible SessionLeave No value possible DestroyService No value possible - retryLimit
- Description: Specifies the number of times the Register method will attempt to retry on
Exit.
Where use:
Required or optional: Required for Register method. Not allowed for the Startup method.
Valid values:Method Valid value Register 0 to 10000 Deployment No value possible Startup No value possible CreateService No value possible SessionEnter No value possible SessionUpdate No value possible Invoke No value possible SessionLeave No value possible DestroyService No value possible Default value:Method Valid value Register 0 Deployment No value possible Startup No value possible CreateService No value possible SessionEnter No value possible SessionUpdate No value possible Invoke No value possible SessionLeave No value possible DestroyService No value possible
Description: defines what action to take on service instances, sessions, or tasks, when the method specified in the
<Method name
...> element returns normally (that is, controlCode=0), or if a control
code is defined, defines what action to take when the method returns with the specified return code. - actionOnSI
- Description: Action to take on the service instance when the method returns normally or with the
specified control code.
Where use:
Required or optional: Required. Not allowed for the Startup method.
Valid values: blockHost, restartService, or keepAlive:Note: Actions on return cannot be configured for Register, Deployment, Startup, or DestroyService.- blockHost: when the method returns normally or with a specified control code,
terminate the running service instance on this host and do not use this host to start any other
service instance for the application.
The host on which the service instance was running is added to the blocked host list for the application. This host is no longer selected to run work for the application until it is explicitly unblocked through the EGO command line or the cluster management console.
- restartService: when the method returns normally or with a specified control code, terminate the service instance, start a new service instance on the same host, and recover state. There is no limit to the number of times that a service instance can be restarted.
- keepAlive: when the method returns normally or with a specified control code, take no action on the running service instance. Return an error only.
Default value:Method Default value Register No action possible Deployment No action possible Startup No action possible CreateService keepAlive SessionEnter keepAlive SessionUpdate keepAlive Invoke keepAlive SessionLeave keepAlive DestroyService No action possible - blockHost: when the method returns normally or with a specified control code,
terminate the running service instance on this host and do not use this host to start any other
service instance for the application.
- actionOnWorkload
- Description: Action to take on sessions and tasks when the method returns normally, or with a
specified control code.
Where use:
Required or optional: Required. Not allowed for the Startup method.
Valid values: retry, fail, or succeed:- retry: when the method returns normally or with the specified control code,
retry the method up to the number of times configured by the session and task retry limits in the
application profile.
For SessionEnter and SessionUpdate, the system attempts to bind the session to the service instance up to the sessionRetryLimit in the application profile before the session is aborted.
Note: The retry count for both of these methods are considered together. For example, if SessionEnter fails once and SessionUpdate fails twice, then the session rerun count is equal to 3. Therefore the sessionRetryLimit should be set to a value that accounts for both SessionEnter and SessionUpdate failures.For Invoke, the system attempts to run the task up to the taskRetryLimit defined in the application profile before the task is failed.
- fail: when the method returns normally or with the specified control code,
abort the session or fail the task, and propagate errors to the client application.
For SessionEnter or SessionUpdate, immediately abort the session. Do not retry the method.
For Invoke, immediately fail the task. Do not retry the method.
- succeed: this is a normal return. This is treated as a successful execution of
SessionEnter, SessionUpdate, or Invoke.
For Invoke, the task completes successfully (in the Done state).
Method Possible value Register No action possible Deployment No action possible Startup No action possible CreateService SessionEnter - retry
- fail
- succeed
SessionUpdate - retry
- fail
- succeed
Invoke - retry
- fail
- succeed
SessionLeave
No action possible DestroyService
No action possible Default value: Default values differ according to method:Method Default value Register No action possible Deployment No action possible Startup No action possible CreateService No action possible SessionEnter succeed SessionUpdate succeed Invoke succeed SessionLeave No action possible DestroyService No action possible - retry: when the method returns normally or with the specified control code,
retry the method up to the number of times configured by the session and task retry limits in the
application profile.
- controlCode
- Description: Numeric identifier that indicates to the system what action to take based on the
number that is returned by the method specified in the Method element. There
can be multiple control codes defined per method, and different actions to take based on control
code.
Where use:
Required or optional: Required. Not allowed for the Startup method.
Valid values: Any positive or negative integer
Default value: 0 to indicate the default action taken on workload and service instances, as specified by default actions on actionOnSI and actionOnWorkload.
- customizedDebugAction
- Description: Action to take on the service instance when the method returns normally or with the
specified control code when service
debugSetting="customized".Where use:
Required or optional: Optional. Not allowed for the Startup method.
Valid values: writeServiceEventReplayFiles or none:- writeServiceEventReplayFiles: when IBM Spectrum Symphony detects that the specified method has returned normally with or without a specific control code, it generates service event replay files.
- none: when IBM Spectrum Symphony detects that the specified method has returned normally with or without a specific control code, it does not generate service event replay files. This is the recommended setting, as this is typically a normal, successful event.
Default value: none
- actionOnSI
- Description: Action to take on the service instance when a failure or fatal exception
occurs.
Where use:
Required or optional: Required. Not allowed for the Startup method.
Valid values: blockHost, restartService, or keepAlive:- blockHost: when the specified exception occurs, terminate the running service
instance on this host and do not use this host to start any other service instance for the
application.
The host on which the service instance was running is added to the blocked host list for the application. This host is no longer selected to run work for the application until it is explicitly unblocked through the EGO command line or the cluster management console.
- restartService: when the specified exception occurs, terminate the service instance, start a new service instance on the same host, and recover state. There is no limit to the number of times that a service instance can be restarted.
- keepAlive: when the specified exception occurs, take no action on the running service instance.
Note: Actions cannot be configured for Register, Deployment, Startup, or DestroyServiceMethod Possible values
Fatal exception
Possible values
Failure exception
Register No action possible No action possible Deployment No action possible No action possible Startup No action possible No action possible CreateService - blockHost
- restartService
- blockHost
- restartService
SessionEnter - blockHost
- restartService
- keepAlive
- blockHost
- restartService
- keepAlive
SessionUpdate - blockHost
- restartService
- keepAlive
- blockHost
- restartService
- keepAlive
Invoke - blockHost
- restartService
- keepAlive
- blockHost
- restartService
- keepAlive
SessionLeave - blockHost
- restartService
- keepAlive
- blockHost
- restartService
- keepAlive
DestroyService No action possible No action possible Default value:Method Default values
Fatal exception
Default values
Failure exception
Register No action possible No action possible Deployment No action possible No action possible Startup No action possible No action possible CreateService blockHost blockHost SessionEnter keepAlive keepAlive SessionUpdate keepAlive keepAlive Invoke keepAlive keepAlive SessionLeave keepAlive keepAlive DestroyService No action possible No action possible - blockHost: when the specified exception occurs, terminate the running service
instance on this host and do not use this host to start any other service instance for the
application.
- actionOnWorkload
- Description: Action to take on sessions and tasks when a fatal or failure exception
occurs.
Where use:
Required or optional: Required. Not allowed for the Startup method.
Valid values:- retry: when the specified exception occurs, retry the method up to the number
of times configured by the session and task retry limits in the application profile.
For SessionEnter and SessionUpdate, the system attempts to bind the session to the service instance up to the sessionRetryLimit in the application profile before the session is aborted.
Note: The retry count for both of these methods are considered together. For example, if SessionEnter fails once and SessionUpdate fails twice, then the session rerun count is equal to 3. Therefore the sessionRetryLimit should be set to a value that accounts for both SessionEnter and SessionUpdate failures.For Invoke, the system attempts to run the task up to the taskRetryLimit defined in the application profile before the task is failed.
- fail: when the specified exception occurs, abort the session or fail the task,
and propagate errors to the client application.
For SessionEnter or SessionUpdate, immediately abort the session. Do not retry the method.
For Invoke, immediately fail the task. Do not retry the method.
Not all values are possible with all methods. The following table outlines possible actions for methods:Method Possible values
Fatal exception
Possible values
Failure exception
Register No action possible No action possible Deployment No action possible No action possible Startup No action possible No action possible CreateService No action possible No action possible SessionEnter - retry
- fail
- retry
- fail
SessionUpdate - retry
- fail
- retry
- fail
Invoke - retry
- fail
- retry
- fail
SessionLeave No action possible No action possible DestroyService No action possible No action possible Default value: Default values differ according to method:Method Default values
Fatal exception
Default values
Failure exception
Register No action possible No action possible Deployment No action possible No action possible Startup No action possible No action possible CreateService No action possible No action possible SessionEnter fail retry SessionUpdate fail retry Invoke fail retry SessionLeave No action possible No action possible DestroyService No action possible No action possible - retry: when the specified exception occurs, retry the method up to the number
of times configured by the session and task retry limits in the application profile.
- controlCode
- Description: Numeric identifier that indicates to the system what action to take based on the
number that is returned by the specified exception. There can be multiple control codes defined per
exception, and different actions to take based on control code.
Where use:
Required or optional: Required. Not allowed for the Startup method.
Valid values: Any positive or negative integer
Default value: 0 to indicate the default action taken on workload and service instances, as specified by default actions on actionOnSI and actionOnWorkload.
- customizedDebugAction
- Description: Action to take on sessions and tasks when a fatal or failure exception occurs in
the specified method and
debugSetting="customized".Where use:
Required or optional: Optional. Not allowed for the Startup method.
Valid values: writeServiceEventReplayFiles or none:- writeServiceEventReplayFiles: when IBM Spectrum Symphony detects that the specified method has thrown a particular exception (FatalException or FailureException), as specified, it generates service event replay files to capture the relevant events that lead up to the exception.
- none: when IBM Spectrum Symphony detects that the specified method has thrown a particular exception (FatalException or FailureException), as specified, it does not generate service event replay files.
Default value: writeServiceEventReplayFiles
- type
- Description: Exception type to which the configured action applies. Exception types cannot be
configured for Register, Deployment, Startup, or DestroyService.
Where use:
Required or optional: Required. Not allowed for the Startup method.
Valid values: failure or fatal:- failure: exception type is FailureException.
- fatal: exception type is FatalException.
Default value: No default