It's all about the answers!

Ask a question

Handling long running asynchronous jobs on RTC server


Samit Mehta (31103) | asked Mar 15 '10, 12:19 p.m.
JAZZ DEVELOPER
What techniques can I use to handle long running asynchronous jobs that are triggered from within a Followup action (e.g. Work Item Save Operation Participant) on the RTC server. These jobs/tasks do not need to hold up the operation itself and the guidelines for Operation Participants state that long running steps should not be called.

In separate threads, it was advised to use Eclipse Jobs in an RTC Eclipse client to do heavy processing. Is there a similar technique that can be used on RTC Server? The technique should allow a safe mechanism to invoke and pass parameters from the Followup action.

FYI: If interested the processing I am planning to do is described in another topic (http://jazz.net/forums/viewtopic.php?t=9634)

Thanks,
Samit

One answer



permanent link
John Camelon (1.7k14) | answered Mar 15 '10, 3:30 p.m.
JAZZ DEVELOPER
What techniques can I use to handle long running asynchronous jobs that are triggered from within a Followup action (e.g. Work Item Save Operation Participant) on the RTC server. These jobs/tasks do not need to hold up the operation itself and the guidelines for Operation Participants state that long running steps should not be called.

In separate threads, it was advised to use Eclipse Jobs in an RTC Eclipse client to do heavy processing. Is there a similar technique that can be used on RTC Server? The technique should allow a safe mechanism to invoke and pass parameters from the Followup action.

FYI: If interested the processing I am planning to do is described in another topic (http://jazz.net/forums/viewtopic.php?t=9634)

Thanks,
Samit


You can define a postTransaction asynchronous task that you can schedule in your follow up, to perform the work at a time after the operation complete. This is a repository extension point. You subclass
AbstractPostOutermostTransactionTask and implement IPostOutermostTransactionTask, and schedule your task using ITransactionService#executeTaskAfterCurrentOutermostTransaction().

Hope this helps,
John Camelon
SCM Server

Your answer


Register or to post your answer.