Q: I have a batch job consisting of a large number of gams models to be run, each of these requiring cplex. I am running this on my faculty's it system, where we share a number of licenses. It varies a lot how many is available, but sometimes none are available. This answer is returned to gams, which outputs this and terminates. That is very unfortunate for my application and I would very much prefer if it waits until a license becomes available. So my question is, can some flag be set for either cplex or gams, telling gams to keep trying to find a license?
You can program this into your GAMS program. The GAMS/CPLEX-link returns with a license error in the solver status. If this happens, you could put your model to sleep for x seconds and try again:
repeat solve mymodel min z using mip; if (mymodel.solvestat=7, display$sleep(5) 'sleep 5 seconds for Cplex license'); until mymodel.solvestat<>7;
If your version of GAMS does not have the
sleep command, you could call
execute “sleep 5”; to call an external program.