We have 6 VMs set up for a specific type of use cases and another 6 for common use cases. 2 Machine templates are there BotMachine and BotMachineSecure having 6 VMs each and tenant is provisioned with 9 licenses.
We may need to run 6 normal process and 3 secure at a time and 3 normal and 6 secure at other time.
Now problem is which ever VMs acquires the licenses first hold on to it and even when no process running there and other jobs are pending. So the last 3 machines are not able to acquire licenses even when all licenses are free and a job is on pending status on any of unlicensed ones.
It is only possible if I switch off one licensed VM from Orchestrator manually then one out of these 3 will get a license.
Please suggest if you have found a way to automatically switch licenses from one VM to another based on job request and free license availability.
This is how the licences work. They get assigned to a machine template and stay there, and a machine template will only take the licences if it can fully fill its quota.
For example if you set 3 on one machine template and 6 on the other, and have 6 licences, if the first machine takes 3 licences, the second machine wont take 3, it will take zero, leaving 3 unallocated.
The level of flexibility you need is hard to achieve, do you have any options to do this all on one machine template and using the host name to make sure the jobs run on certain machines?
Hi @SnehajitDas
I think UiPath licenses are assigned per robot and stay locked while the robot is connected, even if idle. orchestrator does not automatically switch licenses between machines based on job demand. to handle this, configure robots to disconnect or log off after jobs to free licenses.
use modern folders with robot pools to allow dynamic license allocation.
@SnehajitDas You can create a process to use API request to release the license which can be triggered at the end of each process.
API can be create to disable and enable the machine to consume licenses
Per machine template, not robot, you can have 100 robots and they’ll work dynamically.
Using hostname you can only select only one machine, we may have 6 special processes request and need to run on 6 available machines so we cannot specify one machine name in each process. I should always run on available machine.
If I disable a machine using API at the end of process, when I am enabling it back so pending jobs can take it?
@SnehajitDas when you enable it back. Robot is all set to take pending jobs
Do you mean enabling is manual task from Orchestrator?
@SnehajitDas Same API to disable, can help you to enable it as well.
