この付録は、Oracle Identity ManagerおよびSOAのクラスタ化デプロイメントを取り扱うOracle Identity Manager管理者および開発者とWebLogic管理者が使用できます。ここでは、eclipselink/toplinkキャッシュ・コーディネーションに問題があると考えられる(ログに次の例外が表示されている)場合に、Oracle Identity Managerとその必須コンポーネントのクラスタ化インストールの起動手順を検証、テストおよび修正するための指針のいくつかを提示します。
oracle.iam.platform.kernel.ProcessNotInPrePostStageException
この章には次の項目があります。
クラスタ環境でEclipseLinkキャッシュ・コーディネーションが正常に実行されるようにするには、クラスタ化ノードを1つずつ起動する必要があります。すべてのノードを一度に起動すると、キャッシュ・コーディネーションの初期化が適切に実行されない可能性があります。また、各種管理対象サーバーの初期起動も重要であり、サーバーを不適切な順序で起動すると、一部のデータのシードが失敗する可能性があります。
Oracle Identity Manager、SOAおよびWebLogicサービスを起動するには:
WebLogic管理サーバーを最初に起動し、RUNNING状態になるまで待機します。
SOAクラスタのノードの1つを起動し、RUNNING状態になるまで待機します。
次のSOA管理対象サーバーを起動し、RUNNING状態になるまで待機します。
すべてのSOA管理対象サーバーに対して手順3を繰り返します。
最初のOracle Identity Manager管理対象サーバーを起動し、RUNNING状態になるまで待機します。
次のOracle Identity Manager管理対象サーバーを起動し、RUNNING状態になるまで待機します。
残りの各Oracle Identity Manaager管理対象サーバーに対して手順6を一度に1回ずつ繰り返します。
すべてのサービスがRUNNING状態になったら、2分待機してから、エンド・ユーザーによる操作やシステムの他のビジネス使用を許可します。
oim-config.xmlファイル内でdeploymentMode
がcluster
に設定されており、MDSがoim-config.xmlファイルファイルに対する変更によって更新されていることを確認します。/db/oim-config.xmlのエクスポートを実行し、その内容が次のようなものであることを確認します。
<deploymentConfig>
<appServerName>weblogic</appServerName>
<initialContextFactory>weblogic.jndi.WLInitialContextFactory</initialContextFactory>
<dataBaseType>oracle</dataBaseType>
<deploymentMode>cluster</deploymentMode>
</deploymentConfig>
各クラスタ独自の一意のマルチキャスト・アドレスがMDS内のoim-config.xmlファイルで構成されていることを確認します。本番環境とテスト環境で同じマルチキャストIP構成を共有しないようにする必要があります。たとえば、次の各設定が同じmulticastAddress
値を共有しないようにする必要があります。
<xLCacheProviderProps multicastAddress="IP_ADDRESS" size="5000">
<properties></properties>
</xLCacheProviderProps>
他のOracle Identity Managerデプロイメントと同じmulticastAddress
値を共有しないでください。この値がテスト・ドメインで使用されている場合は、本番のoim-config.xmlファイルで同じアドレスを指定しないでください。
EclipseLinkでは、キャッシュ・コーディネーション用としてマルチキャスト・ネットワーキングも使用します。EclipseLinkキャッシュ・コーディネーションでは、マルチキャスト・ポート3121と15ホップのTTL (Time To Live)設定を使用します。これは構成不可能です。ファイアウォールでは、使用環境のマルチキャスト・ネットワーキング要件をすべて考慮する必要があります。
マルチキャスト・ネットワークで簡単なテストを実行する方法の詳細は、次の技術情報を参照してください。
OIMノード間のマルチキャスト接続性のテスト(ドキュメントID 1360763.1)
WebLogicクラスタ内のマルチキャスト・モニター・テストの実行方法(ドキュメントID 1064062.1)
これらの技術情報は、次の場所にあるMy Oracle SupportのWebサイトで参照できます。
EclipseLink/Toplinkの追加ロギングを有効にするには、logging.xmlファイルに次を追加します。
<logger name='org.eclipse.persistence.session.oim.propagation' level='TRACE:32' useParentHandlers='false'> <handler name='odl-handler'/> </logger>
変更を有効にするには、ドメインを再起動します。
Oracle Identity Managerでは、通常の操作にマルチキャストIPネットワーク通信を使用します。これは、Oracle Identity Manager内のDesign Consoleおよびアプリケーション・レベルのキャッシングによって使用されます。場合によっては、ホストまたはルーターでマルチキャスト・ネットワーキングが無効である可能性があります。この項では、Oracle Identity Managerクラスタの複数のノード間でマルチキャスト通信が機能しているかどうかをテストおよび検証する方法について説明します。
WebLogicのクラスタ化Oracle Identity Manager環境の各種ノード間でマルチキャスト・パケットを送受信できるかどうかを確認するには:
Oracle Identity Managerによって使用されているマルチキャストIPアドレスを取得します。これを行うには、次のようにします。
Identity and Access、OIM、oim(OIM_SERVER)を展開し、右側のペインにあるドロップダウン・メニューからシステムMBeanブラウザを表示します。
Application Defined MBeans、oracle-iam、MANAGED_SERVER_NAME、Application: oim、XMLConfig、config、XMLConfig.CacheConfig.XLCacheProvider、XLCacheProvider内のMulticastAddress
属性に定義されているIPアドレスを表示します。
関連するホストごとにコマンド・ウィンドウを開きます。
MIDDLEWARE_HOMEディレクトリに移動します。
使用しているバージョンに応じたcoherenceディレクトリ(coherence_3.6やcoherence_3.7など)に移動します。
bin
ディレクトリ内のスクリプトに実行権限がない場合は、次のように、chmod
コマンドを使用して実行権限を有効にします。
chmod u+x bin/*.sh
次のコマンドを実行し、マルチキャスト・パケットの送受信を開始します。
bin/multicast-test.sh -group MULTICAST_IP_ADDRESS:PORT
ここで、MULTICAST_IP_ADDRESSは、手順1で取得したIPアドレスです。
サンプル出力は次のようになります。
Starting test on ip=iam.example.com/10.10.10.10, group=/IP_ADDRESS:12345, ttl=4 Configuring multicast socket... Starting listener... Wed Feb 21 21:49:59 UTC 2015: Sent packet 1 containing 1468 bytes. Wed Feb 21 21:49:59 UTC 2015: Received test packet 5 from ip=idmsun.example.com/10.20.20.20, group=/IP_ADDRESS, ttl=4 containing 1468 bytes. Wed Feb 21 21:50:00 UTC 2015: Received test packet 1 from self (sent 1628ms ago). Wed Feb 21 21:50:01 UTC 2015: Received test packet 6 from ip=idmsun.example.com/10.20.20.20, group=/IP_ADDRESS:12345, ttl=4 containing 1468 bytes. Wed Feb 21 21:50:02 UTC 2015: Sent packet 2 containing 1468 bytes. Wed Feb 21 21:50:02 UTC 2015: Received test packet 2 from self Wed Feb 21 21:50:03 UTC 2015: Received test packet 7 from ip=idmsun.example.com/10.20.20.20, group=/IP_ADDRESS:12345, ttl=4 containing 1468 bytes.
ここで、multicast-testスクリプトは、同じIPアドレスとポート番号を使用してiam.example.comサーバーとidmsun.example.comサーバーの両方に対して実行されています。iam.example.comホストは、マルチキャスト・パケットを送信できるだけでなく、idmsun.example.comホストからパケットを受信することもできます。各ホストがクラスタ内の他のすべてのホストからパケットを受信していることを確認するために、テスト・スクリプトの出力をほんの少しの間、観察する必要があります。self
からのパケットのみを確認できる場合、このホストはmulticast-testスクリプトを実行している他のシステムからのテスト・パケットを受信していません。
注意: TTL (Time To Live)に指定されているネットワーク・ホップ数内にホストがない場合、コマンドに-ttl 10 を追加することによってttlを変更できます。 |
EclipseLinkでは、キャッシュ・コーディネーションにもマルチキャスト・ネットワーキングを使用します。EclipseLinkキャッシュ・コーディネーションでは、マルチキャスト・ポート3121および15ホップのTTL設定を使用します。デフォルトのOracle Identity Managerマルチキャスト・ポートとEclipseLinkポートの両方をテストしてください。
注意: マルチキャストに2番目のNICが使用される場合、次のように、-local 属性とともにインタフェースを指定してください。
multicast-test.sh -local UNICAST_ADDRESS -group IP_ADDRESS:12345 UNICAST_ADDRESSは、マルチキャスト・ネットワークに使用されるインタフェース上のユニキャスト・アドレスです。詳細は、次の場所にあるMy Oracle SupportのWebサイトの技術情報「Coherenceクラスタ・メンバーが実行されているバッチ間でマルチキャスト通信が正しく動作しているかどうかを確認する方法(ドキュメントID 1936452.1)」を参照してください。 |
WebLogicが使用されておらず、対応するマルチキャスト・テスト・スクリプトがない場合、一組の小規模なJavaコマンド行アプリケーションをテスト用として使用することもできます。詳細は、次の場所にあるMy Oracle SupportのWebサイトの技術情報「ネットワーク上でマルチキャストが有効であるかどうかをテストする方法(ドキュメントID 413783.1)」を参照してください。