skip to main content
Corticon Server: Integration & Deployment Guide : Performance and tuning guide : Server performance and tuning : Setting Server execution properties
 

Try Corticon Now
Setting Server execution properties
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.
-------------------------------------------------------------------------------
Specifies whether the Server Execution start and stop times are appended to the CorticonResponse document after ICcServer.execute(String), ICcServer.execute(Document), or ICcServer.execute(JSONObject) is performed.
Default value is false
com.corticon.ccserver.appendservertimes=false
-------------------------------------------------------------------------------
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 allow any dateTime format supported by Java to use in the payload
Default for ensureComplianceWithServiceContract is true (sort)
Default for lenientDateTimeFormat is true
com.corticon.ccserver.ensureComplianceWithServiceContract=true
-------------------------------------------------------------------------------
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 the system to log a batch payload that failed during execution.
Possible values are:
*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
-------------------------------------------------------------------------------
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 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
-------------------------------------------------------------------------------

For information about related properties

See:
*Setting Server build properties
*Setting Service Contract properties
*Properties that get baked into Decision Services