Scheduling jobs that require multiple uninterupted steps on a server
The scenario we have is our builds are organized into projects consistenting of multiple steps. We are using the sticky variable in the cases were the steps must occur on the same server, however we have the additional requirement that these steps not be interupted by other jobs. Since BuildForge assigns the server use on a per-step basis, it is possible for other jobs in queue to 'hijack' a server running a job in between the job steps.
Using BF_RESERVE on our selectors unfortunately does not solve the problem since if all the servers are reserved then the selector reports failure and the entire job will fail after the specified number of retries rather than wait in queue for a server to become available.
Is there any implementation we can use to ensure currently running jobs have priority on the server during step selection and still maintain the ability to queue jobs when servers are unavailable?
One answer
BF_RESERVE is the functionality put in for this use case. Sounds like you need an RFE to queue builds when everything has been reserved.
Comments
Sorry I'm not familiar with what RFE is, any chance you could point me to documentation on this?
Spencer is suggesting that you open a Request For Enhancement (RFE) for the product. You can do that by entering a Work Item of type Enhancement on jazz.net or by going to the developerWorks Rationale RFE Community and entering one there.
Here is the link for dW: http://www.ibm.com/developerworks/rfe/?BRAND_ID=1