1

DBMS_Scheduler を使用して、バックエンド (電子メールの送信用) でスケジュールされたジョブがあります。ただし、ユーザーが電子メールをスケジュールできるようにするだけでなく、ボタンをクリックするだけですぐに電子メールを送信できるようにする必要がありました。

これを実現するために、私は次のように調整しました。ユーザーがボタンをクリックすると、プロシージャが呼び出されます。この手順では、前述のジョブを (run_job を使用して) 実行します。これにより、同じジョブを使用して、すぐに電子メールを送信することも、後でスケジュールされた時間に送信することもできました。

私が今直面している問題は次のとおりです。ユーザー A がボタンをクリックするとします。同時に、ユーザー B は自分のシステムのボタンをクリックします。次に、ユーザー B は次のエラー メッセージを受け取ります。ジョブは既に実行中です。

Oracleで同じジョブを複数回 (並行して)実行するにはどうすればよいですか?

4

2 に答える 2

1

ジョブをイベント ベースのジョブに変換できる場合は、それらをトリガーするイベントに応答する軽量ジョブを使用できます。イベント ベースのジョブの場合、parallel_instances を true に設定すると、同じジョブの複数のインスタンスを並行して実行できます。

これはあなたが望むことをする方法です。

軽量の並列ジョブは、単純なタスクを実行する短期間のジョブを対象としています。

于 2013-11-05T10:38:15.837 に答える