Configuration Settings for Common Production Deployment Scenarios
InRule includes two configuration file sections that affect memory use, rule execution behavior, timeouts, and licensing. The two configuration sections are inrule.runtime and inrule.repository. Most production deployments have both of these sections defined for processes that are hosting the rule engine. The settings for both sections are described below.
Alternatively many of these settings can be configured using AppSettings. If a value is set in both AppSettings and the configuration sections, the AppSettings value will take precedence.
In addition to the summary tables below, the following links provide more detail about specific config file settings in these sections:
- InRule Logging Config File Settings
- Rule Application Cache Settings
- Data Query Cache
- End Point Assemblies Folder
- Execute Query Timeout
- .NET Framework Runtime Config Settings With InRule
For settings that affect logging behavior for the runtime please see InRule Logging Config File Settings.
inrule.runtime Config Section/AppSettings
The runtime settings allow specification of the parameters for runtime rule processing.
Sub Section | Setting Name | AppSettings Key | Description |
catalog RuleApplication |
connectionTimeout | inrule:runtime:catalog RuleApplication: connectionTimeout |
(TimeSpan) The timeout value for a successful Catalog Service connection. If the timeout expires without a successful connection to the Catalog, an exception will be thrown. Default is 00:01:00 (one minute). |
refreshInterval |
inrule:runtime: catalogRuleApplication: refreshInterval |
(TimeSpan) The time interval for refreshing a cached Rule Application Reference from the Catalog. Default is 00:00:30 (30 seconds). |
|
enableBackground Compilation |
inrule:runtime:catalog RuleApplication: enableBackground Compilation |
(boolean) If true, the polling operation to the Catalog to see if a newer rule application version is available and, if applicable, the download, compilation and caching of the new version will be performed on a background thread. Default is false. |
|
ruleEngine | captureLock OwnerStackTrace |
inrule:runtime: ruleEngine: captureLockOwner StackTrace |
(boolean) If true, the engine captures the stack trace of a thread that has become deadlocked during a Rule Application compile. Default is false. |
compiledApplication CacheDepth |
inrule:runtime: ruleEngine:compiled ApplicationCacheDepth |
(integer) Determines the number of unique compiled rule applications that are kept in memory. If this number is exceeded, the oldest compiled rule application is removed from the cache in favor on the newest compiled app. Default is 25. |
|
compileLock AcquisitionTimeout |
inrule:runtime :ruleEngine: compileLockAcquisition Timeout |
(TimeSpan) In case of a deadlock during a Rule Application compile, the amount of time before an exception will be thrown to break the deadlock. Default is 00:30:00 (30 minutes). | |
enableBack groundCompilation |
inrule:runtime: ruleEngine: enableBack groundCompilation |
(boolean) If true, the compilation and caching of a new version, if applicable, will be performed on a background thread. Default is false. |
Example:
<appSettings>
<add key="inrule:runtime:catalogRuleApplication:compiledApplicationCacheDepth" value="25">
<add key="inrule:runtime:catalogRuleApplication:refreshInterval" value="00:00:30">
</appSettings>
OR
<configuration>
<configSections>
<section name="inrule.runtime" type="InRule.Runtime.Configuration.RuntimeConfigSectionHandler, InRule.Runtime" />
...
</configSections>
...
<inrule.runtime>
<ruleEngine compiledApplicationCacheDepth="25" />
<catalogRuleApplication refreshInterval="00:00:30" cachePurgeInterval="00:10:00" />
</inrule.runtime>
inrule.repository Config Section/AppSettings
The repository settings allow specification of the parameters that impact both authoring time and runtime behavior.
Sub Section |
Setting Name |
AppSettings Key |
Description |
assembly |
endPoint |
inrule:repository: |
(string) Denotes the relative path to the directory that contains assemblies referenced within various rule applications. This location is important because it allows the rule engine to load.
Default is "EndPointAssemblies", which is relative from the executing assembly directory. |
licensing |
licenseFolder |
inrule:repository: |
(string) Determines the custom directory where InRule will look to verify the license file.
The search order for the license file is as follows: 1) Current directory where application is running 2) Bin directory (which may be the same as #1) 3) AppData directory (which usually maps to C:\ProgramData\InRule\SharedLicenses) 4) Directory defined by this configuration setting
NOTE: This is the path to the directory containing the license file, NOT the file itself.
Default is null. |
Example:
<appSettings>
<add key="inrule:repository:endPoints:assemblyEndPoint:endPointAssemblyPath" value="EndPointAssemblies">
<add key="inrule:repository:licensing:licenseFolder " value="..\LicenseFile">
</appSettings>
OR
<configuration>
<configSections>
<section name="inrule.repository" type="InRule.Repository.Configuration.RepositoryConfigSectionHandler, InRule.Repository" />
...
</configSections>
...
<inrule.repository>
<endPoints>
<assemblyEndPoint
endPointAssemblyPath="EndPointAssemblies" />
</endPoints>
<licensing licenseFolder="..\LicenseFile" />
</inrule.repository>
Comments
0 comments
Please sign in to leave a comment.