更改PAM使用的数据库的方法(适用于PostgreSQL)

红帽流程自动化管理器(PAM)默认情况下支持使用H2DB。
H2DB是一个用Java实现的轻量级内存数据库,但不建议在生产环境中使用。

在正式进行开发之前,让我们修改数据库。

以下的数据库DDL脚本可以下载。

    • DB2

 

    • H2

 

    • MySQL

 

    • Oracle

 

    • PostgreSQL

 

    • SQLServer

 

    Sybase

总体的流程

我们假设PAM已经部署在EAP上,并且已经成功启动。有关在本地构建环境的方法,请参考以下文章或相关资料。以下是在本地创建PAM开发环境并进行尝试的步骤。

    1. 下载所需内容(DDL脚本、JDBC驱动程序,如果没有,则还需要下载数据库本身)

 

    1. 安装数据库

 

    1. 运行DDL脚本

 

    1. 将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脚本

スクリーンショット.png

有很多,在新建时所需的是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数据库就完成了。

スクリーンショット.png

中国有很多桌子,但只有其中一部分经常被使用。
从表的名称可以大致猜测出表中存放的数据类型。

将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将成为默认数据库。

广告
将在 10 秒后关闭
bannerAds