第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 JBoss Web Server 5.3.1 サーバーインストールが利用できる。Red Hat JBoss Web Server インストールのベースディレクトリーは JWS_HOME とする。
  • インストールを完了するのに必要なユーザーパーミッションが付与されている。

手順

  1. rhpam-7.8.0-add-ons.zip ファイルを展開します。
  2. 展開した 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 と呼ばれます。

  3. 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 インスタンスの既存デプロイメントと競合しないことを確認します。

  4. kie-server.war フォルダーから .war 拡張子を削除します。
  5. kie-tomcat-integration-7.39.0.Final-redhat-00005.jar ファイルを ENGINE_TEMP_DIR ディレクトリーから JWS_HOME/tomcat/lib ディレクトリーに移動します。
  6. jboss-jacc-api-<VERSION>.jarslf4j-api-<VERSION>.jar および slf4j-jdk14-<VERSION>.jar ファイルを ENGINE_TEMP_DIR/lib ディレクトリーから JWS_HOME/tomcat/lib ディレクトリーに移動します。<VERSION>lib ディレクトリーのバージョンのアーティファクトファイル名に置き換えます。
  7. 最後の Valve 定義の後にある JWS_HOME/tomcat/conf/server.xml ファイルの <host> 要素に、以下の行を追加します。

    <Valve className="org.kie.integration.tomcat.JACCValve" />
  8. テキストエディターで JWS_HOME/tomcat/conf/tomcat-users.xml ファイルを開きます。
  9. 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"/>
  10. 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

手順

  1. 以下の手順を実行して、データベースを準備します。

    1. TEMP_DIR などの一時ディレクトリーに rhpam-7.8.0-add-ons.zip を展開します。
    2. TEMP_DIR/rhpam-7.8.0-migration-tool.zip を展開します。
    3. 現在のディレクトリーから、TEMP_DIR/rhpam-7.8.0-migration-tool/ddl-scripts ディレクトリーに移動します。このディレクトリーには、複数のデータベースタイプの DDL スクリプトが含まれています。
    4. 使用するデータベースに、お使いのデータベースタイプの DDL スクリプトをインポートします。以下に例を示します。

      psql jbpm < /ddl-scripts/postgresql/postgresql-jbpm-schema.sql
  2. rhpam-7.8.0-maven-repository.zip のオフライン Maven リポジトリーファイルを展開します。
  3. 展開したオフラインの 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
  4. データベースの JDBC ドライバーを JWS_HOME/tomcat/lib フォルダーにコピーします。
  5. JWS_HOME/tomcat/conf/context.xml ファイルで、プーリングしている XA データソースを設定します。

    注記

    以下の例のプロパティーで、お使いのデータベースサーバーに該当しない場合があります。JDBC ドライバーのドキュメントを参照して、どのプロパティーを設定するか判断してください。

    1. プーリング機能なしで 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>

      データベーススキーマ

    2. 新規接続の作成時に 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 に渡すことができます。

      注記

      プーリングのデータソース設定は、特に TransactionManagerTransactionSynchronizationRegistryなど、kie-server アプリケーションの context.xml ファイルで以前に設定された追加リソースに依存します。

  6. KIE Server をがデータソースを使用するように設定します。

    1. テキストエディターで以下のスクリプトのいずれかを開きます。

      注記

      setenv.sh または setenv.bat スクリプトはすでに存在しますが、存在しない場合には作成してください。

      • Linux または Unix の場合:

        JWS_HOME/tomcat/bin/setenv.sh
      • Windows の場合:

        JWS_HOME/tomcat/bin/setenv.bat
    2. 以下のプロパティーを 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>}"