第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

3.1. JVM ヒープサイズの拡大
デフォルトの JVM ヒープサイズの場合、IBM WebSphere Application Server は Business Central のデプロイ時にフリーズするか、またはエラーが発生します。ヒープサイズを拡大するには、以下を実行します。
- Integrated Solutions Console で、Servers → Server Types → WebSphere Application Servers に移動します。
アプリケーションの一覧で、Business Central をデプロイするサーバーをクリックします (例:
server1)。選択したサーバーの設定ページが開きます。
右側の Server Infrastructure の見出しで、Java and Process Management → Process Definition をクリックします。
図3.2 Application Server 設定ページ

右側の Additional Properties の見出しにある Java Virtual Machine をクリックします。
図3.3 プロセス定義の設定ページ

ここで、サーバーの起動に使用する JVM の設定プロパティーが表示されます。
Initial Heap Size と Maximum Heap Size を
2048に変更します。これは Red Hat JBoss BRMS でテスト済みの設定です。図3.4 JVM 設定ページ

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

- この時点でサーバーを再起動するか、または設定の変更が加えられるまで待機します。
3.2. セキュリティー設定の変更
Business Central アプリケーションを機能させるには、IBM WebSphere Application Server でセキュリティーの設定を変更する必要があります。サーバーが提供するコンテナーで管理される認証メカニズムを有効にするには、以下を実行します。
メインメニューで、Security → Global Security をクリックします。オプション Enable Application Security にチェックが付けられていることを確認します。これはすでにチェックが付けられいるものの、サーバーレベルで上書きされている場合があります。
図3.6 グローバルセキュリティー設定ページ

右側の Custom Properties をクリックしてから New… を選択し、以下の詳細情報を使って新規カスタムプロパティーを入力します。
-
Name:
com.ibm.ws.security.web.logoutOnHTTPSessionExpire -
Value:
true
このプロパティーの設定により、サーバーはセッションの無効化により LTPA トークンを無効にします。これにより、同じブラウザーを使う複数ユーザーのログアウトのプロセスの一貫性を維持することができます。
-
Name:
- Apply をクリックしてから、OK をクリックします。
3.3. ユーザーおよびグループの作成
- 左側のメインメニューで、Users and Groups → Manage Groups をクリックします。
Create… をクリックして、
adminおよびanalystという 2 つのグループを新規に作成します。図3.7 作成されたグループ
注記Realtime Decision Server をインストールする場合は
kie-serverグループも追加します。また、API を使用する場合は REST API グループを追加します。API ロールについての詳細は、「Red Hat JBoss BPM Suite Development Guide の Remote API」の章を参照してください。- 左側のメインメニューで、Users and Groups → Manage Users をクリックします。
Create… をクリックし、ユーザーの認証情報を入力します。
重要選択した User ID がロールまたはグループの既知のタイトルと競合 しない ことを確認してください。
たとえば、
adminと呼ばれるロールがある場合に、adminという名前のユーザーを作成 することはできません。図3.8 ユーザーの作成ダイアログウィンドウ

Group Membership をクリックし、ユーザーを前に作成した
adminグループに割り当てます。注記このユーザーは、作成したグループのいずれにも割り当てることができます。実稼働システムでは、ビジネスロールに連動するように個別のグループに個別のユーザーを作成することが予想されます。
adminグループはこれらすべてを包含するグループであるため、この設定の目的で使用できます。- Create をクリックします。
3.4. セッション管理カスタム設定
- 左側のメインメニューで、Servers → Server Types → WebSphere Application Servers に移動し、Business Central をデプロイするサーバーを選択します。
- 右側の Container Settings の見出しにある Session Management をクリックします。
- 右側の Additional Properties セクションで、Custom Properties をクリックしてから New… をクリックします。
必要な情報を入力します。
-
Name:
InvalidateOnUnauthorizedSessionRequestException -
Value:
true
-
Name:
- Apply をクリックしてから、OK をクリックします。
3.5. データソースのセットアップ
Business Central アプリケーションにはデータソースが必要であり、データソースは実際の WAR ファイルのデプロイメント前に作成しておく必要がありす。つまり、データソースの接続先の基礎となるデータベースにアクセスできる状態でなければなりません。使用する基礎となるデータベースの種類を問わず、データソースの準備ができていることを確認してください。以下の手順に従ってデータソースを設定します。
以下の手順では、Oracle Database 12c でのデータソースの設定が説明されています。
JDBC プロバイダーの作成
- Resources → JDBC → JDBC Providers をクリックして JDBC Providers ページを開きます。
JDBC Providers ページの上部にある Scope をクリックします。お使いのサーバーとノードを含むようにこの JDBC プロバイダーのスコープを選択します。
すべてのスコープは指定 できない ことに注意してください。図3.9 JDBC プロバイダーのスコープ設定

New… をクリックします。
Create a New JDBC Provider ページが開きます。
選択できるデータベースドライバーに基づいてフォームに入力します。
図3.10 新規 JDBC プロバイダーの作成の最初の手順

データベースが一覧表示されていない場合は、Database Type 選択ボックスで User-Defined オプションを選択し、実装クラス名を指定します。
たとえば H2、PostgreSQL、または MySQL の場合、実装クラス名はそれぞれ
org.h2.jdbcx.JdbcDataSource、org.postgresql.xa.PGXADataSource、およびcom.mysql.jdbc.jdbc2.optional.MysqlXADataSourceになります。- JDBC プロバイダーに説明的な名前を指定し、Next をクリックします。
定義した JDBC ドライバークラスファイルのクラスパス情報を指定します。Apply をクリックします。
図3.11 データベースクラスパスの定義

- Next をクリックします。
Finish をクリックしてこの新規の JDBC プロバイダーを受け入れ、追加します。
図3.12 JDBC プロバイダー概要ページ

この新規 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 に変更します。
データソースのセットアップ
- 左側のメインメニューで Resources → JDBC → Data Sources をクリックして Data Sources ページを開き、適切なスコープが選択されていることを確認します。
- New… をクリックします。
このデータソースの参照に使用する一意の データソース名、および
persistence.xmlファイルにある JNDI 名を入力します。図3.13 新規データソース作成の最初の手順

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

データソースのデータベース固有のプロパティーの入力 の手順で、データベース JDBC URL を入力し、Next をクリックします。
図3.15 データソースのデータベース固有プロパティーの入力画面

Setup Security Aliases 画面で、このデータソースに接続するための認証値を設定します。エイリアスが作成されていない場合は、画面下にある Global J2C Authentication Alias をクリックします。この場合、Create a Data Source ウィザードが取り消されることに注意してください。
- New… をクリックします。
Alias、User ID、および Password に入力します。
図3.16 新規セキュリティーエイリアスの作成

- OK をクリックします。
Setup Security Aliases 画面に戻り、Component-Managed Authentication Alias を新規に作成されたエイリアスに設定し、Mapping-Configuration Alias を
DefaultPrincipalMappingに設定します。また、XA リカバリーの別のエイリアスを作成し、設定することもできます。Authentication Alias for XA Recovery が
(none)に設定されている場合、コンポーネントで管理される認証エイリアスがデフォルトで使用されます。図3.17 セキュリティーエイリアスの設定

Next をクリックします。
Summary 画面で、値を確認し、Finish をクリックします。また、変更をマスター設定に保存する選択をします。
図3.18 データソース作成の概要画面

- すべてのデータソースの一覧から作成されたデータソースを選択し、基本的なメタプロパティーを指定します。
左側の Additional Properties セクションで Custom Properties をクリックします。
serverName、databaseName、userName、およびpasswordなどのプロパティーを作成される必要あり、データベースごとに異なるものである必要があります。以下に、データベースプロパティーのいくつかの例を示します。表3.1 各種データベースのカスタムプロパティー
データベース プロパティー H2
URL、user、passwordMySQL
serverName、databaseName、port、user、passwordPostgreSQL
serverName、databaseName、portNumber、user、passwordOracle
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 メッセージの送受信をするように設定される必要があります。ただし、これを実行する前に、サービスバスが存在することを確認してください。サービスバスがない場合は、以下の手順に従ってサービスバスを作成します。
バスのセットアップ
サービスバスの作成
- 左側のメインメニューで、Service Integration → Buses をクリックします。
- New… をクリックします。
- 名前を入力し、Bus Security オプションが unchecked であることを確認します。
- Next をクリックしてから Finish をクリックし、サービスバスを作成します。
バスメンバーの追加
続行する前に、新規のバスメンバーを追加します。バスメンバーは、このサービスバスに追加されているサーバーまたはクラスターです。
- Service Integration → Buses に移動し、作成したサービスバスをクリックします。
- 右側の Topology の見出しの下で Bus Members をクリックします。
- Add をクリックします。
- Add a New Bus Member ウィザードを使用し、最初の 2 つの手順でサーバーおよび永続性についてのメッセージストアのタイプを選択します。以前の選択内容により、メッセージストアのプロパティーを指定できる場合もあります。
- 最後の手順で Finish をクリックし、新規のバスメンバーを追加します。
JMS 接続ファクトリーの作成
Red Hat JBoss BRMS 間でのメッセージの送受信を実行するには、JMS 接続ファクトリーを作成する必要があります。これは、メッセージをキューに送信するために使用される接続を確立するために必要になります。
Red Hat JBoss BRMS は、Realtime Decision Server 用にのみ Java Messaging Services を必要とします。以下の手順を使用して以下の接続ファクトリーを作成します。 KIE.SERVER.REQUEST、KIE.SERVER.RESPONSE、および KIE.SERVER.EXECUTOR。
上に表示されるファクトリー名は推奨案であり、実際のニーズおよび会社のガイドラインに基づいて名前を変更することができます。
- 左側のメニューで、Resources → JMS → Connection Factories に移動します。
- 適切なスコープが選択されていることを確認し、New をクリックします。
- Default Messaging Provider オプションを選択し、OK をクリックします。
ファクトリーの名前および 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です。-
Name:
Bus Name ドロップダウンリストから、先に作成したサービスバスを選択します。
残りのオプションは必須でないため、デフォルト値を残したままにすることができます。
- Apply をクリックして、変更をマスター設定に保存します。
JMS キューの作成
次の手順では、JMS キューを作成します。これらのキューは、ポイントツーポイントメッセージング (point-to-point messaging) の宛先エンドポイントになります。
Realtime Decision Server の場合、以下のキューを作成します。 KIE.SERVER.REQUEST (要求用)、 KIE.SERVER.RESPONSE (応答用)、および KIE.SERVER.EXECUTOR (実行プログラムのサービス用)。
ログに警告が記録されることを防ぐには、KIE.EXECUTOR キューも作成します。
これらのキューを作成するには、以下を実行します。
- メインメニューで、Resources → JMS → Queues に移動します。
- 適切なスコープが選択されていることを確認し、New をクリックします。
- Default Messaging Provider ラジオボタンを選択してから OK をクリックします。
キューの名前および JNDI 名を入力します。たとえば、以下のようになります。
-
Name:
KIE.SERVER.REQUEST -
JNDI name:
jms/KIE.SERVER.REQUEST
注記他のキューのすべての JNDI 名は上記の例と同じ規則に従います。
-
Name:
- Bus Name ドロップダウンリストから、先に作成したサービスバスを選択します。
Queue Name ドロップダウンリストで、Create Service Integration Bus Destination を選択します。
これにより、新規のサービス統合バスの作成に使用する Create New Queue フォームが開かれます。このフォームでは、一意の識別子を入力し、本章で作成したバスメンバーを選択します。
- 画面下部で Apply をクリックし、変更をマスター設定に保存します。
JMS アクティべーション仕様の作成
JMS アクティべーション仕様は、キューとメッセージ駆動型 Bean 間のブリッジとして機能する必要があります。
Realtime Decision Server の場合、以下のアクティべーション仕様を作成します。 KIE.SERVER.REQUEST (要求用)、KIE.SERVER.RESPONSE (応答用) および KIE.SERVER.EXECUTOR (実行プログラム用)。
ログに警告が記録されることを防ぐには、KIE.EXECUTOR アクティべーション仕様も作成します。
- メインメニューで、Resources → JMS → Activation Specifications に移動します。
- 適切なスコープが選択されていることを確認し、New をクリックします。
- Default Messaging Provider ラジオボタンにチェックを付けてから OK をクリックします。
アクティべーション仕様の名前および JNDI 名を入力します。たとえば、以下のようになります。
-
Name:
KIE.SERVER.REQUEST -
JNDI name:
jms/activation/KIE.SERVER.REQUEST
注記他のアクティべーション仕様のすべての JNDI 名は上記の例と同じ規則に従います。
-
Name:
- Destination Type ドロップダウンリストで、Queue を選択します。
-
Destination JNDI Name (前の手順で作成) を入力します (例:
jms/KIE.SERVER.REQUEST)。 - Bus Name ドロップダウンリストから、先に作成したサービスバスを選択します。
- 画面下部で、残りのフィールド値をそのままに残した状態で OK をクリックし、変更をマスター設定に保存します。
これで、Red Hat JBoss BRMS の IBM WebSphere Application Server での設定に必要な JMS 設定が正常に完了しました。
3.7. カスタム JVM プロパティーの追加
IBM WebSphere Application Server を起動するために使用される JVM にカスタムプロパティーを追加する必要があります。これらのカスタムプロパティーには、本書の前のセクションで説明されている設定変更が反映されます。
- メインメニューで、Servers → Server Types → WebSphere Application Servers に移動します。
- アプリケーションサーバーの一覧で、Business Central をデプロイするサーバーを選択します。
- 右側の Server Infrastructure の見出しで、Java and Process Management → Process Definition をクリックします。
Additional Properties の見出しの下にある Java Virtual Machine をクリックします。
ここで、WebSphere Application Server の起動に使用する JVM の設定プロパティーが表示されます。
- Additional Properties の下で Custom Properties をクリックします。
New… をクリックして以下のプロパティーを作成します。
Custom JVM Properties
表3.2 Business Central と Realtime Decision Server に必要なプロパティー
名前 値 説明 org.jboss.logging.providerjdkこのプロパティーは、
CA SiteMinder TAI (SMTAI)が環境にインストールされている場合のみ必要になります。このプロパティーを使用すると、Hibernate が Dashbuilder 内でログインするためにlog4jではなく、JDKを使用するよう強制します。CA SiteMinder TAI (SMTAI)には古いバージョンのlog4jが含まれており、これにより競合が生じます。org.apache.wink.jaxbcontextcacheoffこのプロパティーは、IBM WebSphere Apache Wink フレームワークが
JAXBContextsをキャッシュしないようにします。キャッシュが行われると、パフォーマンスにマイナスの影響があり、REST API のカスタムタイプのシリアライズへの干渉が生じるためです。表3.3 Business Central に必要なプロパティー
名前 値 説明 jbpm.ut.jndi.lookupjta/usertransactionタイマーなどの非管理スレッドからユーザートランザクションを検索するために使用されます。
org.uberfire.start.methodejbUberfire の起動可能な 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.responsejms/conn/KIE.SERVER.RESPONSERealtime Decision Server で使用される応答用の接続ファクトリーの JNDI 名。
org.kie.server.domainWSLoginJMS の使用時にユーザーの認証に使用される JAAS
LoginContextドメイン。org.jbpm.designer.perspectiveruleflowコマンドラインのこの引数は、デザイナーのデフォルトパースペクティブを
FullではなくRuleFlowに強制的に設定します。org.jbpm.server.ext.disabledtrueWhen set to true, disables BPM support (for example, processes support). Must be disabled for BRMS.
org.jbpm.ui.server.ext.disabledtrueWhen set to true, disables the Intelligent Process Server UI extension. Must be disabled for BRMS.
- これらの設定内容をマスター設定に保存します。
- 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