The following Server properties let you adjust Server allocations:

  • The Corticon Server takes each thread (regardless of which Decision Service the thread is executing against), and then adds the thread to the Execution Queue in a first-in-first-out strategy. While that generally satisfies most use cases, you might want more control over which Decision Services get priority over other Decision Services. For that, you first set the Server property com.corticon.server.decisionservice.allocation.enabled to true, and then set the maximum number of execution threads (maxPoolSize) for each specified Decision Service in the Execution Queue. Once you set the allocation on every Decision Service, the Server will try to maintain corresponding allocations of execution threads from the Decision Services inside the Execution Queue. Once the property is set to true, the Decision Services will allocate based on the maxPoolSize that was assigned when the Decision Service was deployed. You can then dynamically change a Decision Service's maxPoolSize when deployed using a CDD file by setting the value of the PROPERTY_MAX_POOL_SIZEproperty in the CDD. When the CcServerMaintenanceThread detects the change, it will update the Decision Service.
    Note: You might have circumstances where you want to disable allocation behavior, ensuring that Decision Services will strictly adhere to the maximum thread limit, even if the server is not fully utilized. Default value is false
    com.corticon.ccserver.allocation.disable.underutilization.algorithm=false
  • In some cases, you might want to enable Decision Service level allocations to control the number of Decision Service instances that can be added to the queue at a particular time. This will cause prioritizing of one Decision Service over another, making more resources available to that type. To do this, set the property's value to true. Default value is false
    com.corticon.server.decisionservice.allocation.enabled=false
  • Once Decision Service allocation is turned on, prioritization of one Decision Service may occur in the Execution Queue. If a particular Decision Service is fully allocated in the Execution Queue, other execution threads for that Decision Service will have to wait until one of the allocated execution Threads completes its execution. The wait time, in getting into the Execution Queue varies, based on load and other Decision Service allocations. You can allow those waiting Threads to timeout if they wait longer than specified. A CcServerTimeoutException will be thrown if the execution thread fails to complete in the allotted time. The value is in milliseconds. Default value is 180000 (180000ms = 3 minutes)
    com.corticon.server.decisionservice.allocation.timeout=180000