Server execution properties
- Last Updated: June 8, 2025
- 6 minute read
- Corticon
- Documentation
The following properties are settings you can apply to your Corticon
Server installation by adding the properties and appropriate values as lines in its
brms.properties file, and then restarting Server.
These settings impact all the loaded Decision Services on the server.
-------------------------------------------------------------------------------
Determines whether CDO association accessor ("getter") methods will return clones of their association HashSets. Normally, an association getter will return a direct reference to the association HashSet.
The default value (false) provides the best performance, particularly for EDC-enabled applications, because cloning an association HashSet can trigger unnecessary database I/O due to lazy-loading.
You can use this property to overcome ConcurrentModificationException errors which may arise when a Rulesheet has two aliases assigned to the same association, and that Rulesheet contains action statements that modify the association collection.
Note that this property only applies to N-to-many associations; for N-to-1 associations, the CDOs will always return a direct reference to the "singleton" HashMap.
Default value is false
com.corticon.ccserver.cloneAssociationHashSets=false
-------------------------------------------------------------------------------
The property ensureComplianceWithServiceContract determines whether the returning XML
CorticonResponse documents must be valid with respect to the generated XSD/WSDL file.
This requires dynamic sorting and results in slower performance.
The lenientDateTimeFormat sub-property
does the following:
* If false, forces all dateTime
values to Zulu format which is the XML standard
* If true, allows any dateTime format
supported by Java to be used in the payload
Default for ensureComplianceWithServiceContract
is true (sort)
Default for lenientDateTimeFormat is
false
com.corticon.ccserver.ensureComplianceWithServiceContract=true
com.corticon.ccserver.ensureComplianceWithServiceContract.lenientDateTimeFormat=false
-------------------------------------------------------------------------------
Specifies which implementation class to be used when a supported interface is used for an association inside the user's mapped Business Object. This is needed by the BusinessObject Listener class, which is compiled during Decision Service deployment.
Support interfaces include:
- java.util.Collection
- java.util.List
- java.util.Set
Default values are:
- java.util.Collection=java.util.Vector
- java.util.List=java.util.ArrayList
- java.util.Set=java.util.HashSet
com.corticon.cdolistener.collectionmapping=java.util.Vector
com.corticon.cdolistener.listmapping=java.util.ArrayList
com.corticon.cdolistener.setmapping=java.util.HashSet
-------------------------------------------------------------------------------
Specifies whether the rule engine conducts an integrity check when adding to an existing association. This integrity check ensures that rules do not add redundant associations between the same two entities. Although, this is a rare that occurrence, it is possible. The downside of this integrity check is that Decision Services that create a significant number of new associations can experience a performance degradation. Such Decision Services would require this configuration property to be set to false.
Default value is true.
com.corticon.reactor.engine.checkForAssociationDuplicates=true
-------------------------------------------------------------------------------
By default, newly created entities are added to the work document. If these entities are not needed in the output they can be created without registering them in the work document. If property value = false, newly created entities via rules will not be registered in the work document.
Default value is true
com.corticon.reactor.engine.registerNewEntities=true
-------------------------------------------------------------------------------
Option to specify how many variable substitutions could be applied to an ADC PreparedStatement. The restriction on how many PreparedStatement variables is controlled by the Database Driver. Different Databases have different maximums.
Default value is 1000
com.corticon.server.adc.preparedstatements.maxvariables=1000
-------------------------------------------------------------------------------
Batch Logging parameters that control whether the payload, response, and/or rule messages will be added to an batch execution log file. This will cause the system to log a batch payload that failed during execution.
- ALL - log the type whether the execution is successful or not
- VIOLATION - log the type only when there is a Violation rule message in the response.
- NONE - don't log the type
Default value is NONE (for all types)
com.corticon.server.batch.logging.payloads=NONE
com.corticon.server.batch.logging.responses=NONE
com.corticon.server.batch.logging.rulemessages=NONE
-------------------------------------------------------------------------------
Specifies the timeout setting for when an execution thread waits to get
added to the Execution Queue when com.corticon.server.decisionservice.allocation.enabled=true.
Default value is 180000 (180000ms = 3 minutes)
com.corticon.server.decisionservice.allocation.timeout=180000
-------------------------------------------------------------------------------
By default, the allocation algorithm allows the system to dynamically increase the number of execution threads beyond the usual maximum limit when the CcServer is underutilized, potentially improving performance during periods of low server load. This property will disable the algorithm so that Decision Services will not exceed the maximum limit even if the CcServer is underutilized.
Setting this property totrue disables that 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
Note: This property only takes effect if allocation is explicitly enabled. To enable
thread allocation, the following property must be set to true. Default
value is false.
com.corticon.server.decisionservice.allocation.enabled=false
-------------------------------------------------------------------------------
Timeout setting for how long an execution thread can be inside the Execution Queue. The time starts when the execution thread enters the Execution Queue and ends when it completes executing against a Decision Service. 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.execution.queue.timeout=180000
-------------------------------------------------------------------------------
Option that will restrict certain types of Rule Messages from being posted to the output of an execution. There are 3 different properties to allow the user to select exactly what is returned to them from the execution. Default is false (for all three properties)
com.corticon.server.restrict.rulemessages.info=false
com.corticon.server.restrict.rulemessages.warning=false
com.corticon.server.restrict.rulemessages.violation=false
brms.properties file but will not
override settings in a CDD. Also, a payload can dynamically override these properties
for each execution by adding execution properties to its payload.-------------------------------------------------------------------------------
Option that will restrict the CorticonResponse to only contain RuleMessages in it. Default is false
com.corticon.server.restrict.response.rulemessages.only=false
-------------------------------------------------------------------------------
Option that lets the user to define how many Rule Messages will be returned from the execution of a Decision Service. This helps to prevent users from accidentally deploying a Decision Service with diagnostic Rule Messages posted when each Rule is fired.
com.corticon.server.execution.xml.rulemessages.messagesinblock
Defines how many messages will be returned in the output
Default value is 5000
com.corticon.server.execution.xml.rulemessages.blocknumber
Defines which block of messages will be returned in the response. This allows the user to specify the 2nd, 3rd, or nth number of 1000 messages to be returned
Default value is 1 (the first block)
com.corticon.server.execution.xml.rulemessages.messagesinblock=5000
com.corticon.server.execution.xml.rulemessages.blocknumber=1
-------------------------------------------------------------------------------
Option to specify to capture HTTP Headers information
Default value is true
com.corticon.server.http=true
-------------------------------------------------------------------------------
Provides the option to not add the Entity Name as an xsi:type value for
those new Entities that are create through Rules using the .new operator. This only applies to XML payloads.
Default value is true (Entity Name will be added as an xsi:type)
com.corticon.server.xml.newentities.addtype=true
-------------------------------------------------------------------------------
By default, newly created entities in a service call out are added to the work document. If these entities are not needed in the output they can be created without registering them the work document. If property value = false, the SCO created entities are not registered in the work document.
Default value is true
com.corticon.services.registerNewSCOEntities=true
-------------------------------------------------------------------------------
Related to XML Translation. Base on this value, extra processing will ensure that the Incoming Document's Enities, Attributes, and Associations match the Namespaces defined in the Vocabulary. If the Vocabulary Entity or Attribute does not have an explicitly set Namespace value, the Element's Namespace must be the same as the Namespace for the WorkDocuments Element. If the Namespaces don't match, the Entity, Attribute, or Association will not be read into memory during execution. Also, if new Entities, Attributes, or Associations are added to the XML because of Rules, then explicitly set Vocabulary value will be used, otherwise the WorkDocument's Namespace will be used.
Default value is false.
com.corticon.xml.namespace.ignore=false
-------------------------------------------------------------------------------
Option to ignore the xsi:type related
to Entities/Associations in an XML Payload.
Default value is false
com.corticon.xml.xsi.type.ignore=false
-------------------------------------------------------------------------------
Default JDOM formatting setting when converting JDOM to a String:
PRESERVE- All content is printed in the format it was created, no whitespace or line separators are added or removed.TRIM_FULL_WHITE- Content between tags consisting of all whitespace is not printed. If the content contains even one non-whitespace character, it is printed verbatim, whitespace and all.TRIM- Same asTRIM_FULL_WHITE, plus leading/trailing whitespace are trimmed.NORMALIZE- Same asTRIM, plus addition interior whitespace is compressed to a single space.
Default value is NORMALIZE.
com.corticon.format.documentToString=NORMALIZE
-------------------------------------------------------------------------------
Option to append the Server Execution start and stop times to the CorticonResponse document after ICcServer.execute(String) or ICcServer.execute(Document) is performed.
Default value is false
com.corticon.ccserver.appendservertimes=false
-------------------------------------------------------------------------------
Option to generate WSDL with the vocabulary filename in the "portType", "binding", and "service" names. This option is set in the brms.properties of a machine running corticonmanagement utilities.
Default value is false
com.corticon.servicecontracts.global.use.vocabulary.filename=false
For information about related properties
See: