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
-
DB2:
流程
完成以下步骤以准备您的数据库:
-
将
rhpam-7.9.1-add-ons.zip提取到临时目录中,如TEMP_DIR。 -
Extract
TEMP_DIR/rhpam-7.9.1-migration-tool.zip. -
将您的当前目录更改为
TEMP_DIR/rhpam-7.9.1-migration-tool/ddl-scripts目录。此目录包含多个数据库类型的 DDL 脚本。 将数据库类型的 DDL 脚本导入到您要使用的数据库中,例如:
psql jbpm < /ddl-scripts/postgresql/postgresql-jbpm-schema.sql
psql jbpm < /ddl-scripts/postgresql/postgresql-jbpm-schema.sqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您将 PostgreSQL 或 Oracle 与 Spring Boot 结合使用,您必须导入相应的 Spring Boot DDL 脚本,例如
/ddl-scripts/oracle/oracle-springboot-jbpm-schema.sql或/ddl-scripts/postgresql/postgresql-springboot-jbpm-schema.sql。
-
将
-
提取
rhpam-7.9.1-maven-repository.zip离线 Maven 存储库文件。 将以下库从提取的离线 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}.jarorg/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}.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将数据库 JDBC 驱动程序复制到
JWS_HOME/tomcat/lib文件夹。 在
JWS_HOME/tomcat/conf/context.xml文件中配置池 XA 数据源:注意以下示例中的一些属性可能不适用于您的数据库服务器。检查 JDBC 驱动程序的文档,以确定要设置哪些属性。
配置没有池功能的 XA 数据源。此 XA 数据源用于创建到目标数据库的新连接。在以下示例中,XA 数据源是
xads,变量在 表 37.1 “XA 数据源变量” 中定义:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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>数据库架构。
配置一个池数据源,它依赖于 XA 数据源创建新连接。在本例中,数据源是
poolingXaDs,<datasource.username> 是数据库连接的用户名,<datasource.password> 是数据库连接的密码:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 数据源现在位于
java:comp/env/poolingXaDsJNDI 名称下,并通过org.kie.server.persistence.ds系统属性将其传递给 KIE 服务器,如下一步所述。注意池数据源配置依赖于之前在
kie-server应用的context.xml文件中配置的其他资源,特别是TransactionManager和TransactionSynchronizationRegistry。
将 KIE 服务器配置为使用数据源:
在文本编辑器中打开以下脚本之一:
注意setenv.sh或setenv.bat脚本应该已经存在。但是,如果没有,请创建它。对于 Linux 或 Unix:
JWS_HOME/tomcat/bin/setenv.sh
JWS_HOME/tomcat/bin/setenv.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 Windows:
JWS_HOME/tomcat/bin/setenv.bat
JWS_HOME/tomcat/bin/setenv.batCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在
CATALINA_OPS中添加以下属性,其中 <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>}"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 Copied! Toggle word wrap Toggle overflow