OpenTP1 Version 7 Operation

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

3.2.7 Schedule queue congestion monitoring

If the service requests from clients start to be delayed in the service processing stage, they may stay too long in the schedule queue because they cannot be fetched.

Therefore, OpenTP1 checks (monitors) the service requests remaining in the schedule queue at a specified interval for each user server. This function is called schedule queue congestion monitoring, and is available only for user servers (SPPs). The following figure shows an example of service requests remaining in the schedule queue.

Figure 3-3 Service requests remaining in the schedule queue

[Figure]

  1. The processing of service requests is delayed for some reason.
  2. Fetching of service requests from the schedule queue is delayed.
  3. Service requests accumulate in the schedule queue.

If the number of service requests remaining in the schedule queue exceeds the value specified for the applicable operand in the system definition during schedule queue congestion monitoring, OpenTP1 outputs message KFCA00833-W. Depending on the specification of the operand, OpenTP1 system also outputs message KFCA00834-E and goes down (forced termination).

Organization of this subsection
(1) Operands to be specified
(2) Processing sequence
(3) Example of the processing sequence

(1) Operands to be specified

To use schedule queue congestion monitoring, specify the following operands in the user service definition or the user service default definition. For details about each operand, see the manual OpenTP1 System Definition.

  1. stay_watch_queue_count
    Use this operand to specify the number of service requests in the schedule queue that triggers judgment of whether the schedule queue is congested.
  2. stay_watch_check_rate
    Use this operand to specify the processing rate at which service requests can be processed by the server. The processing rate is used in the judgment of whether the schedule queue is congested.
  3. stay_watch_abort
    Use this operand to specify whether to allow shutdown of OpenTP1 when the expression for judging congestion of the schedule queue evaluates to true.
  4. stay_watch_start_interval
    Use this operand to specify the interval for monitoring the number of service requests remaining in the schedule queue.
  5. stay_watch_check_interval
    Use this operand to specify the interval for judging whether the schedule queue is congested based on the expression for judging congestion of the schedule queue.

You can specify the above operands only on SPP user servers. If you specify these operands on a RAP-processing server or an MHP server, schedule queue congestion monitoring will not be enabled. If you omit the stay_watch_queue_count operand or specify 0 for it, the values specified for operands 2 to 5 have no effect.

(2) Processing sequence

This subsection describes the processing sequence of schedule queue congestion monitoring. Note that the user server (SPP) has already been started.

  1. Start the monitoring of the schedule queue at the interval specified in the stay_watch_start_interval operand.
  2. When the number of service requests remaining in the schedule queue exceeds the value specified in the stay_watch_queue_count operand, OpenTP1 enters a period in which it judges whether the schedule queue is congested and starts the judgment process.
    When judgment of congestion starts, the judgment of whether the schedule queue is congested is based on the expression for judging congestion of the schedule queue.
    Expression for judging congestion of the schedule queue:

    [Figure]

    After OpenTP1 makes its judgment, operation is as follows:
    • If the expression for judging congestion does not evaluate to true:
      The scheduler continues processing.
    • If the expression for judging congestion evaluates to true and N is specified in the stay_watch_abort operand:
      OpenTP1 outputs message KFCA00833-W, and the scheduler continues processing.
    • If the expression for judging congestion evaluates to true and Y is specified in the stay_watch_abort operand:
      OpenTP1 system outputs message KFCA00833-W and message KFCA00834-E, and goes down.
  3. Judgment of whether the schedule queue is congested is performed at the interval specified in the stay_watch_check_interval operand for each user server.
    If the number of service requests remaining in the schedule queue falls below the value specified for the stay_watch_queue_count operand, OpenTP1 returns to step 1.

(3) Example of the processing sequence

This subsection describes an example of schedule queue congestion monitoring when the following values are specified for the operands in the user service definition:

User service definition
set stay_watch_queue_count=30 (number of service requests)
set stay_watch_check_rate=70 (%)
set stay_watch_abort=Y
set stay_watch_start_interval=5 (seconds)
set stay_watch_check_interval=10 (seconds)

Figure 3-4 Example of schedule queue congestion monitoring

[Figure]

In Figure 3-4, judgment of whether the schedule queue is congested occurs in the period from C2 to C5 and in the period starting at C8. Judgment starts because of the specification stay watch_queue_count=30. During each period, judgment of queue congestion is performed at the interval specified in the stay watch_check_interval operand. At this interval, OpenTP1 judges whether the schedule queue is congested according to the expression for judging congestion, which is based on the number of service requests that are processed and the processing rate of service requests.

Expression for judging congestion of the schedule queue:

[Figure]

The expression for the example in Figure 3-4 is as follows:

Pn-1 - Bn < m1 x Pn-1
n: 0 or a positive integer
Pn-1 - Bn: Number of service requests that are processed during the applicable period
m1: Processing rate of service requests (value specified in the set stay_watch_check_rate operand)
Pn-1: Number of service requests remaining in the schedule queue during the applicable period

The following table shows the number of service requests that are processed in Figure 3-4, and the results of evaluating the expression for judging congestion of the schedule queue.

n Number of processed service requests
(Pn-1 - Bn)
Number of service requests expected to be processed
(m1 x Pn-1)
Result of evaluating the expression for judging congestion of the schedule queue
(Pn-1-Bn < m1 x Pn-1)
0 -- -- Not applicable.
1 18-9=9 0.7 x 18=12.6 Not applicable.
2 28-25=3 0.7 x 28=19.2 Judgment of whether the schedule queue is congested starts.
3 32-8=24 0.7 x 32=22.4 OpenTP1 continues online operation.
4 45-13=32 0.7 x 45=31.5 OpenTP1 continues online operation.
5 35-0=35 0.7 x 35=24.5 OpenTP1 continues online operation.
6 30-3=27 0.7 x 30=21 Not applicable.
7 11-5=6 0.7 x 11=7.7 Not applicable.
8 17-15=2 0.7 x 17=11.9 Judgment of whether the schedule queue is congested starts.
9 32-29=3 0.7 x 32=22.4 The OpenTP1 system goes down.

Legend:
n: 0 or a positive integer
--: Not applicable.

When n equals 1 or 7 in the above table, the expression for judging congestion of the schedule queue evaluates to true. However, the OpenTP1 system does not go down because judgment of whether the schedule queue is congested is not being performed. When n equals 2 or 8, the OpenTP1 system does not go down because the judgment process is only beginning.

When n equals 9, the OpenTP1 system goes down because judgment of whether the schedule queue is congested is being performed, the expression for judging congestion of the schedule queue evaluates to true, and stay_watch_abort=Y is specified.