CBLEETIM('EXECAP ')
- 〈このページの構成〉
形式
PROCEDURE DIVISIONの指定
CALL 'CBLEETIM' USING 一意名1 一意名2 一意名3
DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'EXECAP '. 02 データ名B PIC X(5). 02 FILLER PIC X(3). 02 データ名Z PIC S9(9) COMP VALUE ZERO. 01 一意名2. 02 データ名C PIC X(4). 02 データ名D PIC X(4). 02 データ名E PIC 9(9) COMP. 02 データ名F PIC 9(9) COMP-X. 02 データ名G PIC X(32). 02 データ名H PIC X(4). 01 一意名3. 02 データ名I PIC 9(9) COMP. 02 データ名J PIC X(n).
機能
UAPからトランザクション(タイマトランザクション)を起動します。すぐに起動することも,経過時間または時刻を指定して起動することもできます。
UAPで値を設定するデータ領域
●データ名A
タイマトランザクションの起動を示す要求コードを「VALUE 'EXECAP△△'」と設定します。
●データ名Z
オプションを数値で設定します。
- 0
-
タイマトランザクションを起動する場合に設定します。
- 1 【XTC限定】
-
タイマトランザクションを永続属性とする場合に設定します。データ名Cに'COMT'を設定した場合だけ有効です。
- 2 【XTC限定】
-
自トランザクションが終了するまで次のトランザクションのスケジュールを停止したい場合(UAPリターン後の次のトランザクションのスケジュールを停止したい場合)に設定します。このオプションを設定すると,待機系への転送処理終了後に,次のトランザクションのスケジュールが行われます。
データ名Cに'COMT'を設定した場合だけ有効です。
●データ名C
タイマトランザクションの起動方式を設定します。
- VALUE 'INST'
-
即時登録方式です。コミットとは無関係に,データ名Dに設定した起動タイミングに従ってタイマトランザクションを起動します。
- VALUE 'COMT'
-
トランザクション同期登録方式です。コミット後,データ名Dに設定した起動タイミングに従ってタイマトランザクションを起動します。コミット前には起動されません。
●データ名D
タイマトランザクションの起動タイミングを設定します。
- VALUE 'JUST'
-
タイマトランザクションを即時起動します。
- VALUE 'INTV'
-
経過時間を指定してタイマトランザクションを起動します。データ名Eに設定した時間が経過したあとに起動します。
- VALUE 'TIME'
-
時刻を指定してタイマトランザクションを起動します。データ名Eに設定した時刻に起動します。
●データ名E
データ名Dに設定した起動タイミングに応じて次のように設定します。
-
データ名Dに'JUST'を指定した場合(即時起動)
設定値は無視されます。
-
データ名Dに'INTV'を指定した場合(経過時間指定の起動)
タイマトランザクションを起動するまでの経過時間を設定します(単位:100ミリ秒)。1〜3600000(100ミリ秒から100時間)の範囲で指定してください。
データ名Cに'INST'(即時登録方式)を設定した場合は,CBLEETIM('EXECAP ')を呼び出してからの経過時間です。データ名Cに'COMT'(トランザクション同期登録方式)を設定した場合は,コミットからの経過時間です。
-
データ名Dに'TIME'を指定した場合(時刻指定の起動)
タイマトランザクションを起動する時刻を設定します。0時0分0秒を基準にして,起動時刻を秒数で算出します。0(0時0分0秒に開始)〜86399(23時59分59秒に開始)の範囲で指定してください。
- (例)
-
午後2時30分30秒に起動させる場合,次のように52230を設定します。
14 × 3600 + 30 × 60 + 30 = 52230
設定した時刻が現在の時刻より前またはあとだった場合,タイマトランザクションの起動処理は,プロセス関連定義のexecap_permission_timeオペランドで指定した先行許容時間または後退許容時間に従います。
また,経過時間指定か時刻指定かに関係なく,タイマ起動時に誤差(遅れ)が発生することがあります。
詳細は「2.3.3 時刻または経過時間の指定方法」および「2.3.6 時刻または経過時間の指定とTP1/EEサービス定義との関係」を参照してください。
●データ名F
CBLEETIM('CANCEL ')でタイマトランザクションを取り消す場合のキーとなるリクエスト識別子を設定します。
タイマトランザクションを取り消す必要がない場合は0を設定します。0を設定した場合でも,データ名Cに'COMT'(即時登録方式)を設定して登録したトランザクションは,コミット前であればCBLEETIM('CANCELAL')で取り消せます。
●データ名G
タイマトランザクションとして起動するトランザクションのサービス名を31バイト以内のアスキー文字列で設定します。文字列の末尾には空白を付けてください。この空白は文字列の長さに数えません。
●データ名H
タイマトランザクションが起動タイミングを迎えたとき,その時点で登録されている処理キューの中で優先的に起動するかどうかを設定します。
- VALUE 'HI△△'
-
優先的に起動します。
- VALUE 'LOW△'
-
優先的に起動しないで,登録した順序で起動します。
●データ名I
起動するトランザクションに渡すデータの長さを設定します(単位:バイト)。メモリ関連定義のtime_message_sizeオペランドで指定した値以下の値を指定してください。渡すデータがない場合は0を設定します。
●データ名J
起動するトランザクションに渡すデータを設定します。
TP1/EEから値が返されるデータ領域
●データ名B
ステータスコードが,5けたの数字で返されます。
ステータスコード
ステータスコード |
意味 |
---|---|
00000 |
正常に終了しました。 |
00001 |
TP1/EEの環境下にありません。 |
00004 |
UOCから発行しているため,この機能は使用できません。 |
00005 |
オフラインバッチプロセスから発行しているため,この機能は使用できません。 |
00501 |
データ名に設定した値が間違っています。要求コード(データ名A)が間違っている場合も含みます。 |
00502 |
データ名Gに設定したサービス名が間違っています。 |
00503 |
データ名Iに設定したデータ長が大き過ぎます。 |
00504 |
次に示す要因によって,資源不足で登録できません。
|
00506 |
TP1/EEシステムが終了処理中のため,登録できません。または,CLサーバでの待機系のため登録できません。 |
00507 |
指定したサービス名に対するエントリポイントがありません。 |
00508 |
指定した時刻が先行および後退許容時間範囲内にありません。 |
00509 |
関数の呼び出し条件が不正です。 |
00520 |
指定したサービスのキューが満杯のため登録できません。 |
注意事項
-
データ名Cに'COMT'を指定した場合,コミット前にトランザクションが異常終了したとき,またはロールバックしたときは,CBLEETIM('EXECAP ')の要求は無効になります。同一のトランザクション内でCBLEETRN('ROLLMARK')がすでに呼び出されている場合は,ステータスコード「00509」でエラーリターンします。
-
この関数は,トランザクションのコミット時に実行されます。データ名Cに'COMT'を指定した場合,トランザクションの同期点を取得する処理でエラーが起こったときは,この関数の処理は無効となります。
-
データ名Cに'COMT'を設定してCBLEETIM('EXECAP ')を呼び出たトランザクションでは,トランザクションは最適化されません。
-
データ名Cに'COMT',データ名Dに'TIME'を設定した場合,CBLEETIM('EXECAP ')呼び出し時に先行許容時間および後退許容時間がチェックされます。この時点で許容時間外の場合はエラーになり,コミット時には許容時間はチェックされません。
-
データ名Cに'COMT',データ名Dに'TIME'を設定した場合,コミット時に後退許容時間外となっていたときは,タイマトランザクションが即時に起動します。
-
データ名Cに'INST'を設定した場合,トランザクションが異常終了したとき,またはロールバックしたときも,CBLEETIM('EXECAP ')の要求は有効になります。
-
システム終了(正常終了,計画停止A)の場合,登録済みのタイマトランザクションがあるときは,タイマ破棄通知のエラートランザクション(ERRTRN4)が起動します。計画停止Bの場合は,登録済みのタイマトランザクションがあっても,ERRTRN4は起動しません。
-
【XTC限定】CLサーバがない場合,データ名Zに1を設定しても永続属性となりません。
-
【XTC限定】永続属性の場合,UDP用送信バッファ(UOBF)を使用します。
-
【XTC限定】CLサーバでの待機系ではこの関数は使用しないでください。