要件:
マネージャは、ジョブ インスタンスおよびジョブ実行テーブルにジョブの複数のインスタンスを必要としません。複数の実行は問題ありませんが、彼は 1 つのインスタンスだけを望んでいます。
意味: このようなインスタンスは再起動できないため、ジョブは COMPLETED のバッチ ステータスで終了できません。
私のアプローチ: ジョブの次の実行で以前に実行されたのと同じインスタンスが実行されるように、ジョブを STOPPED のバッチ ステータスで終了しようとします。(ジョブが失敗した場合、失敗したインスタンスは再実行できるため、問題はありません)。実行ごとに作成される既定のインスタンスが、データベース (ジョブ インスタンス テーブル) に既に存在するインスタンスと一致するように、ジョブのパラメーターを持たない予定です。このように、インスタンスは 1 つしかなく、差別化パラメーターがないため、再起動時にジョブにパラメーターを渡すことについて心配する必要はありません。
問題: すべてのステップが完了し、そのようなすべてのステップで BATCH_STEP_EXECUTION が COMPLTED に更新された場合、たとえジョブの実行を STOPPED のステータスで終了させたとしても、この同じジョブ インスタンスを再実行することはできません。メッセージが表示されます: すべてのステップが既に完了しているか、このジョブにステップが構成されていません。
メッセージの意味はわかりますが、単一のインスタンスを再実行するたびに、上記のメッセージが表示されるのではなく、これらのステップも再実行できるように、すべてのステップを完了以外のステータスで終了させようとしています。ステップの実行ステータスを使用して、ジョブの実行ステータスを取得できることを認識しています。たとえば、ステップが STOPPED で終了する場合、そのステータスを使用して、 、 、または 要素を介してジョブを STOPPED で終了するように指示できます。BATCH_STEP_EXECUTION テーブルで更新されたものに影響を与えるような方法がない限り、それらを使用する方法を既に知っているので、これは私が探しているものではありません。
そのテーブルでは、ステップが成功した場合に COMPLETED ではなく STOPPED で終了するようにします。何か案は?そもそもこれを達成することは可能ですか?