37.2. 配置 JDBC Web 服务器数据源


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

先决条件

  • Red Hat Process Automation Manager 安装在 Red Hat JBoss Web Server 上。
  • Red Hat Process Automation Manager 7.9.x Maven Repository (rhpam-7.9.1-maven-repository.zip)和 Red Hat Process Automation Manager 7.9.x Add-Ons (rhpam-7.9.1-add-ons.zip)文件已被下载,如 第 35 章 下载 Red Hat Process Automation Manager 安装文件 所述。
  • 您需要配置以下支持的数据库和 Hibernate 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
    • Sybase: org.hibernate.dialect.SybaseASE157Dialect

流程

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

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

      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

  2. 提取 rhpam-7.9.1-maven-repository.zip 离线 Maven 存储库文件。
  3. 将以下库从提取的离线 Maven 存储库复制到 JWS_HOME/tomcat/lib 文件夹,其中 VERSION 是该库的版本:

    org/jboss/spec/javax/transaction/jboss-transaction-api_1.2_spec/{VERSION}/jboss-transaction-api_1.2_spec-{VERSION}.jar
    org/jboss/integration/narayana-tomcat/{VERSION}/narayana-tomcat-{VERSION}.jar
    org/jboss/narayana/jta/narayana-jta/{VERSION}/narayana-jta-{VERSION}.jar
    org/jboss/jboss-transaction-spi/{VERSION}/jboss-transaction-spi-{VERSION}.jar
    Copy to Clipboard Toggle word wrap
  4. 将数据库 JDBC 驱动程序复制到 JWS_HOME/tomcat/lib 文件夹。
  5. JWS_HOME/tomcat/conf/context.xml 文件中配置池 XA 数据源:

    注意

    以下示例中的一些属性可能不适用于您的数据库服务器。检查 JDBC 驱动程序的文档,以确定要设置哪些属性。

    1. 配置没有池功能的 XA 数据源。此 XA 数据源用于创建到目标数据库的新连接。在以下示例中,XA 数据源是 xads,变量在 表 37.1 “XA 数据源变量” 中定义:

      <?xml version="1.0" encoding="UTF-8"?>
      <Context>
      <Resource
      auth="Container"
      databaseName="${datasource.dbName}"
      description="XA Data Source"
      factory="org.apache.tomcat.jdbc.naming.GenericNamingResourcesFactory" loginTimeout="0"
      name="xads"
      uniqueName="xads"
      portNumber="${datasource.port}"
      serverName="${datasource.hostname}"
      testOnBorrow="false"
      type="${datasource.class}"
      url="${datasource.url}"
      URL="${datasource.url}"
      user="${datasource.username}"
      password="${datasource.password}"
      driverType="4"
      schema="${datasource.schema}"
      />
      </Context>
      Copy to Clipboard Toggle word wrap
      Expand
      表 37.1. XA 数据源变量
      变量描述

      <datasource.dbName>

      数据库的名称。

      <datasource.port>

      数据库的端口号。

      <datasource.hostname>

      数据库主机的名称。

      <datasource.class>

      JDBC 驱动程序的 XADataSource 类。

      <datasource.url>

      JDBC 数据库连接 URL。对于某些数据库,URL 属性是 url,其他数据库(如 H2 数据库)此属性是 URL

      <datasource.username>

      数据库连接的用户名。

      <datasource.password>

      数据库连接的密码。

      <datasource.schema>

      数据库架构。

    2. 配置一个池数据源,它依赖于 XA 数据源创建新连接。在本例中,数据源是 poolingXaDs,&lt;datasource.username > 是数据库连接的用户名,&lt ;datasource.password > 是数据库连接的密码:

      <?xml version="1.0" encoding="UTF-8"?>
      <Context>
      <Resource
      name="poolingXaDs"
      uniqueName="poolingXaDs"
      auth="Container"
      description="Pooling XA Data Source" factory="org.jboss.narayana.tomcat.jta.TransactionalDataSourceFactory" testOnBorrow="true"
      transactionManager="TransactionManager" transactionSynchronizationRegistry="TransactionSynchronizationRegistry" type="javax.sql.XADataSource"
      username="${datasource.username}"
      password="${datasource.password}"
      xaDataSource="xads"
      />
      </Context>
      Copy to Clipboard Toggle word wrap

      数据源现在位于 java:comp/env/poolingXaDs JNDI 名称下,并通过 org.kie.server.persistence.ds 系统属性将其传递给 KIE 服务器,如下一步所述。

      注意

      池数据源配置依赖于之前在 kie-server 应用的 context.xml 文件中配置的其他资源,特别是 TransactionManagerTransactionSynchronizationRegistry

  6. 将 KIE 服务器配置为使用数据源:

    1. 在文本编辑器中打开以下脚本之一:

      注意

      setenv.shsetenv.bat 脚本应该已经存在。但是,如果没有,请创建它。

      • 对于 Linux 或 Unix:

        JWS_HOME/tomcat/bin/setenv.sh
        Copy to Clipboard Toggle word wrap
      • 对于 Windows:

        JWS_HOME/tomcat/bin/setenv.bat
        Copy to Clipboard Toggle word wrap
    2. CATALINA_OPS 中添加以下属性,其中 & lt;hibernate.dialect > 是数据库的 Hibernate dialect:

      CATALINA_OPTS="-Xmx1024m
      -Dorg.jboss.logging.provider=jdk
      -Dorg.kie.server.persistence.ds=java:comp/env/poolingXaDs
      -Dorg.kie.server.persistence.tm=JBossTS
      -Dorg.kie.server.persistence.dialect=${<hibernate.dialect>}"
      Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat