skip to main content
Corticon Server: Integration & Deployment Guide : Configuring Corticon properties and settings : Corticon Server properties
 

Try Corticon Now

Corticon Server properties

The following properties are used by Corticon Servers.
Note: Server properties are stored as a set of defaults in the CcServer.properties file that is packaged in the CcConfig.jar. Each property's notes, options, and default value are listed in this section. You should always set override values in the brms.properties file located at your work directory root -- or, in Studio, the preferred location specified in Preferences.
Important - The logging property com.corticon.server.execution.logperthread is no longer used. See the topic Changing logging configuration for more information.
------------------------------------------------------------
Enables sifting of the logs into execution log files specific to each Decision Service. Default value is false.
com.corticon.server.execution.logPerDS=false
------------------------------------------------------------
Settings that restrict each of the three types of Rule Messages (info, warning, and violation) from being posted to the output of an execution.
Note: When logs are generated for individual Decision Service versions, these properties are set as Execution Properties on each Decision Service version through the API .
The default value for each of the properties is false -- that message type is not restricted.
com.corticon.server.restrict.rulemessages.info=false
com.corticon.server.restrict.rulemessages.warning=false
com.corticon.server.restrict.rulemessages.violation=false
Setting that restricts the CorticonResponse to contain only RuleMessages. Default value is false.
com.corticon.server.restrict.response.rulemessages=false
------------------------------------------------------------
Determines the path to an existing directory used exclusively by Corticon Server to persist and retrieve deployment assets. If the path does not exist, the Corticon Server attempts to automatically create it. If this fails then the Corticon Server is unable to startup. Use forward slashes as path separator. Example: C:/Users/{username}/Progress/CorticonWork/SER/CcServerSandbox. Default value is %CORTICON_WORK_DIR%/%CORTICON_SETTING%/CcServerSandbox
com.corticon.ccserver.sandboxDir=%CORTICON_WORK_DIR%/%CORTICON_SETTING%/CcServerSandbox
------------------------------------------------------------
Corticon Server has a maintenance service that is tasked with keeping the state of the Decision Service pools up-to-date. The serviceIntervals property determines the number milliseconds elapsed in between service cycles during which Corticon Server checks for:
*Changes in any .cdd loaded to Corticon Server by a loadFromCdd or loadFromCddDir call
*Changes in any .cdd file including new cdds within the directory of cdds from a loadFromCddDir call
*Changes in any of the Decision Services (.erf files) loaded to the server. This is done by checking the timestamp.
If any changes are detected, Corticon Server's state is dynamically updated to reflect the changes.
The maintenance service can be shutdown and restarted using:
*ICcServer.stopDynamicaUpdateMonitoringService()
*ICcServer.startDynamicUpdateMonitoringService()
Default for serviceIntervals is 30 secs (30000 ms)
com.corticon.ccserver.serviceIntervals=30000
------------------------------------------------------------
Determines whether the Dynamic Update Monitor Service should be started automatically when Corticon Server is initialized.
The maintenance service can be shutdown and restarted using:
*ICcServer.stopDynamicaUpdateMonitoringService()
*ICcServer.startDynamicUpdateMonitoringService()
Default is true (Starts the Update Monitor Service automatically).
com.corticon.ccserver.dynamicupdatemonitor.autoactivate=true
------------------------------------------------------------
Determines whether to display Corticon Server messages to System.out, reflecting the activities in the maintenance thread. This is primarily a debugging property to be used under instructions from Progress technical support. Default is false (no messages).
com.corticon.ccserver.servermessages=false
------------------------------------------------------------
Set max loop iteration. Determines what constitutes an endless loop. For .ers files with the Process Logical Loops setting on, it is necessary to have a safety net to prevent endless loops. This is done by designating the maximum number of iterations allowed for any loop. Default is 100.
com.corticon.reactor.rulebuilder.maxloops=100
------------------------------------------------------------
Set maxloop exception handling {raise, bury}. Specifies whether the rule engine will raise a MaxLoopsExceededException if the maximum number of loop iterations is exceeded. Default value is raise.
com.corticon.reactor.rulebuilder.exception=raise
------------------------------------------------------------
Specifies the location of the JRE that will be used by the Corticon Server to compile the Ruleflows into Decision Services. If not specified, the Corticon Server will use the same JRE that started the Corticon Server by calling into System.getProperty(java.home). Default value is looked up using System.getProperty(java.home).
com.corticon.ccserver.compiler.javahome.location=
------------------------------------------------------------
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. Supported 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
------------------------------------------------------------
Specify whether the Decision Service compile process should dynamically detect the location of the Jars where the Java Business Objects reside. Primary focus is to incorporate customer Java Business Objects in the Ant Classpath so that Listener Generation will succeed. Default value is true.
com.corticon.server.compile.classpath.include.bos=true
------------------------------------------------------------
Specify whether the Decision Service compile process should include all the Jars that are in the same directory as the CcServer.jar in the Ant Compile Classpath. This may need to be set to true dependent on the type of Application Server the Decision Services are deployed on. Primary focus is to incorporate customer Java Business Objects in the Ant Classpath so that Listener Generation will succeed. Default value is true.
com.corticon.server.compile.classpath.include.alljarsunderccserver=true
------------------------------------------------------------
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 occurance, 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
------------------------------------------------------------
Specifies whether the rule engine uses Loop Container Strategy. Loop Container Strategy will create a Rule container object for rules that form a loop, just as when loops are enabled, so that when sequential rules are executed they are executed as if they are in a loop, but without looping. Default value is false.
com.corticon.reactor.rulebuilder.UseLoopContainerStrategy=false
------------------------------------------------------------
Specifies the amount of time in milliseconds that the Ant build processor will wait before automatically timing out. Default value is 300000 (5 minutes).
com.corticon.BuildWaitTime=300000
------------------------------------------------------------
Properties related to Decision Service/Version level monitoring.
The performance monitoring service can also be shutdown and restarted using the following methods, which will override this setting.
*ICcServer.stopServerPerformanceMonitoringService()
*ICcServer.startServerPerformanceMonitoringService()
com.corticon.server.monitoring.decisionservice.record.times specifies whether the Server will auto-start recording time measurements.
Default value is true
com.corticon.server.monitoring.decisionservice.record.times=true
com.corticon.server.monitoring.decisionservice.record.times.total is the number of execution times to be stored for each Decision Service/Version
Default value is 100
com.corticon.server.monitoring.decisionservice.record.times.total=100
------------------------------------------------------------
Properties related to Decision Service/Version level monitoring.
com.corticon.server.monitoring.decisionservice.record.data specifies whether Corticon Server will auto-start recording time measurements.
The data recording monitoring service can be shutdown and restarted using the following API methods, which will override this setting.
*ICcServer.stopServerResultsDistributionMonitoringService()
*ICcServer.startServerResultsDistributionMonitoringService()
Default value is true.
com.corticon.server.monitoring.decisionservice.record.data=true
com.corticon.server.monitoring.decisionservice.record.data.registration.delimiter specifies the delimiter to use when registering default Tracking Attributes. Default value is ;
com.corticon.server.monitoring.decisionservice.record.data.registration.delimiter=;
com.corticon.server.monitoring.decisionservice.record.data.bucket.registration.delimiter specifies the delimiter to use when registering range buckets for the monitoring service. Default value is ,
com.corticon.server.monitoring.decisionservice.record.data.bucket.registration.delimiter=,
com.corticon.server.monitoring.decisionservice.record.data.bucket.results.delimiter specifies the delimiter to use between bucket definition and bucket counter when reporting results from the monitoring service. Default value is :
com.corticon.server.monitoring.decisionservice.record.data.bucket.results.delimiter=:
------------------------------------------------------------
com.corticon.server.monitoring.decisionservice.trackingattribute.number
=ds name;ds major version number,ds minor version number;tracking attribute;attribute type;bucket definitions
where:
*ds name is the name of the Decision Service to be monitored
*ds major version number is the Major Version number of the Decision Service to be monitored
*ds minor version number is the Minor Version number of the Decision Service to be monitored
*tracking attribute is the fully qualified path to the attribute as defined in Vocabulary
*bucket definitions is the definitions of each bucket in which <tracking attribute> will be evaluated. This is an options field. If null, the Server will keep track of all unique values. Bucket definitions can be distinct values or range values. Range values only apply to <attribute type> Date, Decimal, and Integer.
These values are delineated using values from com.corticon.server.monitoring.decisionservice.base.registration.delimiter.
Bucket definitions are delineated using values from com.corticon.server.monitoring.decisionservice.bucket.registration.delimiter
For example:
com.corticon.server.monitoring.decisionservice.trackingattribute.1
=AllocateTrade;1;1;Trade.transaction.dPrice;Decimal
and
com.corticon.server.monitoring.decisionservice.trackingattribute.1
=AllocateTrade;1;1;Trade.transaction.dPrice;Decimal;<100,[100..200), >= 200
------------------------------------------------------------
Properties that control monitoring execution times of Decision Service/Versions over defined interval periods.
The time interval monitoring service can be shutdown and restarted using the following API methods, which will override this setting.
*ICcServer.stopServerExecutionTimesIntervalService()
*ICcServer.startServerExecutionTimesIntervalService()
com.corticon.server.monitoring.decisionservice.interval.record.times specifies whether Corticon Server will auto-start the recording of time interval measurements. Default value is true
com.corticon.server.monitoring.decisionservice.interval.record.times=true
com.corticon.server.monitoring.decisionservice.interval.record.sleep indicates the number of millisconds that the interval results will be recorded. Default value is 10000 (10 seconds)
com.corticon.server.monitoring.decisionservice.interval.record.sleep=10000
com.corticon.server.monitoring.decisionservice.interval.record.total indicates the number of past intervals that will be stored in memory. Default value is 50
com.corticon.server.monitoring.decisionservice.interval.record.total=50
------------------------------------------------------------
Specifies the delimiter to be used when results from an RPC need to be converted from a Collection to a String. Default value is ;
com.corticon.server.soap.collection.results.delimiter=;
------------------------------------------------------------
Specify if and from where .cdd files get auto-loaded into Corticon Server when it starts up.
This property can be changed using following method, which will override this setting.
*ICcServer.setDeploymentDescriptorDirectoryPath(String)
Default value:  If autoloaddir.enable is true, then Corticon Server will automatically read the path specified in autoloaddir and attempt to reload any Decision Services referenced in any .cdd files it finds there. If false, Corticon Server will not try to reload Decision Services deployed via .cdd files.
If autoloaddir is empty, the following path is used: <user.dir>\cdd where <user.dir> is the value of environment variable user.dir which in Windows and Unix returns the directory where the container application was started.
com.corticon.ccserver.autoloaddir.enable=true
com.corticon.ccserver.autoloaddir=%CORTICON_WORK_DIR%/cdd
------------------------------------------------------------
Specifies whether the Server Execution start and stop times are appended to the CorticonResponse document after ICcServer.execute(String) or ICcServer.execute(Document) 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, 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 many-to-many associations; for many-to-1 associations, the CDOs will always return a direct reference to the singleton HashMap. Default is false
com.corticon.ccserver.cloneAssociationHashSets=false
------------------------------------------------------------
Determines whether Corticon Server will initially load the ServerState.xml file to restore the Corticon Server to its previous state. Default is true
com.corticon.server.serverstate.load=true
------------------------------------------------------------
Determines whether Corticon Server will persist its state inside of the ServerState.xml. By default this feature is turned on. Default is true
com.corticon.server.serverstate.persistchanges=true
------------------------------------------------------------
By default, attributes are checked for null values to prevent invalid operator calls. This property will disable the null checks on attributes used in an extension call out, thereby allowing null values to be passed into an extended operator call.
com.corticon.reactor.rulebuilder.DisableNullCheckingOnExtensions=false
------------------------------------------------------------
Determines whether all href references will be removed from the CorticonResponse in a post process step. This will only occur if the CorticonRequest contains the messageType attribute that tells the CcServer to execute in HIER mode. Default is true
com.corticon.server.execution.post.removehrefs.hier=false
------------------------------------------------------------
Used by the Maintenance Thread to clean up temporary files inside the CcServerSandbox. Default is 10 minutes (600000 ms)
com.corticon.server.tempfile.cleanup.interval=600000
------------------------------------------------------------
Used by the Ruleset Compiler while under .NET. This property will allow the user to use a standard java.exe program to call into the ANT process to compile or to use ikvm.exe with the help of IKVM's OpenJDK. Default is ikvm
com.corticon.server.compile.dotnet.application=ikvm
------------------------------------------------------------
Compile option: Add the Rule Assets to the compiled EDS file. By having the Rule Assets inside the EDS file, new versions of the deployed Decision Service can be made on the Corticon Server. The Rule Assets will be encrypted. Including the Rule Assets in the EDS file will increase the EDS file significantly. Default is false
com.corticon.server.compile.add.ruleassets=false
------------------------------------------------------------
Compile option: Add the Rule Asset's Report to the compiled EDS file. By having the Report inside the EDS file, any user can get the report for a deployed Decision Service through an in-process or a SOAP call to the Corticon Server. Including the Report in the EDS file will increase the EDS file significantly. Default is true
com.corticon.server.compile.add.report=true
------------------------------------------------------------
Compile option: Add the Rule Asset's WSDL to the compiled EDS file. By having the WSDL inside the EDS file, any user can get the WSDL for a deployed Decision Service through an in-process or a SOAP call to the Corticon Server. Including the WSDL in the EDS file will increase the EDS file significantly. Default is true
com.corticon.server.compile.add.wsdl=true
------------------------------------------------------------
Compile option: This property will allow the customer to configure the memory settings that are used to compile the Rule Assets into an EDS file. Default is -Xms256m -Xmx512m
com.corticon.ccserver.compile.memorysettings=-Xms256m -Xmx512m
------------------------------------------------------------
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
------------------------------------------------------------
Options that allow 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.
The property com.corticon.server.execution.xml.rulemessages.messagesinblock defines how many messages will be returned in the output. Default is 5000
com.corticon.server.execution.xml.rulemessages.messagesinblock=5000
The property 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 is 1 (the first block)
com.corticon.server.execution.xml.rulemessages.blocknumber=1
------------------------------------------------------------
Option to relax the enforcement of Custom Data Type Constraints. When set to true, a CDT violation will post a warning message and execution will continue. When set to false, a CDT violation will cause an exception to be thrown halting execution. Default is false
com.corticon.vocabulary.cdt.relaxEnforcement=false
------------------------------------------------------------
Option to prepend rule metadata to the business rule statement text. When set to true, the rulesheet (if part of a ruleflow) and rule ID will be prepended to all business rule statements at deployment/compile time # When set to false, no change is made to the rule statements. Default is false
com.corticon.reactor.rulestatement.metadata=false
------------------------------------------------------------
Option to ignore the xsi:type related to Entities/Associations in an XML Payload. Default is false
com.corticon.xml.xsi.type.ignore=false
------------------------------------------------------------
These properties relate to the server monitor thread and server performance diagnostics.
Option to automatically start and configure the server diagnostic thread when an ICcServer is created in the CcServerFactory
com.corticon.server.startDiagnosticThread=true
Option to enable server diagnostics (requires that the monitor thread has been started.) Default is true
com.corticon.server.EnableServerDiagnostics=true
Wait time (Interval) in milliseconds of the Server Diagnostic Monitor. Default is 30000 - 30 seconds.
com.corticon.server.DiagnosticWaitTime=300000
------------------------------------------------------------
The timeout set on an execution thread waiting for an available Reactor from the Decision Service pool. When the thread's wait time exceeds this property's value, then a CcServerTimeoutException is thrown for that thread. Default value is 180000 milliseconds -- 3 minutes.
com.corticon.server.serverpool.timeout=180000
------------------------------------------------------------
Option to append the version number of the Ruleflow to the compiled .eds file. Default value is true.
com.corticon.server.compile.eds.appendversion=true
------------------------------------------------------------
Option to not add the Entity Name as an xsi:type value for those new Entities that are created 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
------------------------------------------------------------
When a record is retrieved from the database during an EDC execution, standard behavior is to synchronize the retrieved record to what was passed in the payload. If the payload value is null, this property will determine if that null value is set into the retrieved record (true) or if the null value is ignored (false). By default, the null value in the payload will be ignored, and the value from the database will be honored. Default value is false.
com.corticon.server.execution.sync.nulls=false
This property value is the time that an Execution Thread's timeout value. The Execution Thread needs to complete its operation within the time out period, otherwise a CcServerTimeoutException will be thrown. The value is in milliseconds. Default value is 180000 (180000ms = 3 minutes)
com.corticon.server.execution.queue.timeout=180000
------------------------------------------------------------
Specifies whether the XSD and WSDL generators append the word "Type" at the end of each complexType in the related XSD or WSDL file. This was the standard in earlier versions of the generators. Default value is false.
com.corticon.servicecontracts.append.typelabel=false
------------------------------------------------------------
Controls all Service Call-Out (SCO) newEntity calls. When set to true, all entities are added to the work document. When set to false, new entities are prevented from being added to the work document, providing a performance boost when the entities are needed for rule process but are not needed in the result document of the rule service. Default value is true.
com.corticon.services.registerNewSCOEntities=true
------------------------------------------------------------
Controls all new operator calls in rule actions. When set to true, all entities created by rules are added to the work document. When set to false, new entities are prevented from being added to the work document, providing a performance boost when the entities are needed for rule process but are not needed in the result document of the rule service. Default value is true.
com.corticon.reactor.engine.registerNewEntities=true
------------------------------------------------------------
Controls whether null values in the new initializers will create a new entity. When set to true, null values in the new initializers will NOT create a new entity. When set to false, null values in the new initializers WILL create a new entity. Default value is false.
com.corticon.reactor.rulebuilder.ForceAllNullCheckingForNew=false
------------------------------------------------------------