33.6 WebSphereのインストール後の手順

33.6.1 識別情報アプリケーションのインストール後のWebSphereクラスタの設定

このセクションでは、識別情報アプリケーションを使用するためにWebSphereクラスタを設定するプロセスの概要について説明します。このセクションの説明は、WebSphereアプリケーションサーバ(WAS)を熟知しているユーザを想定しています。

  1. (状況によって実行) RBPMでセッションフェールオーバーを使用するには、次の手順を実行します。

    1. IBM管理コンソールで[アプリケーション・サーバー]>[clustermember1]>[セッション管理]>[分散環境設定]>[チューニング・パラメーター]>[カスタム・チューニング・パラメータ]の順に移動します。

    2. [すべてのセッション属性]モードを指定します。これは、セッションフェールオーバーの書き込みの内容を制御します。

  2. アプリケーションサーバを起動し、展開時に指定したコンテキストを使用してユーザアプリケーションポータルにアクセスします。

33.6.2 ユーザアプリケーション環境設定ファイルとJVMシステムプロパティの追加

このセクションでは、識別情報アプリケーションがWebSphereアプリケーションサーバ上で動作するために必要なJVMシステムプロパティを新規作成する方法について説明します。

  1. WebSphere管理コンソールに管理者ユーザとしてログインします。

  2. 左側ペインで[サーバー]>[アプリケーション・サーバー]の順にクリックします。

  3. サーバのリストから該当するサーバ名をクリックします。たとえば、[server1]をクリックします。

  4. コンテンツペインの設定リストで、[サーバー・インフラストラクチャー]の下にある[Java およびプロセス管理]をクリックします。

  5. リンクを展開して、[プロセス定義]を選択します。

  6. [追加プロパティー]のリストで[Java 仮想マシン]をクリックします。

  7. JVMページの[追加プロパティー]の見出しで[カスタム・プロパティー]をクリックします。

  8. extend.local.config.dir JVMシステムプロパティを追加するには、次の手順を実行します。

    1. [新規]をクリックします。

    2. [名前]では「extend.local.config.dir」を指定します。

    3. [値]ではhibernate.cfg.xmlファイルが置かれているディレクトリのフルパスを指定します。たとえば、「/opt/netiq/idm/apps/UserApplication/」と指定します。

    4. [説明]ではプロパティの説明を指定します。

      たとえば、識別情報アプリケーション設定ファイルのパスを指定します。

    5. [OK]をクリックしてプロパティを保存します。

  9. idmuserapp.logging.config.dir JVMシステムプロパティを追加するには、次の手順を実行します。

    1. [新規]をクリックします。

    2. [名前]では「idmuserapp.logging.config.dir」を指定します。

    3. [値]ではidmuserapp_logging.xmlファイルが置かれているディレクトリのフルパスを指定します。

      たとえば、「/opt/netiq/idm/apps/UserApplication/」と指定します。

    4. [説明]ではプロパティの説明を指定します。

      たとえば、識別情報アプリケーションのログ設定ファイルのパスを指定します。

    5. [OK]をクリックしてプロパティを保存します。

  10. com.netiq.ism.config JVMシステムプロパティを追加するには、次の手順を実行します。

    1. [新規]をクリックします。

    2. [名前]では「com.netiq.ism.config」を指定します。

    3. [値]ではism-configuation.propertiesファイルのファイル名を含むフルパスを指定します。

      たとえば、「/opt/netiq/idm/apps/UserApplication/ism-configuation.properties」と指定します。

    4. [説明]ではプロパティの説明を指定します。

      たとえば、識別情報アプリケーションのism propertiesファイルを指定します。

    5. [OK]をクリックしてプロパティを保存します。

  11. (状況によって実行)クラスタ化環境のワークフローエンジンIDを指定するには、次の手順を実行します。

    1. [新規]をクリックします。

    2. [名前]では「com.novell.afw.wf.engine-id」を指定します。

    3. [値]ではワークフローエンジンのIDを指定します。

    4. [説明]ではプロパティの説明を指定します。たとえば、「workflow engine ID」と指定します。

    5. [OK]をクリックしてプロパティを保存します。

33.6.3 共有ライブラリの作成と適用

識別情報アプリケーションの共有ライブラリを設定する必要がある場合があります。共有ライブラリを作成した場合、WebSphereがIdentity ManagerバージョンのJARファイルを使用することを保証するために、このライブラリを新しいクラスローダに適用する必要もあります。適用しない場合、WebSphereに付属するJARファイルでクラスロードの問題が発生します。WebSphereでクラスロードの問題がある場合、次の種類の例外として出現する可能性があります。

  • ClassCastException

  • ClassNotFoundException

  • NoClassDefFoundException

  • UnsatisfiedLinkError

  • LinkageError

このプロセスには次の作業が含まれます。

共有ライブラリの設定

  1. WebSphere管理コンソールに管理者ユーザとしてログインします。

  2. 左側ペインで、[環境]を展開します。

  3. [共有ライブラリー]をクリックします。

  4. コンテンツペインで、[新規]をクリックします。

  5. 名前を指定します(「IDMUAクラスパス」など)。

  6. [クラスパス]では次の必須JARファイルを追加します。

    • log4j.jar

    • commons-logging-1.1.1.jar

    • IDMselector.jar

    これらのファイルは、デフォルトでは識別情報アプリケーションのインストールディレクトリにあります。たとえば、/opt/netiq/idm/apps/UserApplicationディレクトリです。

  7. [この共有ライブラリーに分離クラス・ローダーを使用する]の選択を解除します。

  8. [OK]をクリックします。

  9. [保存]をクリックしてマスタ環境設定に変更を保存します。

新しいクラスローダへの共有ライブラリの適用

  1. WebSphere管理コンソールに管理者ユーザとしてログインします。

  2. [アプリケーション・サーバー]>[server-name]>[クラス・ローダー]の順に展開します。

    メモ:デフォルトでは、このオプションは[Java およびプロセス管理]セクションの下で縮小されています。

  3. コンテンツペインで[新規]をクリックし、新しいクラスローダを作成します。

  4. [最初にローカル・クラス・ローダーをロードしたクラス (親は最後)]を選択します。

  5. [適用]をクリックします。

  6. [共有ライブラリー参照]を選択します。

  7. [追加]をクリックし、共有ライブラリの設定で作成した共有ライブラリを選択します。

  8. [適用]をクリックします。

  9. [OK]をクリックします。

  10. [保存]をクリックしてマスタ環境設定に変更を保存します。

33.6.4 WebSphereキーストアへのeDirectoryルート認証局のインポート

このセクションでは、eDirectoryルート認証局の証明書をWebSphereサーバをホストするコンピュータ上のキーストアにインポートする方法について説明します。このプロセスは、次のどちらかの方法で実行できます。

WebSphere管理者コンソールを使用した証明書のインポート

  1. WebSphereサーバをホストするコンピュータにeDirectoryルート認証局の証明書をコピーします。

    Identity Managerは、WebSphereのIBM JREの次の場所にある証明書をインポートします。

    • cacertsファイル

    • /lib/securityディレクトリ(例:/opt/IBM/WebSphere/AppServer/java_1.7_64/jre/lib/security)

  2. WebSphere管理コンソールに管理者ユーザとしてログインします。

  3. 左側ペインで[セキュリティー]>[SSL 証明書および鍵管理]の順に展開します。

  4. コンテンツペインで[関連項目]の下の[鍵ストアおよび証明書]をクリックします。

  5. [NodeDefaultTrustStore](または使用している認証ストア)を選択します。

  6. [追加プロパティー]の下にある[署名者証明書]をクリックします。

  7. [追加]をクリックします。

  8. エイリアス名と証明書ファイルへのフルパスを入力します。

  9. ドロップダウンリストでデータタイプを[Binary DER data]に変更します。

  10. [OK]をクリックします。

    これで、署名者証明書リストに証明書が表示されます。

  11. [保存]をクリックしてマスタ環境設定に変更を保存します。

コマンドラインを使用した証明書のインポート

WebSphereのkeytoolを使用して、証明書をWebSphereキーストアにインポートする必要があります。WebSphereのkeytoolは、デフォルトでは/IBM/WebSphere/AppServer/java/binにあります。ストアタイプはPKCS12です。

  1. WebSphereサーバをホストするコンピュータにeDirectoryルート認証局の証明書をコピーします。

    ユーザアプリケーションのインストール手順では、ユーザアプリケーションをインストールするディレクトリに証明書がエクスポートされます。

  2. WebSphereサーバをホストするマシン上で、コマンドラインからWebSphere keytoolを実行します。

    次に例を示します。

    keytool -import -trustcacerts -file servercert.der -alias myserveralias 
    -keystore trust.p12 -storetype PKCS12
    

    メモ:システム上に複数のtrust.p12ファイルがある場合は、ファイルへのフルパスを指定しなければならないことがあります。

33.6.5 IBM JDKへの無制限ポリシーファイルの適用

識別情報アプリケーションが効率良く動作するには、アプリケーションをインストールしたサーバ上のサポートされているIBM JDKに対して無制限ポリシーファイルを実行する必要があります。また、これらの無制限ポリシーファイルは、RBPMを実行する各WebSphere IBM JDKサーバで適用する必要があります。

各WebSphereサーバのIBM JDKをレビューして、無制限ポリシーファイルが適用されていることを確認します。これらの無制限ポリシーファイルがない場合、RBPMの起動中にIllegal key sizeというエラーが発生します。

33.6.6 preferIPv4StackプロパティをJVMに渡す

識別情報アプリケーションは、JGroupsを使用してキャッシュを実装します。環境設定によっては、mcast_addrのバインディングが確実に成功するように、preferIPv4Stackプロパティをtrueに設定するようにJGroupsが要求します。

このオプションが設定されていない場合、次のエラーが発生する可能性があります。

[10/1/09 16:11:22:147 EDT] 0000000d UDP           W org.jgroups.util.Util
createMulticastSocket could not bind to /228.8.8.8 (IPv4 address); make sure
your mcast_addr is of the same type as the IP stack (IPv4 or IPv6).

次のエラーも発生する可能性があります。

[3/21/12 10:04:32:470 EDT] 00000024 UDP      E org.jgroups.protocols.TP down
failed sending message to null (131 bytes)
        java.lang.Exception: dest=/228.8.8.8:45654 (134 bytes)
    at org.jgroups.protocols.UDP._send(UDP.java:353)

パラメータjava.net.preferIPv4Stack=trueは、たとえばextend.local.config.dirのようなその他のシステムプロパティと同じ方法で設定できるシステムプロパティです。システム設定プロパティの設定についてはセクション 33.6.2, ユーザアプリケーション環境設定ファイルとJVMシステムプロパティの追加、を参照してください。

33.6.7 WebSphereでのJMSの設定

識別情報アプリケーションは、Java Message Service (JMS)の永続ストアを使用して、電子メールメッセージを保持します。JMSが正常に設定されていない場合、アプリケーションサーバのシャットダウンにより、メモリキュー内の電子メールメッセージは失われます。

  1. WebSphere管理コンソールに管理者ユーザとしてログインします。

  2. 新しいバスを作成するには、次の手順を実行します。

    1. [サービス統合]>[バス]の順にクリックします。

    2. [新規]をクリックします。

    3. バスの名前を指定します。たとえば、「IDMProvBus」と指定します。

    4. [バス・セキュリティー]の選択を解除します。

    5. [次へ]をクリックし、変更を確認します。

    6. [完了]をクリックし、[保存]をクリックします。

  3. バスを設定するには、次の手順を実行します。

    1. [サービス統合]>[バス]の順にクリックし、ステップ 2で作成したバスを選択します。

    2. [構成]>[一般プロパティー]の順にクリックします。

    3. バスの説明を指定します。たとえば、「Bus to be used with the IDM Applications」と指定します。

    4. [適用]をクリックし、[保存]をクリックします。

    5. [構成]タブで[トポロジー]>[バス・メンバー]をクリックします。

    6. [追加]をクリックします。

    7. IDMProv.warファイルの展開先としてサーバ、クラスタ、またはWebSphere MQサーバのいずれかを指定して、[次へ]をクリックします。

    8. [ファイル・ストア]では、メッセージストアのタイプを指定し、[次へ]をクリックします。

    9. ファイルストアのデフォルト値をレビューし、[次へ]をクリックします。

    10. (オプション)バスのパフォーマンスパラメータを調整します。

    11. [次へ]をクリックし、[完了]をクリックします。

  4. バスのトピック接続を作成するには、次の手順を実行します。

    1. [リソース]>[JMS]>[トピック接続ファクトリー]の順に移動します。

    2. [有効範囲]メニューで適切な有効範囲を選択します。たとえば、[ノード=MyNode01, サーバー=server1]を選択します。

    3. [新規]をクリックします。

    4. [デフォルトのメッセージング・プロバイダー]を選択し、[OK]をクリックします。

    5. [構成]をクリックします。

    6. トピック接続の名前を指定します。たとえば、「ConnectionFactory」と指定します。

    7. [JNDI名]では名前と同じ値を指定します。たとえば、「ConnectionFactory」と指定します。

    8. トピック接続の簡単な説明を指定します。たとえば、「Topic Connection Factory to be used with the IDM Applications」と指定します。

    9. [バス名]では、ステップ 2で作成したバスを選択します。

    10. [永続サブスクリプション]>[クライアント]の順にクリックし、「IDMNotificationDurableTopic」を指定します。

    11. [サービスの品質]>[パーシスタント・メッセージの信頼性]の順にクリックし、[Reliability persistent]を選択します。

    12. [永続サブスクリプションを共有]>[拡張メッセージング]の順にクリックし、[共有しない]を選択します。

    13. [適用]をクリックし、[完了]をクリックします。

  5. トピックを作成するには、次の手順を実行します。

    1. [リソース]>[JMS]>[トピック]の順に移動します。

    2. 使用する有効範囲を選択します。たとえば、[ノード=MyNode01, サーバー=server1]を選択します。

    3. [新規]をクリックします。

    4. [デフォルトのメッセージング・プロバイダー]を選択し、[OK]をクリックします。

    5. [構成]をクリックします。

    6. トピックの名前を指定します。たとえば、「IDMNotificationDurableTopic」と指定します。

    7. [JNDI名]では、「topic/name」の構文を使用します。たとえば、「topic/IDMNotificationDurableTopic」と指定します。

    8. トピック接続の簡単な説明を指定します。たとえば、「Topic to be used with the IDM Applications」と指定します。

    9. [バス名]では、ステップ 2で作成したバスを選択します。

    10. [トピック・スペース]をクリックし、[Default. Topic.Space]を選択します。

    11. [JMS デリバリー・モード]をクリックし、[パーシスタント]を選択します。

    12. [適用]をクリックし、[保存]をクリックします。

  6. WebSphereコンソールからログアウトします。

  7. 識別情報アプリケーションのWARをデプロイしたサーバ上でWebSphereを再起動します。

  8. JMSサーバが正しく設定されていることを検証するために、SystemOut.logファイルをチェックします。

    正しく設定されていない場合

    JMSサーバが正しく設定されていない場合、SystemOut.logファイルには次の行がこの順序で表示されます。

    INFO  [JMSConnectionMediator] Starting JMS notification system
    WARN  [NotificationEngine] Could not properly initialize JMS persistence for the notification system. Will revert back to non-persistent asynchronous notification system. 
    INFO  [NotificationThread] Starting asynchronous notification system 
    
    正しく設定されている場合

    正しく設定されている場合、SystemOut.logファイルには次のタイプの情報がこの順序で表示されます。

    INFO  [JMSConnectionMediator] Starting JMS notification system
    %connection information%
    INFO  [NotificationThread] Starting asynchronous notification system
    
    
    ========
    
    [9/7/14 14:39:52:167 EDT] 00000000 SibMessage    I   [:] CWSID0021I: Configuration reload is enabled for bus IDMProvBus. 
    [9/7/14 14:39:52:372 EDT] 00000000 SibMessage    I   [:] CWSIS1569I: Messaging engine N35020Node02.server1-IDMProvBus is using a file store. 
    
    ========
    
    [9/7/14 14:41:32:613 EDT] 0000000c SystemOut     O 14:41:32,608 INFO  [JMSConnectionMediator] Starting JMS notification system 
    
    [9/7/14 14:41:32:841 EDT] 0000000c SharedPool    I   J2CA0086W: Shareable connection MCWrapper id 5c175c17  Managed connection [com.ibm.ws.sib.api.jmsra.impl.JmsJcaManagedConnection@490f490f <managedConnectionFactory=[com.ibm.ws.sib.api.jmsra.impl.JmsJcaManagedTopicConnectionFactoryImpl@1f9c1f9c <logWriter=null> <busName=IDMProvBus> <clientID=IDMNotificationDurableTopic> <userName=null> <password=null> <xaRecoveryAlias=> <nonPersistentMapping=ExpressNonPersistent> <persistentMapping=ReliablePersistent> <durableSubscriptionHome=N35020Node02.server1-IDMProvBus> <readAhead=Default> <temporaryQueueNamePrefix=null> <temporaryTopicNamePrefix=null> <target=null> <targetSignificance=Preferred> <targetTransportChain=null> <targetType=BusMember> <providerEndpoints=null> <connectionProximity=Bus> <shareDataSourceWithCMP=false> <shareDurableSubscriptions=NeverShared> <cachedFactory=com.ibm.ws.sib.api.jms.impl.JmsFactoryFactoryImpl@4fb24fb2> <producerDoesNotModifyPayloadAfterSet=false> <consumerDoesNotModifyPayloadAfterGet=false>]> <coreConnection=com.ibm.ws.sib.processor.impl.ConnectionImpl@b0b0b0b> <localTransaction=[com.ibm.ws.sib.api.jmsra.impl.JmsJcaManagedConnection$JmsJcaLocalTransaction@78ce78ce <localSITransaction=null>]> <xaResource=null> <metaData=null> <userDetails=[com.ibm.ws.sib.api.jmsra.impl.JmsJcaUserDetails@5b4d5b4d <userName=null> <password=null>]> <subject=null> <logWriter=null> <sessions=[[com.ibm.ws.sib.api.jmsra.impl.JmsJcaSessionImpl@21ff21ff <managedConnection=1225738511> <connection=828453217> <transacted=false> <applicationLocalTransaction=null> <reqInfo=[com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionRequestInfo@219a219a> <userDetails=null> <coreConnection=com.ibm.ws.sib.processor.impl.ConnectionImpl@b0b0b0b> <request counter=0>]> <sessionClosed=false> <sessionInvalidated=false>]]> <connectionListeners=[com.ibm.ejs.j2c.ConnectionEventListener@1572625852]>]  State:STATE_TRAN_WRAPPER_INUSE 
     from resource ConnectionFactory was used within a local transaction containment boundary. 
    
    [9/7/14 14:41:32:938 EDT] 0000001a SystemOut     O 14:41:32,938 INFO  [NotificationThread] Starting asynchronous notification system