OpenTP1 Version 7 System Definition

[Contents][Index][Back][Next]

Schedule service definition

Format

set format

[set scd_server_count=maximum-user-server-count]
[set scd_hold_recovery=Y|F]
[set scd_hold_recovery_count=total-number-of-servers-and-services-
                             required-to-inherit-shutdown-status]
[set scd_port=schedule-service-port-number]
[set scd_this_node_first=Y|N]
[set scd_announce_server_status=Y|N]
[set max_socket_descriptors=maximum-number-of-file-descriptors-for-
                            sockets]
[set schedule_rate=schedule-rate]
[set scd_retry_of_comm_error=number-of-retries]
[set scd_advertise_control=BEFORE|AFTER]
[set scd_message_level=1|2]
[set ipc_tcpnodelay=Y|N]
[set watch_time=maximum-response-waiting-time]

command format

{{scdbufgrp -g schedule-buffer-group-name
               [-n number-of-message-storing-buffer-cells]
               [-l length-of-a-message-storing-buffer-cell]}}
{{scdmulti[-m number-of-multi-scheduler-daemons]
               [-p port-number]
               [-g multi-scheduler-group-name]
               [-t]}}

Function

The schedule service definition defines the execution environment to schedule service requests to the servers operated under an OpenTP1 system environment. This schedule service uses the message function of the operating system, and creates a schedule queue in units of service groups.

Explanation

set format

scd_server_count=maximum-user-server-count~<unsigned integer> ((0-4096)) <<32>>

Specify the maximum number of user servers to be operated using the schedule service. Include the number of user servers which will be started online with dcsvstart command, the server startup command.

scd_hold_recovery=Y|F~<<Y>>

Specify whether to take over the shutdown status of user servers during a complete recovery of the system.

Y
Takes over the shutdown status of servers or services according to the specification of the hold_recovery operand in the user service definition or user service default definition. If BEFORE is specified in the start_scheduling_timing operand of the system environment definition, the shutdown status is not taken over, regardless of the specification of the hold_recovery operand in the user service definition.

F
Takes over the shutdown status of servers or services according to the specification of the hold_recovery operand in the user service definition or user service default definition.

If the number of shut-down servers or services exceeds the value of the scd_hold_recovery_count operand in the schedule service definition, the shutdown status of the excess servers or services is not taken over. If 0 is specified in the scd_hold_recovery_count operand, the shutdown status of no servers or services is taken over.

For SUPs, MHPs, and the servers that receive requests from sockets for SPPs, you do not need to specify the scd_hold_recovery operand. The following table describes the relationships among the scd_hold_recovery operand, the hold_recovery operands in the user service definition and user service default definition, the start_scheduling_timing operand in the system environment definition, and the scd_hold_recovery_count operand in the schedule service definition.

Operand value Whether OpenTP1 takes over the shutdown status
start_scheduling_timing hold_recovery scd_hold_recovery _count scd_hold_recovery
AFTER Y 0 -- N
Values other than 0 -- Y
N 0 -- N
Values other than 0 -- N
BEFORE Y 0 -- N
Values other than 0 Y N
F Y
N 0 -- N
Values other than 0 -- N

Legend:
Y:OpenTP1 takes over the shutdown status.
N:OpenTP1 does not take over the shutdown status.
--:Not applicable. Any specification is ignored.

scd_hold_recovery_count=total-number-of-servers-and-services-required-to-inherit-shutdown-status~<unsigned integer> ((0-58240)) <<64>>

Specify the total number of servers and services that are required to inherit shutdown status when fully recovering the system. (The specified value is rounded up to an even number.)

For a server for which service_hold=N is specified in the user service definition, the number that is included in the total number is one. For a server for which service_hold=Y is specified, the number that is included in the total number is the number of services that the server has. However, for a server for which service_hold=Y is specified, if hold=N and service_term_watch_time=0 are specified in the user service definition, the number that is included in the total number is one.

If the number of shutdown servers or services exceeds this setting, the shutdown status of the excess is not inherited. If 0 is specified, the shutdown status is not inherited, either.

When the system is fully recovered, the value specified in the previous online processing is inherited. If the previous or current setting is 0, the setting is not inherited.

If any value other than 0 is specified, the shutdown information is stored in the status file. It is necessary to estimate the size of the status file depending on the setting. If the setting is too small, overwriting of the shutdown information occurs many times in the status file.

Depending on the value specified in this operand, you might need to change the value of the rpc_max_message_size operand in the system common definition. If the following expression results in a value larger than 1 (2 to 8), specify a value larger than the resulting value in the rpc_max_message_size operand.

[Figure] (Value of the scd_hold_recovery_count operand / 7280) [Figure]

[Figure] [Figure]: Rounded up to the nearest whole integer.

Before changing the value of the rpc_max_message_size operand, read the description of the operand.

scd_port=schedule-service-port-number~<unsigned integer> ((5001-65535))

Specify the port number of the schedule service.

If this operand is omitted, a system-allocated port number is used.

The port number specified using this operand must not be used by other programs.

Note that the operating system assigns certain numbers automatically. You should not use such a number for the port number. The numbers assigned by the operating system differ depending on the type and version of the operating system. For details, see the documentation for your operating system.

scd_this_node_first=Y|N~<<N>>

Specify whether the server on the local node is scheduled first when the requested server is on the local node.

Y
The server on the local node is scheduled first when the requested server is on the local node.
When no server is on the local node or when the server on the local node cannot be scheduled (due to overload or shutdown), another node is scheduled.

N
A node is randomly selected and scheduled even when the requested server is on the local node.

If this operand specifies Y and the scd_announce_server_status operand specifies N, the server on the local node is always scheduled regardless of the load status as long as it can be scheduled.

scd_announce_server_status=Y|N~<<Y>>

Specify whether to report the status of the server on the local node to all the other nodes not periodically. This operand is specified when inter-node load-balancing is performed.

Y
The load status of the server on the local node is reported to all the other nodes not periodically (at intervals of at least 30 seconds).

N
The load status of the server on the local node is not reported to the other nodes.

When the same service group is divided among multiple nodes and Y is specified by this operand, the server status is mutually reported between the nodes and the load between the nodes can be balanced. Note that N must be specified in the following cases:

All the distributed nodes must be the same in the specification of this operand. If there is a node with a different specification, the load may be concentrated on it.

max_socket_descriptors=maximum-number-of-file-descriptors-for-sockets~<unsigned integer> ((32-2032))

Specify the maximum number of file descriptors to be used for sockets by the processes under control of OpenTP1#1.

The processes under control of OpenTP1#1 exchange the process information with the system servers or user servers through the TCP/IP communication using sockets. Therefore, you must change the maximum number of file descriptors for sockets depending on the number of UAP processes that run concurrently and the number of other nodes to communicate with.

#1: OpenTP1 processes other than the MCF services (MCF manager service, MCF communication service, and application startup service). For the MCF services, see the sections on the system service information definition and the system service common information definition.

Use the following formula for calculating the maximum number of file descriptors for sockets:

[Figure] (Total number of UAP processes#1 + number of nodes that request the scheduling service#2 + number of system service processes#3)/0.8 [Figure]

[Figure] [Figure]: Rounded up to the nearest whole integer.

#1: The total number of UAP processes is the sum of the following values:
  • Number of UAP processes in the local OpenTP1
  • Number of UAP processes in other nodes that use a service in the local OpenTP1
  • Number of transactions to be started concurrently by the CUP (value of the parallel_count operand specified in the client service definition)

#2: The number of nodes that request the scheduling service is the sum of the following values. Count any duplicate nodes as one.
  • Number of node names specified in the all_node operand for the local OpenTP1
  • Number of other nodes that specify the local node name in the all_node operand for OpenTP1

#3: The number of system service processes in the local OpenTP1.

If the value specified for this operand is too small, the connection cannot be set with other processes under control of OpenTP1. The process terminates abnormally after outputting the KFCA00307-E error message.

The order of priority of the specified values is 1 > 2.

  1. Schedule service definition
  2. System common definition

If this operand is omitted, the system assumes the value in the system common definition.

schedule_rate=schedule-rate~<unsigned integer>((50-100)) (unit: %)

When you specify Y in the DCSCDDIRECT operand in the client environment definition of TP1/Client/W or TP1/Client/P to schedule RPCs, specify the percentage of schedules made to the LEVEL0 nodes (there are nodes with server load levels LEVEL0 and LEVEL1).

You can use this definition command when TP1/Extension 1 is already installed. If TP1/Extension 1 is not installed, the operation of this definition command cannot be assured.

scd_retry_of_comm_error=number-of-retries~<unsigned integer>((0-128))<<0>>

Specify the number of times to retry scheduling to nodes other than the failed node if a communication error occurs while service requests are scheduled. However, if the value specified in this operand exceeds the number of nodes started by the service group which is the target of the service request, the number of nodes started by the target service group is used as the upper limit of retries.

If you specify 0, no retry is performed.

You can use this definition command when TP1/Extension 1 is already installed. If TP1/Extension 1 is not installed, the operation of this definition command cannot be assured.

scd_advertise_control=BEFORE|AFTER~<<BEFORE>>

Change the time to report name information to the nodes specified in the all_node operand in the system common definition when the user server starts up.

BEFORE
Reports name information to the OpenTP1 nodes specified in the all_node operand in the system common definition during the startup processing of the user server (before OpenTP1 goes online).

AFTER
Reports name information to the OpenTP1 nodes specified in the all_node operand in the system common definition immediately after the user server is started up.
Regarding the user servers that are started during the OpenTP1 startup processing or restart processing, the name information is reported about all the user servers that are active when the schedule service is started. However, if BEFORE is specified for the start_scheduling_timing operand in the system environment definition, the schedule service is started during the OpenTP1 startup processing or restart processing before the user servers are started and no name information is reported.

Note:
With AFTER specified for this operand, if too many user servers are started during the startup or restart of an OpenTP1, the amount of name information to be reported in a batch to the OpenTP1 nodes specified in the all_node operand in the system common definition increases. This increase temporarily results in increasing the load on the machine or network.

scd_message_level=1|2~<<2>>

Specify whether to suppress output of message KFCA00854-E, which is output if the memory for the message storage buffer pool becomes insufficient. To suppress output of the message, specify 1.

ipc_tcpnodelay=Y|N~<<N>>

Specify whether to use the TCP_NODELAY option for the socket that OpenTP1 uses for inter-node communication (INET domain).

When the TCP_NODELAY option is used (that is, when Y is specified in this operand), the Nagle algorithm is disabled. When the algorithm is disabled, you can send data without delay even during a wait for a response to the data sent. Note that if this option is used, the efficiency of sending data in INET domain communication may be degraded and the network load may increase. Before using the option, carefully consider whether the option is necessary by taking into account the ipc_sendbuf_size operand, the ipc_recvbuf_size operand, the network bandwidth, and other factors.

watch_time=maximum-response-waiting-time~<unsigned integer> ((0-65535)) (Unit: seconds)

Specify the maximum waiting time between sending a service request and receipt of a response when communicating between processes by RPC.

OpenTP1 may suspend termination processing for the length of time specified in this operand. Therefore, if you specify a large value, the termination processing of OpenTP1 may take some time.

If no response is received within the specified time, RPC returns a transmission timeout error.

Specify 0 if the system is to wait for a response. When you specify 0, OpenTP1 may not terminate.

If this operand is omitted, the value specified with the watch_time operand of the system common definition is assumed.

Use the default of the watch_time operand of the system common definition for this operand.

We recommend that you do not change the operand unless special tuning is necessary.

If a value that is much greater or smaller than the default of the watch_time operand of the system common definition is specified, a failure may occur causing OpenTP1 to go down.

command format

See the following page.