【问题标题】:Is the DROOLS Kie Scanner preserving the stateful Kie Session content when upgrading the Kie Container?升级 Kie Container 时,DROOLS Kie Scanner 是否保留有状态的 Kie Session 内容?
【发布时间】:2020-11-11 22:11:44
【问题描述】:

我正在使用 Kie 版本 7.45.0-Final 在我的应用程序中,我有一个有状态的 Kie Session 正在运行(它以 session.fireUntilHalt() 调用开始)。还有一个 KieScanner 实例运行和监控外部 Maven 存储库,在 pom.xml 和 settings.xml 文件中配置。 当检测到更改时,kieScanner 会正确部署新版本。 在会话工作内存中有超过 150 万个事实,当 kieScanner 部署新规则集时,会话内容被保留。 但是 2.2.8 中的 Drools documentation 说:

如果 KIE 扫描器在指定的 KIE 容器中检测到 SNAPSHOT 项目的更新版本,则 KIE 扫描器会自动下载新项目版本并触发新项目的增量构建。从那时起,所有从 KIE 容器创建的新 KieBase 和 KieSession 对象都使用新的项目版本。

我对上一句的理解是,你必须创建一个新的 Session 才能使新版本生效。 但这不是真的,Session 内容没有被触及,并且在 kieScanner 部署后新规则处于活动状态。这种行为对我的应用程序至关重要,因为启动一个新的 Session 并重新加载所有的事实会太耗时。我想确定我可以相信这种行为,并且手册(或我的解释)是错误的。

对此的任何见解都会有所帮助。

谢谢

【问题讨论】:

    标签: drools


    【解决方案1】:

    让我澄清一下文档中的那句话。

    从那一刻起,

    (阅读:KieScanner 完成增量构建的时刻)

    所有新创建的 KieBase 和 KieSession 对象

    (阅读:所有新的 KieBase 和 KieSession 都是在任何时候从更新的 KieContainer 创建的,甚至在 KieScanner 执行增量构建之前)

    从 KIE 容器中使用新的项目版本。

    【讨论】:

    • 感谢马里奥,您的回答阐明了主题。
    猜你喜欢
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多