I have a situation in PROD where users are getting "No business server instance.." error in the later part of the day.
Looking at the pool manager properties during the issue time, i notice that at that time i have the [Assigned Server+Warm servers] = PROCESS_MAX.
Here is my understanding of the pool manager properties. We can have [Warm Servers + Assigned Servers] <= PROCESS_MAX. When we have [Warm Servers + Assigned Servers] value reaching PROCESS_MAX, any new user connection will be assigned to a Warm Server. Now in this case we will have WARM SERVER = [WARM SERVER -1] since oen of them is assigned to a new connection. In this case, the system will try to spawn one more Warm server to reach the value set in the property file. But when doing this, [Warm Servers + Assigned Servers] > PROCESS_MAX. In this case, the system will kill one of the existing tcserver process before its idle time out so that this new warm server is assigned. But for new users who are trying to connect, they will always be assigned to a warm server and will not face login issue with the "No business server instance" error.
Though i have fixed the issue by increasing the PROCESS_MAX value for now since we have enoygh memory on the server, I am curious to understand why users were not able to login wven when i had enough WARM Servers available which were not assigned.