Is there a limit to the number of processes IRIS can create to process concurrent requests ?
I did some experiments on my local machine and found out that IRIS seems to associate each request (eg: CSP request) to a dedicated process named IrisDB.exe
This process has 3 threads, and one of them seems to be the main working thread (that will the handle request).
If I spawn many concurrent requests, the number of IrisDB processes on my local machine will grow (to make sure each request can be handled in parallel).
It seems there is a limit : it will create no more than 64 processes to handle requests (eg: even if 100 concurrent requests are send to IRIS).
I have been wondering if there is such a limit and if yes if it can be configured in Portal ?
I did some search in memory startup section and also in the IRIS.cpf configuration file but could not find anything.
Comments
Typical licensing happens by user by processes - every user gets 25 processes slots
if you exceed this 25 every process consumes its own license.
so up to 25 you consume 1 license but by #26 you convert to 26 licenses consumed
then the total number of license slots counts.
But there are also other licensing models. You should check with ISC Sales or WRC which one applies.
- $SYSTEM.License.KeyLicenseUnits()
returns the number of license units authorized by the active key. - $SYSTEM.License.LUConsumed()
returns number of license units currently consumed at the local instance. - there are more $SYSTEM.License...... that might be of interest.
Docu %SYSTEM.License
I did some a check on local machine : KeyLicenseUnits returns 10. So limit is somewhere else. What you say, by the way is true for CSP requests (which is example I give in the OP).
Are you using default Apache on Windows?
Try to set ThreadsPerChild and ThreadLimit to 100 in <IRIS>\httpd\conf\httpd.conf and restart IRIS (or at least the webserver). After that 100 processes should be able to start (under appropriate load).