20.19 タスクの保持およびタスクのパージについて

タスクの保持、タスクのパージおよび「パージされたタスク・ファイルのアーカイブ」レポートについて説明します。

APEXでは、複合ペイロードを持つタスクを作成できます。つまり、タスク・データが急激に増加し、領域およびパフォーマンスの過負荷が発生する可能性があります。タスク・データを定期的にパージすることで、システムの過負荷を防ぎます。

タスク保持ロジック

DBMS_SCHEDULERジョブは、タスク・インスタンス表内のすべてのレコードをチェックするために毎日実行されます。DBMS_SCHEDULERを実行すると、次のようになります。
  • アクティブ、未割当ておよび割当て済のタスクを保持します
  • 保持期間が現在の日付以前の完了タスクをパージします
  • 終了済、取消済およびエラー発生のすべてのタスクをパージします

    ノート:

    終了済および取消済のタスクには保存期間がなく、毎日のDBMS_SCHEDULERジョブが実行されるまでシステムにのみ残ります。これは、終了済または取消済のタスクがタスク・インスタンス表に、24時間未満の間存在することを意味します。

「パージされたタスクのアーカイブ」レポートは、パージ対象となるタスクのJSONドキュメントを保存します。レポートが生成されると、パージ対象となるタスクがクリーンアップされます。

タスク保持の設定

タスクの保持ポリシーによって、完了したタスクを保持する期間が決まります。デフォルトのタスク保持期間は7日で、最大タスク保持期間は30日です。インスタンス管理者は、「インスタンスの設定」でタスクの保持期間を構成できます。詳細は、『Oracle APEX管理ガイド』ワークフロー設定の構成に関する項を参照してください。

「パージされたタスク・ファイルのアーカイブ」レポート

タスク・パージ・ジョブによってパージされたタスクのレポートは、「ワークスペース管理」にあります。詳細は、『Oracle APEX管理ガイド』「管理サービス」の「アクティビティのモニター」ページへのアクセスを参照してください。

「パージされたタスク・ファイル」レポート領域のファイルは、30日ごとにクリーンアップされます。

20.19.1 パージ前のタスクの取得

パージ前のタスクを取得するコードの例。

この例では、APIを使用して、パージ可能なタスクをフェッチし、データを取得して、それらのタスクを独自のスキーマで処理します。
merge 
    into user_task_table    u
using apex_purgeable_tasks  t
    on (u.task_id = t.task_id)
when not matched then insert
    (u.task_id, u.task_type, u.subject, u.priority)
values(t.task_id, t.task_type, t.subject, t.priority);