Hi Vishnu,
My intention is not to crash your production system.
It was my assumption that you will test this in your QA first and more importantly that you are aware that deletfinaljobs() will delete the complete past history of the job definition, given the nature of the method that you are not passing any keep values, if you were not I apologize.
So, one easy alternate i can think of is submitting System_RemoveOldJobs with the required age or date or id.
So loop through the same set of job definitions, but instead of deleting all past history, schedule this System job for each job definition, with specific age or date(for example, job A older that Jan 31, 2012). In this case, you might have to run this System job multiple times just for a single definition. So it requires meticulous planning, extensive testing in QA for all test cases (all frequencies for example). Keep in mind, you have to either schedule the system jobs in future date or wait for first System_RemoveOldJobs to complete before starting the second one.
The Key here is to determine the optimum age or date that you can repeat for each category of frequency but still not cause any performance issue.
For example, Job A, you choose Age as 47 months (deleting 1 month of data from 2012) and you run the System_RemoveOldJobs. You wait for that job to complete and then run it again for Job A for 46 months.
Of Course, create a message with SAP in parallel as suggested above for a standard solution.
thanks
Nanda