The maxConnectionsPerAgent controls the maximum concurrent connections to an agent.
The maxABLSessionsPerAgent is the pool of ABL sessions that can be used to process these concurrent connections.
In general the maxABLSessionsPerAgent should be the same as maxConnectionsPerAgent, especially if the application is state-less or statefree.
However, if still running a StateAware or StateReset application, one may want to set maxABLSessionsPerAgent greater than maxConnectionsPerAgent. In this way one can control CPU usage, and still have client context that is persistent and awaiting the next request by a user not currently making a request. One will also have a proportionally larger amount of memory usage since the sessions are higher than concurrent connections.
How would this work?
100 users who login in first thing in the morning, use the application sporadically during the day, and log off at night.
20 max concurrent connections to the single agent in use (this means the CPU of the multi-session agent will be limited by 20 concurrent requests running)
However, the context for the 100 users is kept in the multi-session agent, so when a connection becomes available, the next request can be processed with an expected context.
So the settings would be: