第 5 章 为 KIE 服务器配置 JDBC 数据源


数据源是一种对象,它允许 Java 数据库连接(JDBC)客户端(如应用服务器)与数据库建立连接。应用程序在 Java 命名和目录接口(JNDI)树或本地应用程序上下文中查找数据源,并请求数据库连接来检索数据。您必须为 KIE 服务器配置数据源,以确保服务器与指定数据库之间的正确数据交换。

通常,使用红帽流程自动化管理器的解决方案在单个事务中管理多个资源。JMS 用于异步作业、事件和计时器,例如:Red Hat Process Automation Manager 尽可能在数据源中有一个 XA 驱动程序,以确保数据原子性和结果一致。如果不同架构的事务代码存在于监听器内,或源自 jBPM 引擎提供的 hook,则还需要 XA 驱动程序。

除非您没有参与单个事务的多个资源,否则不要使用非 XA 数据源。

注意

对于生产环境,指定实际的数据源。不要在生产环境中使用示例数据源。

先决条件

  • 您要用于创建数据库连接的 JDBC 提供程序是在您要在其上部署 KIE 服务器的所有服务器上配置的,如 Red Hat JBoss Enterprise Application Server Configuration Guide 的 "Creating Datasources" 和 "JDBC Drivers 部分所述。
  • Red Hat Process Automation Manager 7.12.0 Add Ons (rhpam-7.12.0-add-ons.zip)文件是从红帽客户门户网站中的 Software Downloads 页面下载。

流程

  1. 完成以下步骤以准备数据库:

    1. rhpam-7.12.0-add-ons.zip 提取到临时目录中,如 TEMP_DIR
    2. 提取 TEMP_DIR/rhpam-7.12.0-migration-tool.zip
    3. 将您的当前目录更改为 TEMP_DIR/rhpam-7.12.0-migration-tool/ddl-scripts 目录。此目录包含多种数据库类型的 DDL 脚本。
    4. 将数据库类型的 DDL 脚本导入到您要使用的数据库中。

      以下示例在 PostreSQL 中创建 jBPM 数据库结构
      psql jbpm < /ddl-scripts/postgresql/postgresql-jbpm-schema.sql
      Copy to Clipboard Toggle word wrap
      注意

      如果您将 PostgreSQL 或 Oracle 与 Spring Boot 结合使用,您必须导入相应的 Spring Boot DDL 脚本,如 /ddl-scripts/oracle/oracle-springboot-jbpm-schema.sql/ddl-scripts/postgresql/postgresql-springboot-jbpm-schema.sql

      注意

      PostgreSQL DDL 脚本创建 PostgreSQL 模式,其中包含标有 @LOB 的实体属性的自动递增整数值(OID)列。要使用其他二进制列类型,如 BYTEA 而不是 OID,您必须使用 postgresql-bytea-jbpm-schema.sql 脚本创建 PostgreSQL 模式,并设置 Red Hat Process Automation Manager org.kie.persistence.postgresql.useBytea=true 标志。Red Hat Process Automation Manager 不提供从基于 OID 变为基于 BYTEA 模式的迁移工具。

  2. 在文本编辑器中打开 EAP_HOME/standalone/configuration/standalone-full.xml,并找到 < system-properties> 标签。
  3. 在 < system-properties > 标签中添加以下属性,其中 & lt;DATASOURCE > 是数据源的 JNDI 名称,< HIBERNATE_DIALECT > 是数据库的休眠。

    注意

    org.kie.server.persistence.ds 属性的默认值为 java:jboss/datasources/ExampleDSorg.kie.server.persistence.dialect 属性的默认值为 org.hibernate.dialect.H2Dialect

    <property name="org.kie.server.persistence.ds" value="<DATASOURCE>"/>
    <property name="org.kie.server.persistence.dialect" value="<HIBERNATE_DIALECT>"/>
    Copy to Clipboard Toggle word wrap

    以下示例演示了如何为 PostgreSQL hibernate dialect 配置数据源:

    <system-properties>
        <property name="org.kie.server.repo" value="${jboss.server.data.dir}"/>
        <property name="org.kie.example" value="true"/>
        <property name="org.jbpm.designer.perspective" value="full"/>
        <property name="designerdataobjects" value="false"/>
        <property name="org.kie.server.user" value="rhpamUser"/>
        <property name="org.kie.server.pwd" value="rhpam123!"/>
        <property name="org.kie.server.location" value="http://localhost:8080/kie-server/services/rest/server"/>
        <property name="org.kie.server.controller" value="http://localhost:8080/business-central/rest/controller"/>
        <property name="org.kie.server.controller.user" value="kieserver"/>
        <property name="org.kie.server.controller.pwd" value="kieserver1!"/>
        <property name="org.kie.server.id" value="local-server-123"/>
    
        <!-- Data source properties. -->
        <property name="org.kie.server.persistence.ds" value="java:jboss/datasources/KieServerDS"/>
        <property name="org.kie.server.persistence.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
    </system-properties>
    Copy to Clipboard Toggle word wrap

支持以下 dialects:

  • DB2: org.hibernate.dialect.DB2Dialect
  • MSSQL: org.hibernate.dialect.SQLServer2012Dialect
  • MySQL: org.hibernate.dialect.MySQL5InnoDBDialect
  • mariadb: org.hibernate.dialect.MySQL5InnoDBDialect
  • Oracle: org.hibernate.dialect.Oracle10gDialect
  • PostgreSQL: org.hibernate.dialect.PostgreSQL82Dialect
  • PostgreSQL 加上: org.hibernate.dialect.PostgresPlusDialect
  • archive: org.hibernate.dialect.SybaseASE157Dialect
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat