第4章 KIE Server ZIP ファイルのインストールと設定
カスタマーポータルの Red Hat Process Automation Manager 7.8.0 Add Ons (rhpam-7.8.0-add-ons.zip
) から入手できる rhpam-7.8.0-kie-server-jws.zip
ファイルを使用して KIE Server をインストールし、Java Database Connectivity (JDBC) の Web server データソースを Red Hat JBoss Web Server に設定します。
4.1. ZIP ファイルからの KIE Server のインストール
KIE Server はビジネスアセットのランタイム環境を提供し、アセットリポジトリー (ナレッジストア) に保存されたデータにアクセスします。ZIP ファイルを使用して既存の Red Hat JBoss Web Server 5.3.1 サーバーインスタンスに KIE Server をインストールすることができます。
JAR ファイルインストーラーを使用した KIE Server のインストール方法は「3章Red Hat Process Automation Manager インストーラーの使用」を参照してください。
2章Red Hat Process Automation Manager インストールファイルのダウンロード の説明に従い、以下のファイルがダウンロードされている。
-
Red Hat Process Automation Manager 7.8.0 Add Ons (
rhpam-7.8.0-add-ons.zip
) -
Red Hat Process Automation Manager 7.8.0 Maven Repository (
rhpam-7.8.0-maven-repository.zip
)
-
Red Hat Process Automation Manager 7.8.0 Add Ons (
-
バックアップを作成してある Red Hat JBoss Web Server 5.3.1 サーバーインストールが利用できる。Red Hat JBoss Web Server インストールのベースディレクトリーは
JWS_HOME
とする。 - インストールを完了するのに必要なユーザーパーミッションが付与されている。
手順
-
rhpam-7.8.0-add-ons.zip
ファイルを展開します。 展開した
rhpam-7.8.0-add-ons.zip
ファイルから、以下のファイルを展開します。-
rhpam-7.8.0-kie-server-jws.zip
-
rhpam-7.8.0-process-engine.zip
以下の説明では、展開した
rhpam-7.8.0-kie-server-jws.zip
ファイルが含まれるディレクトリーはJWS_TEMP_DIR
と呼ばれ、展開したrhpam-7.8.0-process-engine.zip
ファイルが含まれるディレクトリーはENGINE_TEMP_DIR
と呼ばれます。-
JWS_TEMP_DIR/rhpam-7.8.0-kie-server-jws/kie-server.war
ディレクトリーをJWS_HOME/tomcat/webapps
ディレクトリーにコピーします。注記コピーする Red Hat Process Automation Manager デプロイメントの名前が、Red Hat JBoss Web Server インスタンスの既存デプロイメントと競合しないことを確認します。
-
kie-server.war
フォルダーから.war
拡張子を削除します。 -
kie-tomcat-integration-7.39.0.Final-redhat-00005.jar
ファイルをENGINE_TEMP_DIR
ディレクトリーからJWS_HOME/tomcat/lib
ディレクトリーに移動します。 -
jboss-jacc-api-<VERSION>.jar
、slf4j-api-<VERSION>.jar
およびslf4j-jdk14-<VERSION>.jar
ファイルをENGINE_TEMP_DIR/lib
ディレクトリーからJWS_HOME/tomcat/lib
ディレクトリーに移動します。<VERSION>
はlib
ディレクトリーのバージョンのアーティファクトファイル名に置き換えます。 最後の Valve 定義の後にある
JWS_HOME/tomcat/conf/server.xml
ファイルの<host>
要素に、以下の行を追加します。<Valve className="org.kie.integration.tomcat.JACCValve" />
-
テキストエディターで
JWS_HOME/tomcat/conf/tomcat-users.xml
ファイルを開きます。 JWS_HOME/tomcat/conf/tomcat-users.xml
ファイルにユーザーおよびロールを追加します。以下の例で、<ROLE_NAME>
は Red Hat Process Automation Manager でサポートされるロールです。<USER_NAME>
および<USER_PWD>
は、任意のユーザー名およびパスワードです。<role rolename="<ROLE_NAME>"/> <user username="<USER_NAME>" password="<USER_PWD>" roles="<ROLE_NAME>"/>
ユーザーに複数のロールを割り当てる場合は、以下の例に示すようにロールをコンマで区切ります。
<role rolename="admin"/> <role rolename="kie-server"/> <user username="rhpamUser" password="user1234" roles="admin,kie-server"/>
JWS_HOME/tomcat/bin
ディレクトリーで以下の手順の 1 つを実行します。Linux または UNIX の場合は、以下の内容の
setenv.sh
ファイルを作成します。CATALINA_OPTS="-Xmx1024m -Dorg.jboss.logging.provider=jdk"
Windows の場合は、以下の内容の
setenv.bat
ファイルを作成します。set CATALINA_OPTS=-Xmx1024m -Dorg.jboss.logging.provider=jdk
Microsoft SQL Server を使用する場合は、データベースに適した正しいトランザクションの分離を設定されていることを確認してください。設定されていない場合には、デッドロックが発生する可能性があります。推奨の設定は、以下のステートメントを入力して、ALLOW_SNAPSHOT_ISOLATION と READ_COMMITTED_SNAPSHOT を ON にします。
ALTER DATABASE <DBNAME> SET ALLOW_SNAPSHOT_ISOLATION ON ALTER DATABASE <DBNAME> SET READ_COMMITTED_SNAPSHOT ON
4.2. JDBC Web Server データソースの設定
Java Database Connectivity (JDBC) は、Java で記述されたプログラムを、一般的なデータベースのデータに接続するのに使用する API 仕様です。データソースは、アプリケーションサーバーなど、JDBC クライアントを有効にするオブジェクトで、データベースへの接続を確立します。アプリケーションは、JNDI (Java Naming and Directory Interface) ツリーまたはローカルのアプリケーションコンテキストでデータソースを検索し、データベース接続を要求してデータを取得します。KIE Server にデータソースを設定して、サーバーと、指定したデータベースとの間で適切なデータ交換を行う必要があります。
前提条件
- Red Hat JBoss Web Server に Red Hat Process Automation Manager がインストールされている。
-
2章Red Hat Process Automation Manager インストールファイルのダウンロード の記載通りに、Red Hat Process Automation Manager 7.8.x Maven リポジトリー (
rhpam-7.8.0-maven-repository.zip
) および Red Hat Process Automation Manager 7.8.x Add-Ons (rhpam-7.8.0-add-ons.zip
) ファイルをダウンロードしている。 以下のサポート対象のデータベースおよび Hibernate 方言の 1 つを設定します。
-
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 plus:
org.hibernate.dialect.PostgresPlusDialect
-
Sybase:
org.hibernate.dialect.SybaseASE157Dialect
-
DB2:
手順
以下の手順を実行して、データベースを準備します。
-
TEMP_DIR
などの一時ディレクトリーにrhpam-7.8.0-add-ons.zip
を展開します。 -
TEMP_DIR/rhpam-7.8.0-migration-tool.zip
を展開します。 -
現在のディレクトリーから、
TEMP_DIR/rhpam-7.8.0-migration-tool/ddl-scripts
ディレクトリーに移動します。このディレクトリーには、複数のデータベースタイプの DDL スクリプトが含まれています。 使用するデータベースに、お使いのデータベースタイプの DDL スクリプトをインポートします。以下に例を示します。
psql jbpm < /ddl-scripts/postgresql/postgresql-jbpm-schema.sql
-
-
rhpam-7.8.0-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}.jar
-
データベースの JDBC ドライバーを
JWS_HOME/tomcat/lib
フォルダーにコピーします。 JWS_HOME/tomcat/conf/context.xml
ファイルで、プーリングしている XA データソースを設定します。注記以下の例のプロパティーで、お使いのデータベースサーバーに該当しない場合があります。JDBC ドライバーのドキュメントを参照して、どのプロパティーを設定するか判断してください。
プーリング機能なしで XA データソースを設定します。この XA データソースは、対象のデータベースに新規接続を作成するときに使用します。以下の例では、XA データソースは
xads
で、変数は 表4.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>
表4.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>
はデータベース接続のパスワードどなっています。<?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>
データソースが
java:comp/env/poolingXaDs
の JNDI 名で取得でき、次の手順に記載されているように、org.kie.server.persistence.ds
システムプロパティーを使用して KIE Server に渡すことができます。注記プーリングのデータソース設定は、特に
TransactionManager
やTransactionSynchronizationRegistry
など、kie-server
アプリケーションのcontext.xml
ファイルで以前に設定された追加リソースに依存します。
KIE Server をがデータソースを使用するように設定します。
テキストエディターで以下のスクリプトのいずれかを開きます。
注記setenv.sh
またはsetenv.bat
スクリプトはすでに存在しますが、存在しない場合には作成してください。Linux または Unix の場合:
JWS_HOME/tomcat/bin/setenv.sh
Windows の場合:
JWS_HOME/tomcat/bin/setenv.bat
以下のプロパティーを
CATALINA_OPS
に追加します。<hibernate.dialect>
はお使いのデータベースの Hibernate 方言に置き換えます。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>}"