cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
DotnetSolutions
Level 5

Getting -4, MAX_USERS (multiple license servers)

I'm getting -4 MAX_USERS. "Licensed number of users already reached." when trying to checkout a license even though there are more floating counted concurrent licenses available in an other license server (server2).

In this case we have 2 clients on different PC's and 1 feature (client.base) in each license server. The first one has a license checked out on lic. server1. The second client then tries to checkout the license (lic. server path: @server1;@server2).

Note that the client correctly proceeds to server2 of there is no license available in server1.
Labels (1)
0 Kudos
(4) Replies
RobertDickau
Flexera Alumni

For an explanation and possible remedy, please see, for example, the ProgRef-LF.pdf section "Comparing License Search Path Redundancy to Three-Server Redundancy"; the issue is sometimes that a successful checkout request from a server binds the job handle to that server.

Edit: Oh, I didn't see that the checkouts were from different clients. I assume the first server debug log doesn't say anything unusual...
0 Kudos
DotnetSolutions
Level 5

Yes, we have 2 different clients on different PC's in this case.

The server debug log doesn't say anything special (DENIED:...Licensed number of users already reached).

In this case we definitely have 2 different job handles, so it's not the same as the scenario when a successful checkout request from a server binds the job handle to that server.
Somehow it seems that if there is a license present (free or not) the checkout (job handle) binds to that server whatever client it comes from.

This behavior invalidates the redundancy functionality...
0 Kudos
RobertDickau
Flexera Alumni

Hmm, a simple test seems to work at this end:
  • ServerA and ServerB each has a license file serving one license:

    SERVER this_host ANY
    VENDOR demo
    INCREMENT one_each demo 1.0 1-jan-2010 1 SIGN="..."


  • ClientA and ClientB have search path set (using lmpath) to ServerA:ServerB


  • ClientA uses lmflex to request copy of one_each, gets it from ServerA


  • ClientB uses lmflex to request copy of one_each, ServerA rejects request with "DENIED: 'one_each' robert@ClientB", but ServerB accepts request with "OUT: 'one_each' robert@ClientB"

Is that similar to your setup?
0 Kudos
DotnetSolutions
Level 5

Thanks Robert. Now it works.

We have a test checkout before the real checkout (to get correct return message on expired licenses), and the job handles where the same. Now we have different job handles.
0 Kudos