InRule Runtime Config File Settings

  • Updated

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:

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  

endPoint
AssemblyPath  

inrule:repository:
endPoints:assembly
EndPoint:endPointAssemblyPath  

(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:
licensing:licenseFolder

(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>

 

Was this article helpful?

0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.