2017-12-07 3 views
1

私はOracleでジョブをスケジュールするのが初めてです。私がdbms_job.submitを使用して、Oracleで複数のジョブ(プロシージャ)を実行しているとします。各仕事には異なるセッションがありますか?dbms_job.submitに関して

dbms_job.submit(1, 'begin proc; end;'); 
dbms_job.submit(2, 'begin proc; end;'); 

ここで問題となるのは、実行中のジョブ(上記2つのジョブ)のセッションIDが異なるか同じですか?

私があなたに質問しているのは、両方のジョブが並行して実行されていて、ジョブ1が正常に完了したときにコミットすると想像するからです。その間にジョブ2が失敗し、ロールバックが発生しました。このシナリオでは、JOB1によってコミットされるレコードもロールバックされますか?

答えて

3

Oracle documentation is quite clear:バックグラウンドジョブは、それぞれのセッションで実行されます。ジョブ1とジョブ2のセッションの間には関係がありません。あなたは(後に11グラム以上)データベースの最新のバージョンを使用している場合


ところで、あなたは本当にむしろ非推奨DBMS_JOBよりもDBMS_SCHEDULERを使用する必要があります。 Find out more

関連する問題