ttAgingScheduleNow

ttAgingScheduleNowプロシージャは、エージング・サイクルの値にかかわらず、エージング・プロセスを開始します。進行中のエージング・プロセスが存在しないかぎり、プロシージャがコールされた直後にエージング・プロセスが開始されます。その場合、組込みプロシージャをコールしたときに進行中だったエージング・プロセスが完了すると、新しいエージング・プロセスが開始されます。

このプロシージャをコールすると、エージングは1回だけ行われます。このプロシージャではエージング属性は変更されません。以前のエージングの状態はそのままです。たとえば、ttAgingScheduleNowをコールしたときにエージングの状態がOFFの場合、エージング・プロセスが開始されます。エージングが完了したときに、エージングの状態がOFFの場合、エージングは続行されません。エージングを続行するには、エージング・サイクルの値に基づいて次にエージングが行われるように、ttAgingScheduleNowを再度コールするか、エージングの状態をONに変更する必要があります。

エージングがONになっている表の場合は、ttAgingScheduleNowがコールされた時点にエージング・サイクルがリセットされます。たとえば、午後12時にこのプロシージャをコールし、15分のエージング・サイクルを指定すると、エージングは、すぐに実行された後、12時15分、12時30分、12時45分というように再度実行されます。

このプロシージャを手動または外部スケジューラ(cronジョブなど)で実行する場合、このプロシージャは、プロシージャの実行時(進行中のエージング・プロセスがない場合)または現在のエージング・プロセスが完了すると、すぐにエージング・プロセスを開始します。外部スケジューラがttAgingScheduleNowプロシージャを実行するか、または手動でコールしたときにのみエージングを行う場合は、エージングの状態をOFFに設定します。

エージングは、1秒ごとに起動して処理が必要かどうかをチェックするバックグラウンド・スレッドによって実行されます。ttAgingScheduleNowをコールしても、指定された表がエージング・スレッドによって処理されるのは次の1秒間になります。組込みプロシージャがコールされたときにエージング・スレッドが別の表を処理していた場合は、指定された表の処理が開始されるまでに多少時間がかかる可能性があります。エージング・スレッドによって削除がコミットされるまで、行は表示されています。

必要な権限

このプロシージャでは、エージングを実行する表に対するDELETE権限、または表を指定しない場合はDELETE ANY TABLE権限が必要です。

TimesTen ScaleoutおよびTimesTen Classicでの使用

このプロシージャは、TimesTen Classicでサポートされています。

TimesTen Scaleoutアプリケーションでこの組込みプロシージャをコールできます。

TimesTen Scaleoutの場合、このプロシージャは、コール元の要素に対してローカルに実行されます。

関連ビュー

このプロシージャには関連ビューはありません。

構文

ttAgingScheduleNow ('tblname')

パラメータ

ttAgingScheduleNowには、次のパラメータがあります。

パラメータ 説明

tblname

TT_CHAR (61)

エージング・プロセスを開始する表の名前です。

tblNameを省略すると、エージング・プロセスがエージング・ポリシーで定義されたすべての表で開始されます。

表名の指定にシノニムは使用できません。

結果セット

ttAgingScheduleNowは結果を返しません。

LRUエージングおよび時間ベース・エージングの両方が定義された表を含む、すべての表でエージングをスケジュールするには、パラメータ値を指定せずにttAgingScheduleNowをコールします。

CALL ttAgingScheduleNow ();

この例では、ユーザーsampleuser1 (インスタンス管理者ではない)は、時間ベースのエージング・ポリシーとエージング状態がOFFに設定された表agingexを作成します。

Command> CREATE TABLE agingex (col1 TT_INTEGER PRIMARY KEY NOT NULL, 
ts TIMESTAMP NOT NULL) AGING USE ts LIFETIME 1 MINUTES CYCLE 30 MINUTES OFF;

Command> DESCRIBE agingex;

Table SAMPLEUSER1.AGINGEX:
    Columns:
     *COL1   TT_INTEGER NOT NULL
      TS     TIMESTAMP (6) NOT NULL
    PRIMARY KEY (COL1) RANGE INDEX
    Aging: Timestamp based uses column TS lifetime 1 minute cycle 30 minutes off
  
  1 table found.
  (primary key columns are indicated with *)

ユーザーはデータを含む2つの行を挿入します。次に、ユーザーがttAgingScheduleNowプロシージャをコールし、行が表から削除されます。ttAgingScheduleNowをコールした後も、エージングの状態はOFFのままです。

Command> INSERT INTO agingex VALUES (1, SYSDATE);
1 row inserted.
 
Command> INSERT INTO agingex VALUES (2, SYSDATE);
1 row inserted.

Command> SELECT * FROM agingex;
< 1, 2022-11-08 23:57:00.000000>
< 2, 2022-11-08 23:57:18.000000>
2 rows found.

Command> CALL ttAgingScheduleNow ('agingex');
Command> SELECT * FROM agingex;
0 rows found.

関連項目