2.3.6 時刻または経過時間の指定とTP1/EEサービス定義との関係
タイマトランザクションの開始を時刻または経過時間で指定する場合のTP1/EEサービス定義との関係を説明します。
(1) タイマトランザクション起動時の誤差
時刻指定と経過時間指定のどちらの場合も,タイマトランザクションの起動時には,最大で次の合計値が誤差として発生するおそれがあります。
-
イベント監視インタバル間隔時間(モニタスレッドの監視間隔時間)
プロセス関連定義のclock_time_intervalオペランドで指定した間隔時間で,タイマトランザクションの起動時間を監視しています。このため,イベント監視を開始するモニタスレッドの起動タイミングによって,タイマトランザクションの起動タイミングに誤差(遅れ)が発生するおそれがあります。
また,CPU使用率の高騰によってモニタスレッドの監視間隔に間延びが生じるおそれがあります。
-
処理キュー滞留時間(処理キュー引き出し待ち時間)
タイマトランザクションが起動時間に達して,タイマトランザクション起動用の処理キューを登録するとき,処理スレッド空き待ちによる処理キュー滞留(処理キューの引き出し待ち)のため,タイマトランザクションの起動タイミングに誤差(遅れ)が発生するおそれがあります。
(2) 先行許容時間/後退許容時間と指定時刻の関係
時刻指定の場合,先行許容時間および後退許容時間の範囲内の時刻を指定します。先行許容時間および後退許容時間は,プロセス関連定義のexecap_permission_timeオペランドに指定します。
起動タイミングとして指定した時刻が,現在時刻以降の時刻の場合,先行許容時間の指定値に従って処理をします。起動タイミングとして指定した時刻が,先行許容時間内の時刻のときは,指定時刻にタイマトランザクションを起動します。起動タイミングとして指定した時刻が,先行許容時間外の時刻のときは,タイマトランザクションの起動要求はエラーリターンします。
起動タイミングとして指定した時刻が,現在時刻以前の時刻の場合,後退許容時間の値に従って処理をします。起動タイミングとして指定した時刻が,後退許容時間内の時刻のときは,タイマトランザクションを即時起動します。起動タイミングとして指定した時刻が,後退許容時間外の時刻のときは,タイマトランザクションの起動要求はエラーリターンします。
なお,トランザクション同期登録方式で登録要求した場合,ee_tim_execap関数の呼び出し時に先行許容時間および後退許容時間をチェックします。
現在時刻が12時00分00秒の場合の,先行許容時間,後退許容時間と,起動タイミングとして指定した時刻との関係を次の表および図に示します。
項番 |
execap_permission_time オペランドの指定値(単位:分) |
起動タイミングの指定時刻 |
起動要求の処理 |
|
---|---|---|---|---|
先行許容時間 |
後退許容時間 |
|||
1 |
180 |
180 |
9:00:00〜12:00:00 (32400〜43200) |
正常(即時起動) |
2 |
12:00:01〜15:00:00 (32401〜54000) |
正常(指定時刻で起動) |
||
3 |
上記以外 |
エラーリターン |
||
4 |
1 |
180 |
9:00:00〜12:00:00 (32400〜43200) |
正常(即時起動) |
5 |
12:00:01〜12:01:00 (43201〜43260) |
正常(指定時刻で起動) |
||
6 |
上記以外 |
エラーリターン |
||
7 |
180 |
1 |
11:59:00〜12:00:00 (43140〜43200) |
正常(即時起動) |
8 |
12:00:01〜15:00:00 (43201〜54000) |
正常(指定時刻で起動) |
||
9 |
上記以外 |
エラーリターン |
||
10 |
1 |
1 |
11:59:00〜12:00:00 (43140〜43200) |
正常(即時起動) |
11 |
12:00:01〜12:01:00 (43201〜43260) |
正常(指定時刻で起動) |
||
12 |
上記以外 |
エラーリターン |
先行許容時間と後退許容時間との合計が,1440(24時間)になる場合,両方の許容時間の範囲内になる時刻が存在します。この場合,後退許容時間内の時刻と判断します。例えば,現在時刻が12時00分00秒の場合に,先行許容時間に1260(21時間),後退許容時間に180(3時間)を指定すると,9時00分00秒が,両方の許容時間の範囲内になります。この状態で,タイマトランザクションを起動する時刻に32400(9時00分00秒)を指定すると,当日の9時00分00秒,または翌日の9時00分00秒が起動時刻になる可能性があります。この場合,後退許容時間内の時刻と判断して,当日の9時00分00秒を起動時刻とします。当日の9時00分00秒は過ぎているので,タイマトランザクションを即時起動します。
- 注※1
-
タイマトランザクションを即時起動する範囲です。
- 注※2
-
指定した時刻にタイマトランザクションを起動する範囲です。