Application pools are used to separate the processes in which a Component executes. They are also used to specify which Components are executed in the same process.
Application pools are defined in iCore Administrator. The definition contains only basic properties like Name, Description, Categories and other standard entity properties. The Application pool is then configured on each Server that implements it. Every system has a system-internal default Application pool defined right from the start.
Implementing an Application pool
Each Server is configured to provide one or more Application pools. Application pools are implemented by one or more Servers. This means that the Application pool implementation consists of one or more “physical” Application pools that are implemented by one or more of the Servers in the system. A Server instantiates an Application pool at runtime.
Configuring an Application pool
For each Application pool implemented by a Server, you can configure the number of worker processes in each Server implementation of the Application pool. On each process, it is possible to set the number of "slots" (concurrent Jobs).
Application pools and Components
Every Component is configured to run in an Application pool, either a user-defined Application pool or the system internal default Application pool.
Application pools at runtime
At runtime, the service tries to find the least loaded Server providing the Application pool specified in the Component configuration. If all implementations of the requested pool type are busy, the execution of the Component is put on hold until an empty slot appears in the Application pool.
Application pools can be manually restarted via the Administrator GUI or a PowerShell cmdlet. With this command, it is not necessary to restart the iCore system to make recently added or compiled Component definitions available in iCore runtime.