これを行う方法を見つけるために私が見逃しているのはおそらく語彙だけです:
ジョブは5分ごとに定期的に実行されるようにスケジュールされていますが、同時に実行されるインスタンスが2つになることはないことを追跡します。つまり、前の実行が5分より長い場合、次のインスタンスは延期またはスキップされます。
これを達成するための最も簡単でエレガントな方法は何ですか?
これを行う方法を見つけるために私が見逃しているのはおそらく語彙だけです:
ジョブは5分ごとに定期的に実行されるようにスケジュールされていますが、同時に実行されるインスタンスが2つになることはないことを追跡します。つまり、前の実行が5分より長い場合、次のインスタンスは延期またはスキップされます。
これを達成するための最も簡単でエレガントな方法は何ですか?
Oracle 10g管理者ガイドから:
「DBMS_JOBパッケージはDBMS_SCHEDULERパッケージに置き換えられました。特に、システム負荷を管理するためにジョブを管理している場合は、ユーザーのパッケージ実行権限を取り消して、DBMS_JOBを無効にすることを検討してください。」
DBMS_SCHEDULERは、現在これを行うためのOracleの推奨方法です。これを使用している場合、Enterprise Manager /GridControlを介してジョブを管理できるという利点があります。
DBMS_JOB
その世話をします。使用するだけです。
dbms_schedulerがdbms_jobよりも優れているもう1つの利点は、負荷、リソース使用量をより適切に制御できることと、データベースの外部でジョブを実行できることです。
hth、ロナルド。
何らかの理由でdbms_jobまたはdbms_schedulerが機能しない場合DBMS_APPLICATION_INFO.SET_APPLICATION_INFO
は、ジョブのモジュール名を設定するために使用することもできます。また、v $ sessionを照会して、そのモジュールを現在実行しているセッションの数を確認することもできます。
これはどんな仕事ですか?PL / SQLストアドプロシージャ?