1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PAMで利用するDBを変更する方法(PostgreSQLの場合)

Last updated at Posted at 2020-12-08

Red Hat Process Automation Manager (PAM) は、デフォルトでは、H2DBを使うことができるようになっています。
H2DBは、Javaで実装された、軽量なインメモリデータベースですが、本番で使うことは推奨されていません。

本格的な開発に入る前に、DBを変更しましょう。

以下のDB用のDDLスクリプトがダウンロード可能になっています。

  • DB2
  • H2
  • MySQL
  • Oracle
  • PostgreSQL
  • SQLServer
  • Sybase

大まかな流れ

PAMがEAP上にデプロイされ、正常起動する状態を前提とします。ローカルへの環境構築方法は以下記事等を参照ください。
PAMの開発環境をローカルで作成して触ってみるための手順

  1. 必要なものをダウンロード(DDLスクリプト、JDBCドライバ、なければDB本体も)
  2. DBをインストール
  3. DDLスクリプトを流す
  4. JDBCドライバをEAPにモジュール登録
  5. PAMのデフォルトDB設定を変更

ここでの前提

DBはPostgerSQLを使います(バージョンは13.1)

必要なもの

  • DB本体
    • 各自入手ください。PostgreSQLはこのあたりからダウンロード https://www.postgresql.jp/download
    • macの場合、Homebrewでインストール可(バージョン13の場合の例)
$ brew install postgresql@13

手順を詳細解説

**DB本体のインストール方法、pgadminのインストール方法は、ここでは省略します。

DDLスクリプトを流す

DDLスクリプトが含まれている、add-ons.zipを解凍すると、複数のzipが出来ます。その中の「rhpam-7.x.x-migration-tool.zip」を更に解凍します。
すると、ddl-scriptsフォルダが出来ます。そこに各DB用のDDLスクリプトがあります。
スクリーンショット.png

たくさんありますが、新規作成時に必要なのは、postgresql-jbpm-schema.sql です。

DBをインストールして起動したら、ユーザを作りましょう。(まだやっていない場合)
以下は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用のデータベースが完成です。

pgadmin等でアクセスして、中身(データは空です)を確認してみましょう。
バージョン7.9では、以下のテーブルが作成されました。
スクリーンショット.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))

driver-module-nameとmodule addした際のnameを一致させます。

さて、次に、データソースを作成します。
CLIでデータソースを作成します。non-XAとXAとがあります。ここでは、non-XAデータソースを作成します。
PAMと連携するアプリケーション側のDBが他のところにあり、2フェーズコミットが必要になる場合は、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のデフォルトDB設定を変更する

最後に、PAMのデフォルトDBが、H2DBになっているので、それを変更します。
/EAP_HOME/standalone/configuration/standalone-full.xmlを編集します。

system-propertiesの設定箇所で、以下のプロパティを探し、valueを以下のように編集します。
以下プロパティがない場合は、追加します。

  • org.kie.server.persistence.ds
  • org.kie.server.persistence.dialect
standalone-full.xml
<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がデフォルトDBになります。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?