81.2. 规则基础配置


Red Hat Process Automation Manager 包含一个 RuleBaseConfiguration.java 对象,可用于在决策引擎中配置异常处理程序设置、多线程执行和顺序模式。

对于规则基础配置选项,请从红帽客户门户网站下载 Red Hat Process Automation Manager 7.9.1 Source Distribution ZIP 文件,再进入到 ~/rhpam-7.9.1-sources/src/drools-$VERSION/drools-core/src/main/java/org/drools/core/RuleBaseConfiguration.javahttps://access.redhat.com/jbossnetwork/restricted/listSoftware.html

以下规则基本配置选项可用于决策引擎:

drools.consequenceExceptionHandler

配置后,此系统属性定义管理规则结果的异常的类。您可以使用此属性为决策引擎中的规则评估指定自定义异常处理程序。

默认值: org.drools.core.runtime.rule.impl.DefaultConsequenceExceptionHandler

您可以使用以下选项之一指定自定义异常处理程序:

  • 在系统属性中指定异常处理程序:

    drools.consequenceExceptionHandler=org.drools.core.runtime.rule.impl.MyCustomConsequenceExceptionHandler
  • 以编程方式创建 KIE 基础时指定异常处理程序:

    KieServices ks = KieServices.Factory.get();
    KieBaseConfiguration kieBaseConf = ks.newKieBaseConfiguration(); kieBaseConf.setOption(ConsequenceExceptionHandlerOption.get(MyCustomConsequenceExceptionHandler.class));
    KieBase kieBase = kieContainer.newKieBase(kieBaseConf);
drools.multithreadEvaluation

启用后,此系统属性可让决策引擎通过将 Phreak 规则网络划分为独立分区来并行评估规则。您可以使用此属性提高特定规则基础的规则评估速度。

默认值:false

您可以使用以下选项之一启用多线程评估:

  • 启用多线程评估系统属性:

    drools.multithreadEvaluation=true
  • 在以编程方式创建 KIE 基础时启用多线程评估:

    KieServices ks = KieServices.Factory.get();
    KieBaseConfiguration kieBaseConf = ks.newKieBaseConfiguration();
    kieBaseConf.setOption(MultithreadEvaluationOption.YES);
    KieBase kieBase = kieContainer.newKieBase(kieBaseConf);
警告

并行决策引擎目前不支持使用查询、风险或电缆组的规则。如果 KIE 基础中存在这些规则元素,编译器会发出警告并自动切回到单线程评估。然而,在某些情况下,决策引擎可能无法检测到不支持的规则元素和规则被错误地评估。例如,决策引擎可能无法检测规则何时依赖于 DRL 文件中的规则排序,从而导致因为不受支持的 salience 属性而产生错误的评估。

drools.sequential

启用后,这个系统属性会在决策引擎中启用后续模式。在后续模式中,决策引擎会按照决策引擎人员中列出的顺序来一次评估规则,而无需考虑工作内存中的更改。这意味着,决策引擎会忽略规则中的任何 插入修改 或更新 语句,并在单个序列中执行规则。因此,执行规则可能会更快,但重要的更新可能不适用于您的规则。如果您使用无状态 KIE 会话,并且您不希望执行规则来影响发票中的后续规则,您可以使用此属性。后续模式只适用于无状态 KIE 会话。

默认值:false

您可以使用以下选项之一启用后续模式:

  • 启用后续模式系统属性:

    drools.sequential=true
  • 在以编程方式创建 KIE 基础时启用后续模式:

    KieServices ks = KieServices.Factory.get();
    KieBaseConfiguration kieBaseConf = ks.newKieBaseConfiguration();
    kieBaseConf.setOption(SequentialOption.YES);
    KieBase kieBase = kieContainer.newKieBase(kieBaseConf);
  • 在 KIE 模块描述符文件(kmodule.xml)中为特定 Red Hat Process Automation Manager 项目启用后续模式:

    <kmodule>
      ...
      <kbase name="KBase2" default="false" sequential="true" packages="org.domain.pkg2, org.domain.pkg3" includes="KBase1">
        ...
      </kbase>
      ...
    </kmodule>
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部