第4章 KIE Server への IBM WebSphere Application Server の設定

IBM WebSphere Application Server に KIE Server をデプロイする前に、システムプロパティー、セキュリティー設定、JMS 要件、その他の IBM WebSphere プロパティーを設定する必要があります。この設定により、KIE Server との最適な統合が促進されます。

前提条件

  • IBM WebSphere Application Server をインストールして実行している。
  • WebSphere 統合ソリューションコンソールにログインしている。

4.1. 管理セキュリティーの有効化

WebSphere 統合ソリューションコンソールで管理セキュリティーを有効にして、ユーザーおよびグループを作成するのに必要な権限を取得します。

手順

  1. WebSphere 統合ソリューションコンソールで、SecurityGlobal Security の順にクリックし、Enable Application Security オプションが選択されていることを確認します。選択していても、サーバーレベルで上書きされている可能性があります。
  2. Security Configuration Wizard をクリックし、Next をクリックします。
  3. ユーザー情報を含むリポジトリーを選択します。たとえば、ローカル設定で Federated repositories を選択します。
  4. Next をクリックします。
  5. Primary administrative user name および Password を入力します。
  6. Next をクリックし、Finish をクリックします。
  7. Messages ウィンドウで Save をクリックして、マスター設定への変更を保存します。

    図4.1 セキュリティー変更の保存

    Save security changes
  8. 端末で、インストール時に指定した IBM WebSphere Application Server の /bin ディレクトリーの場所に移動し、以下のコマンドを実行して IBM WebSphere を停止して再起動し、セキュリティーの変更を適用します。

    sudo ./stopServer.sh <SERVER_NAME>
    sudo ./startServer.sh <SERVER_NAME>

    <SERVER_NAME> は、WebSphere 統合ソリューションコンソールの ServersServer TypesIBM WebSphere Application Servers で定義した IBM WebSphere Application Server の名前です。

4.2. IBM WebSphere Application Server への JDBC データソースの設定

データソースは、アプリケーションサーバーなど、Java Database Connectivity (JDBC) クライアントを有効にするオブジェクトで、データベースへの接続を確立します。アプリケーションは、JNDI (Java Naming and Directory Interface) ツリーまたはローカルのアプリケーションコンテキストでデータソースを検索し、データ接続を要求してデータを取得します。IBM WebSphere Application Server にデータソースを設定して、サーバーと、指定したデータベースとの間で適切なデータ交換を行う必要があります。

前提条件

  • データベース接続を作成するのに使用する JDBC プロバイダーが、データソースをデプロイするすべてのサーバーに設定されている。JDBC プロバイダーの詳細は、IBM Knowledge Center の「Configuring a JDBC provider」を参照してください。

手順

  1. Red Hat カスタマーポータルの Software Downloads ページに移動し (ログインが必要)、ドロップダウンオプションから製品およびバージョンを選択します。

    • 製品: Process Automation Manager
    • バージョン: 7.8
  2. Red Hat Process Automation Manager 7.8.0 Add-Ons をダウンロードします。
  3. 以下の手順を実行して、データベースを準備します。

    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
  4. WebSphere 統合ソリューションコンソールで、ResourcesJDBCData sources の順に移動します。
  5. データソースを使用するアプリケーションでスコープを選択します。セル、ノード、クラスター、またはサーバーを選択できます。
  6. New をクリックし、Create a data source ウィザードを開きます。
  7. Data source name フィールドに一意の名前を入力し、JNDI name フィールドに JNDI (Java Naming and Directory Interface) 名を入力します。アプリケーションサーバーは JNDI 名を使用して、アプリケーションのリソース参照をこのデータソースにバインドします。

    複数のリソースタイプ (データソース、J2C 接続ファクトリー/JMS 接続ファクトリー) に割り当てる JNDI 名を重複させないでください。

    同じスコープに、同じタイプの複数のリソースに割り当てる JNDI 名を重複させないでください。

  8. プロバイダーを作成している場合は、Next をクリックして Select an existing JDBC provider を選択します。作成していない場合は Create new JDBC provider をクリックして、新しいプロバイダーの詳細を定義します。(JDBC プロバイダーは、データソースを追加するための前提条件であるため、事前に作成しておくことが推奨されます。)
  9. CMP (container managed persistence) のエンタープライズ Bean がこのデータソースにアクセスする必要がある場合は、Enter database specific properties for the data source パネルで Use this data source in container managed persistence (CMP) をクリックします。 これにより、その他のデータベース関連のプロパティーが書き込まれます。
  10. オプションで、データソースのセキュリティーエイリアスを設定します。すべての認証メソッドで None を選択するか、以下のいずれを選択できます。

    • Component-managed authentication alias: コンポーネントリソース参照の res-auth 値が Application の場合に使用する認証エイリアスを指定します。新しいエイリアスを定義するには、Related Items → J2EE Connector Architecture (J2C) authentication data entries に移動します。コンポーネント管理エイリアスは、データソース認証に対してアプリケーションに指定した ID およびパスワードの組み合わせとなります。したがって、データソースに設定したエイリアスは、アプリケーションコードのエイリアスと同一にする必要があります。
    • Mapping-configuration alias: コンポーネントリソース参照にログイン設定がない場合にのみ利用します。res-auth 値を Container に設定した場合は、ログイン設定およびコンポーネントリソース参照の関連プロパティーを指定することが、認証ストラテジーを定義するのに推奨される方法です。DefaultPrincipalMapping ログイン設定を指定する場合の関連プロパティーは JAAS - J2C 認証データエントリーエイリアスです。
    • Container-managed authentication alias: コンポーネントリソース参照にログイン設定がない場合にのみ利用します。res-auth 値を Container に設定する場合は、ログイン設定と、コンポーネントリソース参照の関連プロパティーを指定することで、コンテナー管理認証ストラテジーが判断されます。
  11. Next をクリックしてデータソースの情報を確認し、Finish をクリックして設定を保存してウィザードを終了します。

    Data sources パネルには、新しい設定と、同じスコープに設定したその他のデータソースがテーブルに表示されます。

IBM WebSphere Application Server データソースの詳細は、IBM Knowledge Center の「Configuring a JDBC provider and data source」を参照してください。

4.3. Java Message Service (JMS) の設定

Java Message Service (JMS) は、KIE Server が、Oracle WebLogic Server、IBM WebSphere Application Server などのアプリケーションサーバーとメッセージを交換するために使用する Java API です。KIE Server を経由して JMS メッセージを送受信するようにアプリケーションサーバーを設定し、2 台のサーバー間でコラボレーションが適切に行われるようにします。

4.3.1. サービスバスの作成および IBM WebSphere の追加

JMS を使用するためには、サービスバスを作成し、IBM WebSphere Application Server をそのメンバーとして追加します。

手順

  1. WebSphere 統合ソリューションコンソールで、Service IntegrationBusesNew の順に移動します。
  2. 新しいバス名を入力し、Bus Security オプションの選択を解除します。
  3. Next をクリックしてから Finish をクリックし、サービスバスを作成します。
  4. 作成しておいたサービスバスを選択します。
  5. TopologyBus MembersAdd をクリックします。
  6. Add a New Bus Member ウィザードを使用し、IBM WebSphere Application Server と、永続性に関するメッセージストアのタイプを選択します。メッセージストアのプロパティーを指定することもできます。
  7. Finish をクリックし、バスメンバーを追加します。

4.3.2. JMS 接続ファクトリーの作成

KIE Server でメッセージングを有効にするには、メッセージの送受信に JMS 接続ファクトリーをいくつか作成する必要があります。

前提条件

  • IBM WebSphere Application Server にサービスバスを作成している。

手順

  1. WebSphere 統合ソリューションコンソールで、ResourcesJMSConnection Factories の順に移動します。
  2. 正しいスコープを選択し、New をクリックします。
  3. Default Messaging Provider オプションを選択し、OK をクリックします。
  4. 以下に示す必須の接続ファクトリーに、接続ファクトリーの名前 (例: KIE.SERVER.REQUEST) および JNDI 名 (例: jms/cf/KIE.SERVER.REQUEST) を入力して、Bus Name ドロップダウンリストからサービスバス名を選択します。残りのオプションはデフォルト値のままにします。
  5. Apply および Save をクリックして master 設定への変更を保存し、必要な各ファクトリーに上述の手順を繰り返します。

4.3.2.1. KIE Server の JMS 接続ファクトリー

以下は、KIE Server で JMS メッセージングを有効にするために必要な Java Message Service (JMS) 接続ファクトリーになります。

表4.1 KIE Server に必要な JMS 接続ファクトリー

名前デフォルト値用途

KIE.SERVER.REQUEST

jms/cf/KIE.SERVER.REQUEST

全要求を KIE Server へ送信

KIE.SERVER.RESPONSE

jms/cf/KIE.SERVER.RESPONSE

KIE Server が生成する応答をすべて受信

KIE.SERVER.EXECUTOR

jms/cf/KIE.SERVER.EXECUTOR

KIE Server エグゼキューターサービス

4.3.3. JMS キューの作成

JMS キューは、ポイントツーポイントメッセージング (point-to-point messaging) の宛先エンドポイントになります。KIE Server で JMS メッセージングを有効にするには JMS キューをいくつか作成する必要があります。

前提条件

  • IBM WebSphere Application Server にサービスバスを作成している。

手順

  1. WebSphere 統合ソリューションコンソールで、ResourcesJMSQueues の順に移動します。
  2. 正しいスコープを選択し、New をクリックします。
  3. Default Messaging Provider オプションを選択し、OK をクリックします。
  4. 以下に示す必須のキューに、キューの名前 (例: KIE.SERVER.REQUEST) および JNDI 名 (例: jms/KIE.SERVER.REQUEST) を入力して、Bus Name ドロップダウンリストからサービスバスを選択します。
  5. Queue Name ドロップダウンリストで Create Service Integration Bus Destination を選択して一意の識別子を入力し、事前に作成したバスメンバーを選択します。
  6. Apply および Save をクリックして master 設定への変更を保存し、必要な各キューに上述の手順を繰り返します。

4.3.3.1. KIE Server 向けの JMS キュー

以下は、KIE Server で JMS メッセージングを有効にするために必要な Java Message Service (JMS) キューです。

表4.2 KIE Server に必要な JMS キュー

名前デフォルト値用途

KIE.SERVER.REQUEST

jms/KIE.SERVER.REQUEST

全要求を KIE Server へ送信

KIE.SERVER.RESPONSE

jms/KIE.SERVER.RESPONSE

KIE Server が生成する応答をすべて受信

KIE.SERVER.EXECUTOR

jms/KIE.SERVER.EXECUTOR

KIE Server エグゼキューターサービス

4.3.4. JMS アクティベーション仕様の作成

キューと、JMS を有効にするメッセージ駆動型 Bean との間にブリッジを行うには、JMS アクティベーション仕様が必要です。

前提条件

  • IBM WebSphere Application Server にサービスバスを作成している。
  • JMS キューを作成している。

手順

  1. WebSphere 統合ソリューションコンソールで、ResourcesJMSActivation Specifications の順に移動します。
  2. 正しいスコープを選択し、New をクリックします。
  3. Default Messaging Provider オプションを選択し、OK をクリックします。
  4. 以下に示す必須のアクティベーション仕様に、アクティベーション仕様名 (例: KIE.SERVER.REQUEST) および JNDI 名 (例: jms/activation/KIE.SERVER.REQUEST) を入力して、Bus Name ドロップダウンリストからサービスバス名を選択します。
  5. Destination Type ドロップダウンリストで Queue を選択し、Destination lookup に対応するキューの名前 (例: jms/KIE.SERVER.REQUEST) を入力します。
  6. Apply および Save をクリックして master 設定への変更を保存し、必要な各アクティベーション仕様に上述の手順を繰り返します。

4.3.4.1. KIE Server の JMS アクティベーション仕様

以下は、KIE Server で JMS メッセージングを有効にするために必要な Java Message Service (JMS) アクティベーション仕様になります。

表4.3 KIE Server に必要な JMS アクティベーション仕様

名前デフォルト値用途

KIE.SERVER.REQUEST

jms/activation/KIE.SERVER.REQUEST

全要求を KIE Server へ送信

KIE.SERVER.RESPONSE

jms/activation/KIE.SERVER.RESPONSE

KIE Server が生成する応答をすべて受信

KIE.SERVER.EXECUTOR

jms/activation/KIE.SERVER.EXECUTOR

KIE Server エグゼキューターサービス

4.4. IBM WebSphere Application Server へのシステムプロパティーの設定

KIE Server をデプロイする前に、IBM WebSphere Application Server に、本セクションに記載するシステムプロパティーを設定します。

手順

  1. WebSphere 統合ソリューションコンソールで、ServersServer TypesIBM WebSphere Application Servers の順にクリックします。
  2. アプリケーションサーバーの一覧で、KIE Server をデプロイするサーバーを選択します。
  3. Server InfrastructureJava and Process ManagementProcess Definition をクリックします。

    図4.2 WebSphere 設定ページ

    WebSphere configuration page
  4. Additional PropertiesJava Virtual Machine をクリックします。

    図4.3 プロセスの定義設定ページ

    process definition2

    これにより、IBM WebSphere を起動する際に使用する JVM の設定プロパティーが開きます。

  5. Initial heap size および Maximum heap size の両方を 2048 に設定し、Apply をクリックして Java Virtual Machine (JVM) メモリーサイズを増やします。KIE Server はこの値でテストされています。JVM メモリーサイズを増やさないと、KIE Server のデプロイ時に IBM WebSphere Application Server がフリーズするかエラーが発生します。
  6. Additional PropertiesCustom Properties をクリックします。
  7. NewCustom JVM Properties の順にクリックし、以下のプロパティーを IBM WebSphere に追加します。

    表4.4 KIE Server のシステムプロパティー

    名前説明

    kie.server.jms.queues.response

    jms/KIE.SERVER.RESPONSE

    KIE Server が使用する応答用の JMS キューの JNDI 名。

    org.kie.server.domain

    WSLogin

    JMS の使用時にユーザーの認証に使用される JAAS LoginContext ドメイン。

    org.kie.server.persistence.ds

    jdbc/jbpm

    KIE Server のデータソースの JNDI 名。

    org.kie.server.persistence.tm

    org.hibernate.engine.transaction.jta.platform.internal.WebSphereJtaPlatform

    Hibernate プロパティーを設定するためのトランザクションマネージャープラットフォーム。

    org.kie.server.persistence.dialect

    例: org.hibernate.dialect.H2Dialect

    使用する Hibernate 方言を指定します。データソースに従って設定します。

    org.kie.executor.jms.queue

    jms/KIE.SERVER.EXECUTOR

    KIE Server へのジョブエグゼキューターの JMS キュー。

    org.kie.executor.jms.cf

    jms/cf/KIE.SERVER.EXECUTOR

    KIE Server へのジョブエグゼキューターの JMS 接続ファクトリー。

    org.kie.server.router

    例: http://localhost:9000

    (オプション) クラスター化された KIE Server 環境で、アプリケーションサーバーがその一部である 1 つ以上の KIE Server ルーター (Smart Router) の URL を 1 つ以上指定します。

    org.jboss.logging.provider

    jdk

    このプロパティーは、CA SiteMinder TAI (SMTAI) が環境にインストールされている場合にのみ必要になります。このプロパティーを使用すると、Dashbuilder でログを記録するために、Hibernate が log4j ではなく、JDK を強制的に使用しようとします。CA SiteMinder TAI (SMTAI) には古いバージョンの log4j が含まれており、これにより競合が生じます。

  8. Save をクリックして、マスター設定への変更を保存します。

4.5. IBM WebSphere Application Server の停止および再起動

IBM WebSphere Application Server に必要なシステムプロパティーをすべて設定したあと、IBM サーバーを停止および再起動して、設定が適用されていることを確認します。

手順

端末で、インストール時に指定した IBM WebSphere Application Server の /bin ディレクトリーの場所に移動し、以下のコマンドを実行して IBM WebSphere を停止して再起動し、設定変更を適用します。

sudo ./stopServer.sh <SERVER_NAME>
sudo ./startServer.sh <SERVER_NAME>

<SERVER_NAME> は、WebSphere 統合ソリューションコンソールの ServersServer TypesIBM WebSphere Application Servers で定義した IBM WebSphere Application Server の名前です。