STOP_JOB プロシージャは、実行中のジョブを終了するために使用します。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
権限の説明
sysテナントは他のユーザーが実行中のジョブを終了できますが、他のユーザーは自身が実行中のジョブのみを終了できます。
構文
DBMS_SCHEDULER.STOP_JOB (
job_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
パラメータの説明
パラメータ |
説明 |
|---|---|
| job_name | ジョブ名を指定します。job_nameは1つのみ指定可能です。 |
| force | 実行中のジョブを強制的に終了するかどうかを指定します。FALSEに設定すると、ジョブの強制終了は実行されません。 |
使用方法
- ジョブの複数の実行ラウンドを終了する場合:
STOP_JOBコマンドを実行すると、コマンド実行時点以前に開始されたすべてのジョブとその対応するセッションが終了します。 - 将来のスケジューリングへの影響:
STOP_JOBは現在実行中のジョブインスタンスのみを終了し、そのジョブの将来の予定されたスケジューリングには何ら影響しません。ジョブは計画通りに実行を続けます。 - 終了したジョブの失敗回数統計:
STOP_JOBまたはkill sessionによって終了したジョブは、1回失敗としてカウントされます。ジョブが連続して一定回数(例えば16回)失敗すると、システムによって破損したものと見なされる可能性があります。 - キューのバックログがある場合のジョブへの影響:システムテナントキューまたはOracleテナントキューにバックログが発生すると、
STOP_JOBコマンドの実行に影響を与える可能性があります。キューのバックログはリソースの逼迫を引き起こし、STOP_JOBコマンドの実行が遅延または妨げられる可能性があります。
例
ジョブ MYJOB を即座に終了します。
BEGIN
DBMS_SCHEDULER.STOP_JOB(
JOB_NAME => 'MYJOB,
force => FALSE);
END;