第3章 設定

Red Hat JBoss BRMS を IBM WebSphere Application Server に web アーカイブとしてデプロイする前に、サーバーがデプロイ可能な WAR ファイルを受け入れるように設定します。本セクションで説明されている手順に従って Red Hat JBoss BRMS を IBM WebSphere Application Server にデプロイします。

いずれの手順を実行する前に、管理者ログインを使って IBM WebSphere コンソールにログインします。ユーザーログイン URL は http://TARGET_SERVER:9060/ibm/console (例: http://localhost:9060/ibm/console) です。

IBM Integrated Solutions Console と Welcome 画面が開きます。コンソール左側にあるメインメニューには、アプリケーションサーバーを設定するために必要なすべてのリンクが含まれています。

図3.1 IBM Integrated Solutions Console

websphere console

3.1. JVM ヒープサイズの拡大

デフォルトの JVM ヒープサイズの場合、IBM WebSphere Application Server は Business Central のデプロイ時にフリーズするか、またはエラーが発生します。ヒープサイズを拡大するには、以下を実行します。

  1. Integrated Solutions Console で、ServersServer TypesWebSphere Application Servers に移動します。
  2. アプリケーションの一覧で、Business Central をデプロイするサーバーをクリックします (例: server1)。

    選択したサーバーの設定ページが開きます。

  3. 右側の Server Infrastructure の見出しで、Java and Process ManagementProcess Definition をクリックします。

    図3.2 Application Server 設定ページ

    process definition
  4. 右側の Additional Properties の見出しにある Java Virtual Machine をクリックします。

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

    process definition2

    ここで、サーバーの起動に使用する JVM の設定プロパティーが表示されます。

  5. Initial Heap SizeMaximum Heap Size2048 に変更します。これは Red Hat JBoss BRMS でテスト済みの設定です。

    図3.4 JVM 設定ページ

    process definition3
  6. 一番下の Apply をクリックします。

    Messages ポップアップウィンドウが Application Servers 設定ページの先頭に表示されます。これらの設定内容をこの時点でマスター設定に保存することを選択できます。

    図3.5 メッセージのポップアップ

    messages popup
  7. この時点でサーバーを再起動するか、または設定の変更が加えられるまで待機します。

3.2. セキュリティー設定の変更

Business Central アプリケーションを機能させるには、IBM WebSphere Application Server でセキュリティーの設定を変更する必要があります。サーバーが提供するコンテナーで管理される認証メカニズムを有効にするには、以下を実行します。

  1. メインメニューで、SecurityGlobal Security をクリックします。オプション Enable Application Security にチェックが付けられていることを確認します。これはすでにチェックが付けられいるものの、サーバーレベルで上書きされている場合があります。

    図3.6 グローバルセキュリティー設定ページ

    global security
  2. 右側の Custom Properties をクリックしてから New…​ を選択し、以下の詳細情報を使って新規カスタムプロパティーを入力します。

    • Name: com.ibm.ws.security.web.logoutOnHTTPSessionExpire
    • Value: true

    このプロパティーの設定により、サーバーはセッションの無効化により LTPA トークンを無効にします。これにより、同じブラウザーを使う複数ユーザーのログアウトのプロセスの一貫性を維持することができます。

  3. Apply をクリックしてから、OK をクリックします。

3.3. ユーザーおよびグループの作成

  1. 左側のメインメニューで、Users and GroupsManage Groups をクリックします。
  2. Create…​ をクリックして、admin および analyst という 2 つのグループを新規に作成します。

    図3.7 作成されたグループ

    created groups brms
    注記

    Realtime Decision Server をインストールする場合は kie-server グループも追加します。また、API を使用する場合は REST API グループを追加します。API ロールについての詳細は、「Red Hat JBoss BPM Suite Development GuideRemote API」の章を参照してください。

  3. 左側のメインメニューで、Users and GroupsManage Users をクリックします。
  4. Create…​ をクリックし、ユーザーの認証情報を入力します。

    重要

    選択した User ID がロールまたはグループの既知のタイトルと競合 しない ことを確認してください。

    たとえば、admin と呼ばれるロールがある場合に、admin という名前のユーザーを作成 することはできません

    図3.8 ユーザーの作成ダイアログウィンドウ

    creating user
  5. Group Membership をクリックし、ユーザーを前に作成した admin グループに割り当てます。

    注記

    このユーザーは、作成したグループのいずれにも割り当てることができます。実稼働システムでは、ビジネスロールに連動するように個別のグループに個別のユーザーを作成することが予想されます。admin グループはこれらすべてを包含するグループであるため、この設定の目的で使用できます。

  6. Create をクリックします。

3.4. セッション管理カスタム設定

  1. 左側のメインメニューで、ServersServer TypesWebSphere Application Servers に移動し、Business Central をデプロイするサーバーを選択します。
  2. 右側の Container Settings の見出しにある Session Management をクリックします。
  3. 右側の Additional Properties セクションで、Custom Properties をクリックしてから New…​ をクリックします。
  4. 必要な情報を入力します。

    • Name: InvalidateOnUnauthorizedSessionRequestException
    • Value: true
  5. Apply をクリックしてから、OK をクリックします。

3.5. データソースのセットアップ

Business Central アプリケーションにはデータソースが必要であり、データソースは実際の WAR ファイルのデプロイメント前に作成しておく必要がありす。つまり、データソースの接続先の基礎となるデータベースにアクセスできる状態でなければなりません。使用する基礎となるデータベースの種類を問わず、データソースの準備ができていることを確認してください。以下の手順に従ってデータソースを設定します。

注記

以下の手順では、Oracle Database 12c でのデータソースの設定が説明されています。

JDBC プロバイダーの作成

  1. ResourcesJDBCJDBC Providers をクリックして JDBC Providers ページを開きます。
  2. JDBC Providers ページの上部にある Scope をクリックします。お使いのサーバーとノードを含むようにこの JDBC プロバイダーのスコープを選択します。すべてのスコープ は指定 できない ことに注意してください。

    図3.9 JDBC プロバイダーのスコープ設定

    scope
  3. New…​ をクリックします。

    Create a New JDBC Provider ページが開きます。

  4. 選択できるデータベースドライバーに基づいてフォームに入力します。

    図3.10 新規 JDBC プロバイダーの作成の最初の手順

    creating jdbc provider1

    データベースが一覧表示されていない場合は、Database Type 選択ボックスで User-Defined オプションを選択し、実装クラス名を指定します。

    たとえば H2、PostgreSQL、または MySQL の場合、実装クラス名はそれぞれ org.h2.jdbcx.JdbcDataSourceorg.postgresql.xa.PGXADataSource、および com.mysql.jdbc.jdbc2.optional.MysqlXADataSource になります。

  5. JDBC プロバイダーに説明的な名前を指定し、Next をクリックします。
  6. 定義した JDBC ドライバークラスファイルのクラスパス情報を指定します。Apply をクリックします。

    図3.11 データベースクラスパスの定義

    creating jdbc provider2
  7. Next をクリックします。
  8. Finish をクリックしてこの新規の JDBC プロバイダーを受け入れ、追加します。

    図3.12 JDBC プロバイダー概要ページ

    creating jdbc provider3

この新規 JDBC プロバイダーを使用して、Business Central の実際のデータソースを設定する必要があります。

データソースを作成する前に、ダウンロードした Business Central WAR ファイル (business-central.war) の WEB-INF/classes/META-INF ディレクトリーにある persistence.xml ファイルを開きます。<jta-data-source> タグ内で定義されているデータソースの JNDI 名を把握しておく必要があります。Business Central の場合は、jdbc/jbpm になります。

また、hibernate.dialect プロパティーをお使いのデータベースに合わせて変更します。たとえば、基礎となるデータベースが Oracle Database 12c の場合、プロパティーの値を org.hibernate.dialect.Oracle10gDialect に変更します。

データソースのセットアップ

  1. 左側のメインメニューで ResourcesJDBCData Sources をクリックして Data Sources ページを開き、適切なスコープが選択されていることを確認します。
  2. New…​ をクリックします。
  3. このデータソースの参照に使用する一意の データソース名、および persistence.xml ファイルにある JNDI 名を入力します。

    図3.13 新規データソース作成の最初の手順

    creating data source1

    Next をクリックします。

  4. Select an Existing JDBC Provider ドロップダウンメニューから、先に作成した JDBC プロバイダーを選択し、Next をクリックします。

    図3.14 JDBC プロバイダーの選択

    creating data source2
  5. データソースのデータベース固有のプロパティーの入力 の手順で、データベース JDBC URL を入力し、Next をクリックします。

    図3.15 データソースのデータベース固有プロパティーの入力画面

    creating data source3
  6. Setup Security Aliases 画面で、このデータソースに接続するための認証値を設定します。エイリアスが作成されていない場合は、画面下にある Global J2C Authentication Alias をクリックします。この場合、Create a Data Source ウィザードが取り消されることに注意してください。

    1. New…​ をクリックします。
    2. AliasUser ID、および Password に入力します。

      図3.16 新規セキュリティーエイリアスの作成

      security alias
    3. OK をクリックします。

    Setup Security Aliases 画面に戻り、Component-Managed Authentication Alias を新規に作成されたエイリアスに設定し、Mapping-Configuration AliasDefaultPrincipalMapping に設定します。

    また、XA リカバリーの別のエイリアスを作成し、設定することもできます。Authentication Alias for XA Recovery(none) に設定されている場合、コンポーネントで管理される認証エイリアスがデフォルトで使用されます。

    図3.17 セキュリティーエイリアスの設定

    creating data source4

    Next をクリックします。

  7. Summary 画面で、値を確認し、Finish をクリックします。また、変更をマスター設定に保存する選択をします。

    図3.18 データソース作成の概要画面

    creating data source5
  8. すべてのデータソースの一覧から作成されたデータソースを選択し、基本的なメタプロパティーを指定します。
  9. 左側の Additional Properties セクションで Custom Properties をクリックします。

    serverNamedatabaseNameuserName、および password などのプロパティーを作成される必要あり、データベースごとに異なるものである必要があります。以下に、データベースプロパティーのいくつかの例を示します。

    表3.1 各種データベースのカスタムプロパティー

    データベースプロパティー

    H2

    URLuserpassword

    MySQL

    serverNamedatabaseNameportuserpassword

    PostgreSQL

    serverNamedatabaseNameportNumberuserpassword

    Oracle

    jdbcURL

すべての接続プロパティーが定義されたら、Test Connection をクリックしてデータソースの有効性を確認します。接続が成功する場合は、以下のメッセージが画面上部に表示されます。

The test connection operation for data source DATA_SOURCE_NAME on server SERVER_NAME at node NODE_NAME was successful.

3.6. JMS リソースのセットアップ

IBM WebSphere Application Server は、Red Hat JBoss BRMS 経由で JMS メッセージの送受信をするように設定される必要があります。ただし、これを実行する前に、サービスバスが存在することを確認してください。サービスバスがない場合は、以下の手順に従ってサービスバスを作成します。

バスのセットアップ

サービスバスの作成
  1. 左側のメインメニューで、Service IntegrationBuses をクリックします。
  2. New…​ をクリックします。
  3. 名前を入力し、Bus Security オプションが unchecked であることを確認します。
  4. Next をクリックしてから Finish をクリックし、サービスバスを作成します。
バスメンバーの追加

続行する前に、新規のバスメンバーを追加します。バスメンバーは、このサービスバスに追加されているサーバーまたはクラスターです。

  1. Service IntegrationBuses に移動し、作成したサービスバスをクリックします。
  2. 右側の Topology の見出しの下で Bus Members をクリックします。
  3. Add をクリックします。
  4. Add a New Bus Member ウィザードを使用し、最初の 2 つの手順でサーバーおよび永続性についてのメッセージストアのタイプを選択します。以前の選択内容により、メッセージストアのプロパティーを指定できる場合もあります。
  5. 最後の手順で Finish をクリックし、新規のバスメンバーを追加します。

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

Red Hat JBoss BRMS 間でのメッセージの送受信を実行するには、JMS 接続ファクトリーを作成する必要があります。これは、メッセージをキューに送信するために使用される接続を確立するために必要になります。

Red Hat JBoss BRMS は、Realtime Decision Server 用にのみ Java Messaging Services を必要とします。以下の手順を使用して以下の接続ファクトリーを作成します。 KIE.SERVER.REQUESTKIE.SERVER.RESPONSE、および KIE.SERVER.EXECUTOR

注記

上に表示されるファクトリー名は推奨案であり、実際のニーズおよび会社のガイドラインに基づいて名前を変更することができます。

  1. 左側のメニューで、ResourcesJMSConnection Factories に移動します。
  2. 適切なスコープが選択されていることを確認し、New をクリックします。
  3. Default Messaging Provider オプションを選択し、OK をクリックします。
  4. ファクトリーの名前および JNDI 名を入力します。以下が例になります。

    • Name: KIE.SERVER.REQUEST
    • JNDI name: jms/conn/KIE.SERVER.REQUEST
    注記

    KIE.SERVER.RESPONSE および KIE.SERVER.EXECUTOR の JNDI 名はそれぞれ jms/conn/KIE.SERVER.RESPONSE および jms/conn/KIE.SERVER.EXECUTOR です。

  5. Bus Name ドロップダウンリストから、先に作成したサービスバスを選択します。

    残りのオプションは必須でないため、デフォルト値を残したままにすることができます。

  6. Apply をクリックして、変更をマスター設定に保存します。

JMS キューの作成

次の手順では、JMS キューを作成します。これらのキューは、ポイントツーポイントメッセージング (point-to-point messaging) の宛先エンドポイントになります。

Realtime Decision Server の場合、以下のキューを作成します。 KIE.SERVER.REQUEST (要求用)、 KIE.SERVER.RESPONSE (応答用)、および KIE.SERVER.EXECUTOR (実行プログラムのサービス用)。

重要

ログに警告が記録されることを防ぐには、KIE.EXECUTOR キューも作成します。

これらのキューを作成するには、以下を実行します。

  1. メインメニューで、ResourcesJMSQueues に移動します。
  2. 適切なスコープが選択されていることを確認し、New をクリックします。
  3. Default Messaging Provider ラジオボタンを選択してから OK をクリックします。
  4. キューの名前および JNDI 名を入力します。たとえば、以下のようになります。

    • Name: KIE.SERVER.REQUEST
    • JNDI name: jms/KIE.SERVER.REQUEST
    注記

    他のキューのすべての JNDI 名は上記の例と同じ規則に従います。

  5. Bus Name ドロップダウンリストから、先に作成したサービスバスを選択します。
  6. Queue Name ドロップダウンリストで、Create Service Integration Bus Destination を選択します。

    これにより、新規のサービス統合バスの作成に使用する Create New Queue フォームが開かれます。このフォームでは、一意の識別子を入力し、本章で作成したバスメンバーを選択します。

  7. 画面下部で Apply をクリックし、変更をマスター設定に保存します。

JMS アクティべーション仕様の作成

JMS アクティべーション仕様は、キューとメッセージ駆動型 Bean 間のブリッジとして機能する必要があります。

Realtime Decision Server の場合、以下のアクティべーション仕様を作成します。 KIE.SERVER.REQUEST (要求用)、KIE.SERVER.RESPONSE (応答用) および KIE.SERVER.EXECUTOR (実行プログラム用)。

重要

ログに警告が記録されることを防ぐには、KIE.EXECUTOR アクティべーション仕様も作成します。

  1. メインメニューで、ResourcesJMSActivation Specifications に移動します。
  2. 適切なスコープが選択されていることを確認し、New をクリックします。
  3. Default Messaging Provider ラジオボタンにチェックを付けてから OK をクリックします。
  4. アクティべーション仕様の名前および JNDI 名を入力します。たとえば、以下のようになります。

    • Name: KIE.SERVER.REQUEST
    • JNDI name: jms/activation/KIE.SERVER.REQUEST
    注記

    他のアクティべーション仕様のすべての JNDI 名は上記の例と同じ規則に従います。

  5. Destination Type ドロップダウンリストで、Queue を選択します。
  6. Destination JNDI Name (前の手順で作成) を入力します (例: jms/KIE.SERVER.REQUEST)。
  7. Bus Name ドロップダウンリストから、先に作成したサービスバスを選択します。
  8. 画面下部で、残りのフィールド値をそのままに残した状態で OK をクリックし、変更をマスター設定に保存します。

これで、Red Hat JBoss BRMS の IBM WebSphere Application Server での設定に必要な JMS 設定が正常に完了しました。

3.7. カスタム JVM プロパティーの追加

IBM WebSphere Application Server を起動するために使用される JVM にカスタムプロパティーを追加する必要があります。これらのカスタムプロパティーには、本書の前のセクションで説明されている設定変更が反映されます。

  1. メインメニューで、ServersServer TypesWebSphere Application Servers に移動します。
  2. アプリケーションサーバーの一覧で、Business Central をデプロイするサーバーを選択します。
  3. 右側の Server Infrastructure の見出しで、Java and Process ManagementProcess Definition をクリックします。
  4. Additional Properties の見出しの下にある Java Virtual Machine をクリックします。

    ここで、WebSphere Application Server の起動に使用する JVM の設定プロパティーが表示されます。

  5. Additional Properties の下で Custom Properties をクリックします。
  6. New…​ をクリックして以下のプロパティーを作成します。

    Custom JVM Properties

    表3.2 Business Central と Realtime Decision Server に必要なプロパティー

    名前説明

    org.jboss.logging.provider

    jdk

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

    org.apache.wink.jaxbcontextcache

    off

    このプロパティーは、IBM WebSphere Apache Wink フレームワークが JAXBContexts をキャッシュしないようにします。キャッシュが行われると、パフォーマンスにマイナスの影響があり、REST API のカスタムタイプのシリアライズへの干渉が生じるためです。

    表3.3 Business Central に必要なプロパティー

    名前説明

    jbpm.ut.jndi.lookup

    jta/usertransaction

    タイマーなどの非管理スレッドからユーザートランザクションを検索するために使用されます。

    org.uberfire.start.method

    ejb

    Uberfire の起動可能な Beans を定義します。

    business-central.war のデプロイ時に以下の警告メッセージが表示される場合、このプロパティーを設定します。

    WARNING: Unable to instantiate EJB Asynchronous Bean. Falling back to Executors' CachedThreadPool
    注記

    Red Hat JBoss BRMS は組み込みバージョンの Git を使用してアーティファクトのバージョン管理を行います。このバージョンの Git は、標準および SSH アクセス (org.uberfire.nio.git.ssh.port) のそれぞれについてポート 9418 および 8001 を使用します。

    これらの組み込み Git ポートが IBM WebSphere Application Server のお使いのバージョンですでに使用されていないことを確認します。

    これらのポートが使用されており、デフォルト Git ポートを変更する場合、それらは上記の手順を使用し、org.uberfire.nio.git.daemon.port および org.uberfire.nio.git.ssh.port プロパティーを設定して変更することができます。

    詳細は、以下の ng LDAP プリンシパルおよびロール名の一致条件の設定 セクションを参照してください。

    表3.4 Realtime Decision Server に必要なプロパティー

    名前説明

    kie.server.jms.queues.response

    jms/conn/KIE.SERVER.RESPONSE

    Realtime Decision Server で使用される応答用の接続ファクトリーの JNDI 名。

    org.kie.server.domain

    WSLogin

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

    org.jbpm.designer.perspective

    ruleflow

    コマンドラインのこの引数は、デザイナーのデフォルトパースペクティブを Full ではなく RuleFlow に強制的に設定します。

    org.jbpm.server.ext.disabled

    true

    When set to true, disables BPM support (for example, processes support). Must be disabled for BRMS.

    org.jbpm.ui.server.ext.disabled

    true

    When set to true, disables the Intelligent Process Server UI extension. Must be disabled for BRMS.

  7. これらの設定内容をマスター設定に保存します。
  8. IBM WebSphere Application Server を再起動して変更を有効にします。

3.8. LDAP プリンシパルおよびロール名の一致条件の設定

ssh を使用し、Business Central にバンドルされる Git サーバーと対話するクライアントアプリケーションは、Uberfire サーバーによって提供されるセキュリティー API を使用して git 操作を実行できるように認証され、承認されます。Red Hat JBoss BRMS アプリケーションが、LDAP セキュリティーレルムを使用して WebSphere Application Server (WAS) にデプロイされる場合、git クライアントは予想通りに許可されない場合があります。それは、WAS で割り当てられるプリンシパル (ユーザーまたはグループ名) の識別名 (DN) が LDAP でそのプリンシパルに関連付けられるより複雑な DN になるためであり、これにより、Uberfire サーバーがロールをマップしようとする際に名前の不一致が生じます。ロールマッピングが失敗しないようにするために、システムプロパティー org.uberfire.ldap.regex.role_mapper を使用して、LDAP プリンシパルのロール名への一致条件を制御します。

システムプロパティー org.uberfire.ldap.regex.role_mapper は、LDAP プリンシパル名をアプリケーションのロール名にマップするために使用される regex パターンです。このパターンには、プリンシパル値をロール名に一致させる際にアプリケーションのロール名で置き換えられる変数 role が含まれることを確認します。パターンが一致する場合にのみ、ロールがユーザーに追加されます。

たとえば、LDAP の管理者グループの識別名 (DN) が cn=admin,ou=groups,dc=example,dc=com であり、意図されるロールが admin の場合、プロパティー org.uberfire.ldap.regex.role_mapper に以下の値を設定すると admin ロールで一致項目を見つけることができます。

cn[\\ ]*=[\\ ]*role