There should be an option when creating a DBMS Scheduler job to create this as part of the transaction, so it can be rolled back if the transaction fails. DBMS_JOB worked like this and DBMS_SCHEDULER is so much better, except it's not transactional. I know there are workarounds, but these feel a bit messy. It makes migrating from DBMS_JOB to DBMS_SCHEDULER a harder task than it should be.