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.

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

-------------------------------------------------------------------------------

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 to true 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
Note: The rulemessage restrictions set in a server’s 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 as TRIM_FULL_WHITE, plus leading/trailing whitespace are trimmed.
  • NORMALIZE - Same as TRIM, 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: