Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option プログラム作成の手引


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

次に示す要因によって,資源不足で登録できません。

  • メモリ関連定義のicb_noの指定値を超えています。

  • メモリ関連定義のtime_message_noの指定値を超えています。

  • メモリ関連定義のpce_noの指定値を超えています。

  • UDP用送信バッファ(UOBF)面数が不足しています。

00506

TP1/EEシステムが終了処理中のため,登録できません。または,CLサーバでの待機系のため登録できません。

00507

指定したサービス名に対するエントリポイントがありません。

00508

指定した時刻が先行および後退許容時間範囲内にありません。

00509

関数の呼び出し条件が不正です。

00520

指定したサービスのキューが満杯のため登録できません。

注意事項

  1. データ名Cに'COMT'を指定した場合,コミット前にトランザクションが異常終了したとき,またはロールバックしたときは,CBLEETIM('EXECAP ')の要求は無効になります。同一のトランザクション内でCBLEETRN('ROLLMARK')がすでに呼び出されている場合は,ステータスコード「00509」でエラーリターンします。

  2. この関数は,トランザクションのコミット時に実行されます。データ名Cに'COMT'を指定した場合,トランザクションの同期点を取得する処理でエラーが起こったときは,この関数の処理は無効となります。

  3. データ名Cに'COMT'を設定してCBLEETIM('EXECAP ')を呼び出たトランザクションでは,トランザクションは最適化されません。

  4. データ名Cに'COMT',データ名Dに'TIME'を設定した場合,CBLEETIM('EXECAP ')呼び出し時に先行許容時間および後退許容時間がチェックされます。この時点で許容時間外の場合はエラーになり,コミット時には許容時間はチェックされません。

  5. データ名Cに'COMT',データ名Dに'TIME'を設定した場合,コミット時に後退許容時間外となっていたときは,タイマトランザクションが即時に起動します。

  6. データ名Cに'INST'を設定した場合,トランザクションが異常終了したとき,またはロールバックしたときも,CBLEETIM('EXECAP ')の要求は有効になります。

  7. システム終了(正常終了,計画停止A)の場合,登録済みのタイマトランザクションがあるときは,タイマ破棄通知のエラートランザクション(ERRTRN4)が起動します。計画停止Bの場合は,登録済みのタイマトランザクションがあっても,ERRTRN4は起動しません。

  8. 【XTC限定】CLサーバがない場合,データ名Zに1を設定しても永続属性となりません。

  9. 【XTC限定】永続属性の場合,UDP用送信バッファ(UOBF)を使用します。

  10. 【XTC限定】CLサーバでの待機系ではこの関数は使用しないでください。