更改PAM使用的数据库的方法(适用于PostgreSQL)
红帽流程自动化管理器(PAM)默认情况下支持使用H2DB。
H2DB是一个用Java实现的轻量级内存数据库,但不建议在生产环境中使用。
在正式进行开发之前,让我们修改数据库。
以下的数据库DDL脚本可以下载。
-
- DB2
-
- H2
-
- MySQL
-
- Oracle
-
- PostgreSQL
-
- SQLServer
- Sybase
总体的流程
我们假设PAM已经部署在EAP上,并且已经成功启动。有关在本地构建环境的方法,请参考以下文章或相关资料。以下是在本地创建PAM开发环境并进行尝试的步骤。
-
- 下载所需内容(DDL脚本、JDBC驱动程序,如果没有,则还需要下载数据库本身)
-
- 安装数据库
-
- 运行DDL脚本
-
- 将JDBC驱动程序注册到EAP模块
- 更改PAM的默认数据库设置
在这里的前提是
数据库使用PostgreSQL(版本为13.1)。
需要的东西
-
- DB本体
各自入手ください。PostgreSQLはこのあたりからダウンロード https://www.postgresql.jp/download
macの場合、Homebrewでインストール可(バージョン13の場合の例)
$ brew install postgresql@13
-
- DDLスクリプト(以下の製品のadd-onのzip内に各DB用のDDLスクリプトが含まれています)
https://developers.redhat.com/download-manager/file/rhpam-7.8.0-add-ons.zip
JDBCドライバ
各自入手ください。postgresql用はこのあたりなど。
https://jdbc.postgresql.org/download.html
DB用GUIツール(pgadmin,Object Browser等、無くてもよいが、あったほうが便利)
ここではpgadmin使いました。pgadminはこちらからダウンロード https://www.pgadmin.org/download/
详细解释步骤
在这里,我们将省略DB本体和pgadmin的安装方法。
执行DDL脚本
有很多,在新建时所需的是postgresql-jbpm-schema.sql。
安装并启动数据库后,让我们创建用户。(如果尚未执行此步骤)
以下是在Mac上的示例。
// PostgreSQLインストール
$ brew install postgresql
// バージョン確認
$ psql --version
// postgresql起動
$ brew services start postgresql
// ユーザ作成
$ createuser -s -P ユーザ名
首先,我們會建立一個專為PAM設計的資料庫。
$ createdb DATABASE_NAME
或者,通过psql连接,运行命令# create database DATABASE_NAME
接下来,我们将执行DDL脚本。
$ psql DATABASE_NAME < /解凍したDDLスクリプトのパス/postgresql-jbpm-schema.sql
生成了各种表(约40个)和索引等。
这样,PAM数据库就完成了。
中国有很多桌子,但只有其中一部分经常被使用。
从表的名称可以大致猜测出表中存放的数据类型。
将JDBC驱动程序注册为EAP模块
接下来,我们将把JDBC驱动程序注册到EAP中。
这里,我们将介绍使用CLI的方法(也可以通过管理控制台进行)。
CLI工具是/EAP_HOME/bin/jboss-cli.sh。
$ ./EAP_HOME/bin/jboss-cli.sh
打开CLI后,执行以下的module add命令,以添加模块。
module add --name=MODULE_NAME --resources=PATH_TO_JDBC_JAR --dependencies=DEPENDENCIES
// 以下は例
module add --name=org.postgresql --resources=/path/postgresql-42.2.18.jar --dependencies=javax.api,javax.transaction.api
接下来,同样使用CLI执行以下命令,注册JDBC驱动程序。
/subsystem=datasources/jdbc-driver=DRIVER_NAME:add(driver-name=DRIVER_NAME,driver-module-name=MODULE_NAME,driver-xa-datasource-class-name=XA_DATASOURCE_CLASS_NAME, driver-class-name=DRIVER_CLASS_NAME)
// 以下は例
/subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql,driver-module-name=org.postgresql,driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource))
在添加驱动模块时,确保驱动模块名称与添加模块时的名称相匹配。
现在,让我们来创建数据源。
我们将使用CLI来创建数据源。有非XA和XA两种类型可供选择。在这里,我们将创建非XA数据源。
如果与PAM协同的应用程序的数据库位于其他地方,且需要进行两阶段提交,则需要创建XA数据源。
data-source add --name=DATASOURCE_NAME --jndi-name=JNDI_NAME --driver-name=DRIVER_NAME --connection-url=CONNECTION_URL
// 以下は例
data-source add --name=PostgresDS --jndi-name=java:jboss/PostgresDS --driver-name=postgresql --connection-url=jdbc:postgresql://localhost:5432/postgresdb --user-name=admin --password=admin
更改PAM的默认数据库设置
最后,将PAM的默认数据库更改为H2DB。请编辑/EAP_HOME/standalone/configuration/standalone-full.xml文件。
在系统属性的设置位置中,搜索以下属性并将值编辑如下。
如果以下属性不存在,则添加它们。
– org.kie.server.persistence.ds
– org.kie.server.persistence.dialect
<system-properties>
・・・
<property name="org.kie.server.persistence.ds" value="java:jboss/PostgresDS"/>
<property name="org.kie.server.persistence.dialect" value="org.hibernate.dialect.PostgreSQL82Dialect"/>
・・・
</system-properties>
通过EAP重新启动,PostgreSQL将成为默认数据库。