第3章 永続性の設定

3.1. Business Central の永続性の設定

Red Hat JBoss BPM Suite は、Java Naming and Directory Interface (JNDI) 名の java:jboss/datasources/ExampleDS のサンプルデータソースを使用するように設定されています。このサンプルのデータソースは、実稼動環境には適していません。

データソースを変更するには、以下を実行します。

  1. データベースを準備します。

    1. カスタマーポータルの 製品ダウンロード に移動して、Red Hat JBoss BPM Suite を選択します。
    2. Red Hat JBoss BPM Suite 6.4.0 Supplementary Tools をダウンロードします。
    3. jboss-brms-bpmsuite-6.4-supplementary-tools/ddl-scripts/tmp/ddl などに展開します。
    4. 以下のように、データベースの DDL スクリプトを使用するデータベースにインポートします。

      psql jbpm < /tmp/ddl/postgresql/postgresql-jbpm-schema.sql
  2. 以下のコマンドを実行して、Java Database Connectivity (JDBC) ドライバーをアプリケーションプラットフォームにインストールします。

    ./jboss-cli.sh (no need to actually connect to the server)
    module add --name=org.postgresql --resources=/path/to/postgresql-jdbc-driver.jar --dependencies=javax.api,javax.transaction.api

    JDBC ドライバーのデプロイメントに関する情報は、『Red Hat JBoss Enterprise Application Platform 管理および設定ガイド』「コアモジュールとしての JDBC ドライバーのインストール」を参照してください。

  3. 以下のように、実行中のサーバーに接続して、ドライバーとデータソースを作成します。

    ./jboss-cli.sh --connect --controller=HOST:PORT
    /subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql,driver-module-name=org.postgresql,driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource)
    xa-data-source add --driver-name=postgresql --password=SOME_PASSWORD --user-name=SOME_USERNAME --xa-datasource-properties=url=jdbc:postgresql://localhost:5432/jbpm --name=PostgresqlDS --jndi-name=java:jboss/datasources/PostgresqlDS
    注記

    JBoss BPM Suite の永続サービスで分散 (XA) データソースを常に使用します。

    一般的に、単一のトランザクションで複数のリソースが関連する場合には、XA データソースを使用します。たとえば、Java Messege Service (JMS) エグゼキューター (非同期タスクが含まれる場合にデフォルトで使用) または Quartz ベースのタイマーを使用する場合は、XA データソースを使用する必要があります。

  4. Business Central にデータソースを登録します。

    1. EAP_HOME/standalone/deployments/business-central.war/WEB-INF/classes/META-INF/persistence.xml を開きます。
    2. <jta-data-source> タグの場所を特定し、データソースの JNDI 名に変更します。

      <jta-data-source>java:jboss/datasources/PostgresqlDS</jta-data-source>
    3. 以下のように、<properties> タグの場所を特定し、hibernate.dialect プロパティーを変更します。

      <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />

3.2. Dashbuilder の永続性の設定

Dashbuilder は Business Central の設定により異なります。Business Central は 「Business Central の永続性の設定」に従い、設定します。

重要

Unix のようなシステムでは、MySQL lower_case_table_names のデフォルト値が 0 から 1 に上書きされます (大文字と小文字の区別あり)。Red Hat JBoss BPM Suite KPI クエリーは小文字で記述されますが、テーブル名は大文字です。lower_case_table_names プロパティーを変更することで、後で例外が発生するのを防ぎます。

Dashbuilder のデータベースを変更するには以下を実行します。

  1. データベースを準備します。

    1. カスタマーポータルの 製品ダウンロード に移動して、Red Hat JBoss BPM Suite を選択します。
    2. Red Hat JBoss BPM Suite 6.4.0 Supplementary Tools をダウンロードします。
    3. jboss-brms-bpmsuite-6.4-supplementary-tools/ddl-scripts/tmp/ddl などに展開します。
    4. 以下のように、データベースの DDL スクリプトを使用するデータベースにインポートします。

      psql jbpm < /tmp/ddl/postgresql/postgres-dashbuilder-schema.sql
  2. Java Database Connectivity (JDBC) ドライバーをアプリケーションプラットフォームにインストールします。詳しい情報は、「Business Central の永続性の設定」を参照してください。
  3. EAP_HOME/standalone/configuration/standalone.xml に新規データソースを作成します。詳しい情報は、「Business Central の永続性の設定」を参照してください。
  4. Dashbuilder のデータソースを登録します。

    1. EAP_HOME/standalone/deployments/dashbuilder.war/WEB-INF/jboss-web.xml を開きます。
    2. 以下のように、<jndi-name> をデータソースの JNDI 名を変更します。

      <jndi-name>java:jboss/datasources/PostgresqlDS</jndi-name>

3.3. Intelligent Process Server の永続性の設定

Intelligent Process Server のデータベースを変更する場合には、Business Central および Dashbuilder アプリケーションとは異なるデータベースを使用することがベストプラクティスです。Intelligent Process Server のデータベースを変更するには、以下を実行します。

  1. EAP_HOME/standalone/configuration/standalone.xml を開き、<system-properties> タグの場所を特定します。
  2. 以下のプロパティーを追加します。

    • org.kie.server.persistence.ds: データソースの JNDI 名
    • org.kie.server.persistence.dialect: データベースの hibernate dialect

      以下に例を示します。

      <system-properties>
          <property name="org.kie.server.repo" value="${jboss.server.data.dir}"/>
          <property name="org.kie.example" value="true"/>
          <property name="org.jbpm.designer.perspective" value="full"/>
          <property name="designerdataobjects" value="false"/>
          <property name="org.kie.server.user" value="bpmsUser"/>
          <property name="org.kie.server.pwd" value="bpms123!"/>
          <property name="org.kie.server.location" value="http://localhost:8080/kie-server/services/rest/server"/>
          <property name="org.kie.server.controller" value="http://localhost:8080/business-central/rest/controller"/>
          <property name="org.kie.server.controller.user" value="kieserver"/>
          <property name="org.kie.server.controller.pwd" value="kieserver1!"/>
          <property name="org.kie.server.id" value="local-server-123"/>
      
          <!-- Data source properties. -->
          <property name="org.kie.server.persistence.ds" value="java:jboss/datasources/KieServerDS"/>
          <property name="org.kie.server.persistence.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
      </system-properties>

3.4. トラブルシューティング

IBM DB2 データベースは、Dashbuilder との間で問題が発生する

Business Central の基盤データソースとして、IBM DB2 データソースを使用する場合は、データベースのページサイズを増やします。デフォルトのページサイズは 4 kB ですが、Dashbuilder のテーブルのコラムサイズには十分ではありません。

データベースの作成時に、ページサイズを強制的に 16384 に設定します。

例3.1 ページサイズの調節

CREATE DATABASE dashb PAGESIZE 16384

Red Hat JBoss BPM Suite を初めて実行する前に、基盤データベースのページサイズを増やす必要があります。

Dashbulder では英語以外の文字は表示されない

UTF 8 を使用して英語以外の文字を表示するには、Dashbuilder のデータベースのレベルでエンコーディングを正しく機能するように設定します。たとえば、MySQL で以下をサーバー設定ファイルを追加します。

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
Microsoft SQL Server でデッドロックが発生
Microsoft SQL Server を使用する場合は、データベースのトランザクションが正しく分離されるように設定してください。そのように設定しない場合には、デッドロックになってしまう可能性があります。推奨の設定は、以下の文字列を入力して、ALLOW_SNAPSHOT_ISOLATION および READ_COMMITTED_SNAPSHOT をオンにしてください。
ALTER DATABASE <DBNAME> SET ALLOW_SNAPSHOT_ISOLATION ON
ALTER DATABASE <DBNAME> SET READ_COMMITTED_SNAPSHOT ON
Oracle 11 が原因なしに警告を複数回発行する

Oracle 11 をデータソースとして使用する場合に、適切な Business Central アクティビティーが実行されずに複数の警告 (WARN) メッセージがログに作成されます。これは想定通りの動作です。これらのメッセージをオフにするには、standalone.xml ファイルのロガーの org.hibernate.loader カテゴリーレベルを ERROR に設定します。

<logger category="org.hibernate.loader">
  <level name="ERROR"/>
</logger>
Vacuumlo により Red Hat JBoss BPM Suite CLOB データの内有効で大きいオブジェクトが検出される

vacuumlo ユーティリティープロジェクトにより、PostgreSQL データベースから大きいオブジェクトが削除され、それらのオブジェクトの OID は oid または lo のデータコラムで利用できなくなります。Red Hat JBoss BPM Suite では、text コラムが大きいオブジェクトも保持します。vacuumlo は oid または lo 以外のコラムを分析しないので、有効なオブジェクトは削除される可能性があります。

有効で大きいオブジェクトが vacuumlo で削除されないようにするには、postgresql-jbpm-lo-trigger-clob.sql スクリプトを実行します。

  1. Red Hat カスタマーポータル から Red Hat JBoss BPM Suite 6.4.2 Supplementary Tools をダウンロードします。このスクリプトは、ddl-scripts/postgresql/ ディレクトリーに含まれます。
  2. スクリプトを実行するユーザーが Red Hat JBoss BPM Suite テーブルの TRIGGER の権限があり、PL/pgSQL のプロシージャー言語を使用できるように USAGE 権限が指定されていることを確認します。
  3. スクリプトを実行してトリガーと jbpm_active_clob テーブルを作成します。

    \i postgresql-jbpm-lo-trigger-clob.sql

これらの手順を実行した後に、トリガーにより jbpm_active_clob が維持され、CLOB 参照は vacuumlo で削除できます。