Rule Engine Configuration and Tuning Parameters

The following table contains a list of registry keys that may be useful for configuration validation and troubleshooting. These registry keys are stored under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BusinessRules\3.0.

With the exception of the first three keys listed, these keys are intended to allow products—and not users—to customize the rule engine. All of them are created upon installation; however, no interface is provided to set any of these values.

The definitions for the table columns are as follows:

  • Name. Name of the registry key.

  • Description. A brief description about the location or use of the key.

  • Config default. Value returned if the key does not exist.

  • Install default. Value set by BizTalk Server when installing the rule engine.

Name Description Config default Install default
InstallPath Location of BRE files that is used at the configuration time. (null) C:\Program Files\Common Files\Microsoft BizTalk (or C:\Program Files (x86)\Common Files\Microsoft BizTalk on a 64-bit operating system)
DatabaseServer Database server used. (empty string) Name of the database server specified during configuration of BRE.
DatabaseName Name of database to be used. (empty string) Name of the database specified during configuration of BRE. Typically, it is BizTalkRuleEngineDb
PubSubAdapterAssembly Assembly name of pub/sub adapter. Microsoft.RuleEngine Microsoft.RuleEngine
PubSubAdapterClass Class name of pub/sub adapter. Microsoft.RuleEngine.PubSubAdapter Microsoft.RuleEngine.PubSubAdapter
DeploymentDriverAssembly Assembly name of deployment driver. Microsoft.RuleEngine Microsoft.BizTalk.RuleEngineExtensions
DeploymentDriverClass Class name of deployment driver. Microsoft.RuleEngine.RuleSetDeploymentDriver Microsoft.BizTalk.RuleEngineExtensions.RuleSetDeploymentDriver
TrackingInterceptorAssembly Assembly name of tracking interceptor. (empty string) Microsoft.BizTalk.RuleEngineExtensions
TrackingInterceptorClass Class name of tracking interceptor. (empty string) Microsoft.BizTalk.RuleEngineExtensions.RuleSetTrackingInterceptor
TranslationTimeout Maximum time in milliseconds that can be used to translate a ruleset. Note: This can be overridden on a per-ruleset basis by using the RuleSetConfiguration). 60000 (1 minute) 60000
UpdateServiceName Name of the Update service, used by .NET remoting to locate the service. RemoteUpdateService RemoteUpdateService
UpdateServiceHost Computer hosting the Update service, used by .NET remoting to locate the service. Note: The service currently restricts incoming messages to same machine only. localhost localhost
UpdateServicePort TCP port number used by the Update service, used by .NET remoting to locate the service. 3132 3132
CacheEntries Maximum number of rulesets cached by the Update service. 32 32
CacheTimeout Time in seconds for entries to age out of the Update service cache. 3600 (1 hour) 3600
PollingInterval Time in seconds for the Update service to check SqlRuleStore for updates. 60 (1 minute) 60
SqlTimeout Timeout value for SQL commands that access the SQL rule store. The value for this key is interpreted as follows:

< 0 - Uses the .NET default value (30 seconds)

= 0 - Unlimited timeout

> 0 - Maximum time for a query before it times out
-1 -1

You can also add a registry key named StaticSupport as mentioned in Invoking Static Members of a Class.

The registry settings are global for all applications that host a rule engine instance. You can override these registry settings at an application level by using the application configuration file. For BizTalk Server applications, the host application is the BTSNTSvc.exe and the configuration file is the BTSNTSvc.exe.config, which you can find in the BizTalk Server installation directory. You need to specify the values for the configuration parameters that you want to override in the application configuration file as show below:

<configuration>  
    <configSections>  
        <section name="Microsoft.RuleEngine" type="System.Configuration.SingleTagSectionHandler" />  
    </configSections>  
    <Microsoft.RuleEngine  
        UpdateServiceHost="localhost"  
        UpdateServicePort="3132"  
        UpdateServiceName="RemoteUpdateService"  
        CacheEntries="32"  
        CacheTimeout="3600"  
        PollingInterval="60"  
        TranslationTimeout="3600"  
        CachePruneInterval="60"  
        DatabaseServer="(localhost)"  
        DatabaseName="BizTalkRuleEngineDb"  
        SqlTimeout="-1"  
        StaticSupport="1"  
    />  
</configuration>