This content has been marked as final. Show 5 replies
Try this:1 person found this helpful
Comment out this stop method
And use isStop() in your iteration i.e. just call is isStop() method in your for loop or while loop
Thank you. Works like a charm. The Developers Guide never mentioned this.
I just noticed that if I add the call to isStop() in my loop it slows down overall performance of my task by more than 700% !!!. What the heck is this method doing anyway? Without calling the isStop() method in my loop my task completes in 20 seconds. When I add the call to isStop() in my loop the task completes in 154 seconds. That's more than 7 times slower. For our production run, this will be the difference between 8 minutes and more than an hour.
I would think that the isStop() method would simply check a flag to see if the stop button has been pushed. If this is taking that much time, then I can't really use it.
Why can't OIM simply call a callback method, like stop() for instance, and let me set my own flag to check?
One possible work-around:-
Define a batch of say 10 records and call isStop() method per 10 records instead of per record...
This should make the execution 10 times faster and overcome the limitation of 7 times slower execution of isStop() method...
Well, this is actually what I wound up doing. But I was just wondering why OIM decided to do it that way. Having a call back that is called only once when the Stop button is first pressed and which then would allow the task to set its own stop flag that it could check more often just makes more sense than having the task call another method in the parent class. But hey, I don't work for Oracle.