...
The following table shows an example progression of how licenses are reserved and consumed. This example is for a single feature with a pool of 10 licenses.
Action | Licenses | In in Pool | Reserved Licenses | Licenses Consumed by Client 1 | Licenses Consumed by Client 2 |
---|---|---|---|---|---|
Default state, before reservations/consumptions | 10 | 0 | 0 | 0 | |
Reserve 8 licenses of feature using token ABC | 2 | 8 using token ABC | 0 | 0 | |
Reserve 2 licenses of feature using token XYZ | 0 | 8 using token ABC; 2 using token XYZ | 0 | 0 | |
Any client attempts normal checkout of 1 license (returns LMX_NOT_ENOUGH_LICENSES) | 0 | 8 using token ABC; 2 using token XYZ | 0 | 0 | |
Client 1 consumes 1 reservation using token ABC | 0 | 7 using token ABC; 2 using token XYZ | 1 using token ABC | 0 | |
Client 2 consumes 1 reservation using token XYZ | 0 | 7 using token ABC; 1 using token XYZ | 1 using token ABC | 1 using token XYZ | |
Client 1 consumes 5 reservations using token ABC | 0 | 2 using token ABC; 1 using token XYZ | 6 using token ABC | 1 using token XYZ | |
Client 2 attempts normal checkout of 1 license (returns LMX_FEATURE_ALREADY_RESERVED) | 0 | 2 using token ABC: 1 using token XYZ | 6 using token ABC | 1 using token XYZ | |
Client 1 checks in all licenses | 0 | 8 using token ABC: 1 using token XYZ | 0 | 1 using token XYZ | |
Client 2 performs early return using token XYZ | 2 | 8 using token ABC | 0 | 0 | |
Client 2 performs early return using token ABC | 10 | 0 | 0 | 0 |