jBPM 持久化和事务2024 年 8 月 29 日 | 4 分钟阅读 jBPM 允许存储某些信息。 jBPM 持久化是一种运行时持久化,它会持久化所有进程实例的状态以及在进程运行时发生的日志审计信息。 持久化的主要目的是在等待状态期间存储进程执行。 本节介绍不同类型的持久化以及如何配置它们。 运行时状态持久化当一个进程启动时,会立即创建其实例,该实例表示在该特定上下文中的当前执行状态。 如果在进程执行期间出现问题,则需要存储进程的运行时状态,这有助于继续执行进程实例。 例如,当我们执行销售订单的流程时,会为每个销售请求创建一个进程实例。 jBPM 为不同的持久化策略提供了插件。 正在执行的进程的运行时状态可以设置为持久化。 持久化策略允许在发生意外故障时恢复所有正在运行的进程的执行状态。 要使用持久化,我们必须配置流程引擎。 此配置将自动将运行时状态存储到数据库中。 我们无法自行触发持久化。 当持久化启用时,流程引擎将处理此问题。 引擎将根据需要自动重新加载流程实例。 二进制持久化二进制持久化机制用于将进程状态实例信息转换为二进制数据集。 此机制用于从数据库保存或检索进程实例状态。 在二进制持久化中,当进程实例状态被持久化时会发生两件事:
审计日志jBPM 审计日志使用 JPA 在数据库中存储执行信息的历史日志。 在许多情况下,存储有关流程实例执行的信息非常有用,以便以后可以使用这些信息。 例如,有时我们需要:
执行信息的历史日志是基于事件创建的。 这是可能的,因为 jBPM 运行时引擎提供了一种适当的机制来侦听事件。 必要的信可以从这些事件中轻松提取,然后持久化到数据库。 交易jBPM 流程引擎支持 JTA(Java 事务 API)事务。 它还通过使用 Spring 支持本地事务,但不支持纯本地事务。 在 jBPM 中,有必要在我们的应用程序中提供事务边界。 如果我们没有在我们的应用程序中提供事务边界,引擎将自动在单独的事务中调用每个执行方法。 但是,我们也可以指定事务边界本身。 这允许我们将多个命令组合到一个事务中。 要创建用户定义的事务,我们需要在环境中注册一个事务管理器。 以下示例代码了解如何创建事务管理器。 持久化配置可以通过配置流程引擎来使用持久化。 持久化配置需要添加必要的依赖项、配置数据源以及创建已配置了持久化的引擎。 添加依赖项如果我们正在使用 jBPM Eclipse 插件,我们必须确保将必要的 JAR 添加到我们的 jBPM 运行时目录中。 我们可以手动将必要的依赖项添加到我们的项目中。 要手动添加依赖项,请执行以下步骤:
手动配置引擎以使用持久性配置流程引擎,使用基于知识库、知识会话配置和环境的 JPAKnowledgeService 创建一个新的知识会话。 例如:下一主题jBPM 组件 |
我们请求您订阅我们的新闻通讯以获取最新更新。