ヘッダーをスキップ

Oracle Communication and Mobility インストレーション・ガイド
10gリリース3(10.1.3)

B50836-01
目次
目次
索引
索引

戻る 次へ

5 Presenceの大規模デプロイ・インストール

この章では、Presenceの大規模デプロイを行う方法について説明します。内容は次のとおりです。

概要

OCMSには独自のPresenceサーバーがあり、クライアントがビジー、可能、会議中などのプレゼンス情報を公開するために使用できます。また、プレゼンス情報の変更時に通知を希望するとして登録したユーザーに、その情報を表示することができます。エンドクライアントの観点では、マルチ・ノードのPresenceサーバーはシングル・ノードと同じです。エンド・ユーザーに対してサーバーはブラックボックスであり、違いに気付くことはありません。

ここでは、基本のPresenceの機能や、OCMS 10.1.3.4の新しい要素であるUser Dispatcherを使用してPresenceサーバーを拡張する方法について説明します。Presenceサーバーの一般的な機能の詳細は、『Oracle Communication and Mobility Server管理者ガイド』を参照してください。

図5-1    Presenceサーバーの一般的な使用方法


画像の説明

定義

大規模なプレゼンス・サービスを適切にインストールして管理するには、きわめて多くの概念を理解する必要があります。ここでは、主要な概念について定義して説明します。

表5-1    Presenceの主要用語 
用語  定義 

Presenceクラスタ 

Y個のロード・バランサが対応するX個のPresenceノードで構成されるクラスタ。詳細は、「Presenceクラスタ」を参照してください。 

Presenceノード 

X個のPresenceサーバー・インスタンス(PS)に対応する1つのUser Dispatcherで構成される物理マシン(ノード)。 

Presenceサーバー(PS) 

Presenceイベントパッケージに対するサブスクライブと公開のリクエストおよびpresenence.winfoに対するサブスクライブを処理する実際のPresenceサーバー(インスタンス)。Presenceサーバーとプレゼンス・サービスを混同しないでください。 

プレゼンス・サービス 

プレゼンス・サービスという語はRFC 2778で定義されており、プレゼンスに関連するすべてのトラフィックを処理するサービスを非常に広義に意味します。これには、ウォッチャ情報のトラフィック、プレゼンティティをサブスクライブするウォッチャ許可を決定するためのトラフィック、実際のプレゼンス更新などが含まれます。 

XDM 

XMLドキュメント管理 

XDMC 

XDMクライアント。XDMネットワークにアクセスする任意のクライアント。Presenceサーバー・インスタンスはXDMクラスタにアクセスするため、XDMクライアントとしても機能します。 

XDMクラスタ 

Y個のロード・バランサが対応するX個のXDMノードで構成されるクラスタ。詳細は、「XDMクラスタ」を参照してください。 

XDMノード 

1つのAggregation Proxy、1つのUser Dispatcher、X個のXDMサーバー(XDMS)で構成される物理マシン(ノード)。 

XDMサーバー(XDMS) 

XMLドキュメントを格納する実際のXDMSインスタンス。XCAPを介してそれらのドキュメントの問合せと処理を行うことができます。XDMSを使用すると、SIP SUBSCRIBE/NOTIFYを使用した、ドキュメントにおける変更のサブスクライブも可能になります。XDMSインスタンスは、Presenceサーバー・インスタンスがPresenceノードで行うのと同じ役割をXDMノードで果します。 

Presenceクラスタ

Presenceクラスタは、図5-2に示すように1つ以上のロード・バランサが対応するPresenceノードのセットです。Presenceクラスタは、該当する場合にNOTIFY:sを送信するために、Presenceイベントパッケージに対するサブスクライブと公開のリクエストを受信して処理します。また、Presenceクラスタは、presence.winfoイベントパッケージに対するサブスクライブ・リクエストも受け取って処理します。

Presenceクラスタは、XDMクラスタとやりとりして、処理を完了するために必要な情報を取得します。XDMクラスタに問い合せる情報には、ユーザーのプレゼンス・ルールやpidf-manipulationドキュメント(つまりユーザーのハードステート)が含まれます。

図5-2    Presenceクラスタ


XDMクラスタ

XDMクラスタは、図5-3に示すように1つ以上のロード・バランサが対応するXDMノードのセットです。XDMクラスタは、すべてのXDM関連トラフィック(つまり、XCAPトラフィックとua-profileイベントパッケージへのSIPサブスクライブ・トラフィック)を処理します。つまり、XMLドキュメントの操作に必要なすべての処理を行います。XDMクラスタは、XMLドキュメントを格納するためにデータベースを使用しますが、データベース(およびそのクラスタ)はXDMクラスタには含まれません。

XDMクラスタはすべてのXMLドキュメントを処理するため、各ノードは共有XDMSとPS XDMSの両方になります。

図5-3    XDMクラスタ


画像の説明

Presenceマルチノード・トポロジ

図5-1は、クライアントが1つのPresenceサーバーとやりとりする様子を示しています。より大きな規模のユーザー・ベースを扱うためには、このような単一サーバーを拡張する必要があります。このためには、PresenceノードとXDMノードをシステムにさらに追加します。このようにして拡張したプレゼンス・サービスは2つのクラスタに分かれます。「定義」で定義したPresenceクラスタとXDMクラスタです。


注意

最終的なプレゼンス・サービスが複数の別個のクラスタ、ノードおよびコンポーネントで構成されていることを管理者が理解することが重要です。ただし、この事実をエンド・ユーザーが認識することはありません。 


図5-4に、必要なすべてのコンポーネントを備えた完全なPresenceクラスタとXDMクラスタを示します。この図では、2つのクラスタPresenceとXDMが別個のクラスタとして扱われ、最初のトラフィックにおいてこれら2つのネットワークへの経路は、常にそれぞれのロード・バランサを介することも示されます。Presenceサーバーは、たとえばプレゼンス・ルール・ドキュメントに対するサブスクリプションを設定するとき、実際にはXDMクラスタのロード・バランサを経由します。ただし、サブスクリプションが確立されると、その後のリクエストはロード・バランサを通らずに、サブスクリプションをホストするXDMSインスタンスに直接送られます。XDMクラスタのすべてのノードは、Presenceクラスタから直接アクセスできます。実際、PSはプレゼンス・ルール・ドキュメントをフェッチするときに、XDMSインスタンスに直接アクセスします。

図5-4    大規模デプロイの2つのクラスタ


画像の説明

この図では、2つのロード・バランサ(Presenceクラスタの前に1つとXDMクラスタの前に1つ)が示されていますが、それらは通常は同じ物理マシンに格納されることに注意してください。

コンポーネントの概要

2つの異なるノード(PresenceノードとXDMノード)は、それぞれ小規模なコンポーネントのセットで構成されます。これらのコンポーネントについてこの項で定義して説明します。コンポーネントの違いと目的を理解することが重要です。実際のインストールを実行するときは、これらの様々なコンポーネントが物理ノードにデプロイされる要素になります。

ロード・バランサ

ロード・バランサの目的は、他のコンポーネントにトラフィックを分散することです。ロード・バランサは下位レベルのコンポーネントを認識し、SIPトラフィックを常にUser Dispatcherに分散しますが、XCAPトラフィックはAggregation Proxyに分散します。

User Dispatcher

User Dispatcherが行う処理は、受信リクエストからのユーザー・アイデンティティの抽出です。ユーザーに基づき、トラフィック(SIPとXCAPの両方)をサブアプリケーションに応じてPSまたはXDMSにディスパッチします。

Presenceサーバー

Presenceサーバーは、Presenceイベントパッケージに対するSUBSCRIBEおよびPUBLISHリクエストを受信して処理し、該当する場合にNOTIFYを送信するコンポーネントです。presence.winfoイベントパッケージに対する受信SUBSCRIBEリクエストも処理します。PSは、プレゼンス・ルールとpidf-manipulation(プレゼンスのハードステート)ドキュメントを得るためにXDMSとやりとりします。

XDMサーバー

XDMSの主な目的は、XMLドキュメントのリモート・ファイル記憶域として動作することです。これらのドキュメントはXCAPを使用して操作できます。XCAPには、クライアントがドキュメント内の変更に対するサブスクリプションを設定できるSIPインタフェースもあります。イベント・パッケージはua-profileです。XDMSは、サブスクライバにNOTIFY:sを送信することでドキュメントの状態を伝えます。

Aggregation Proxy

Aggregation Proxyの役割は、すべての着信XCAPトラフィックを認証してから、それらのリクエストをUser Dispatcherにプロキシ処理することです。したがって、Aggregation ProxyがXDMSに直接アクセスすることはありません。XDMSへのアクセスはUser Dispatcherが実行します。

データベース

データベースは、XDMSで管理されるXMLドキュメントが物理的に格納される場所です。

Presenceノード

PresenceノードはPresenceクラスタのメイン・コンポーネントであり、受信トラフィックを正しいPresenceサーバー・インスタンスにディスパッチします。ブラックボックスの観点ではユーザーにプレゼンス情報を提供します。User Dispatcherはシングル・ノード・デプロイでもマルチノード・デプロイでも同じ目的を果すことを理解してください(目的は受信トラフィックを特定のPSインスタンスにディスパッチすることです。このインスタンスが同じ物理ノードで実行しているかいないかは、User Dispatcherには関係ありません)。User Dispatcherは特定のノードを完全アドレス(IPアドレスおよびポート)で識別します。ローカル・インスタンスという概念はありません。

図5-5に、典型的なPresenceノードのレイアウトを示します。このノードには必ずUser Dispatcherがデプロイされ、ノードそのものへの主経路として機能します。通常、User Dispatcherはポート5060(SIPのデフォルト・ポート)をリスニングし、そのノード上の他のPresenceサーバーは他のポートでリスニングします。このように、シングル・ノードはクライアントに対して1つのPresenceサーバーとして示されますが、実際にはUser Dispatcherの後ろで複数のインスタンスが実行されています。Presenceノードにデプロイされる各コンポーネントはそれぞれの別個のJVMで実行されます(つまり、User DispatcherとPSインスタンスはすべて独自のOC4Jインスタンスで実行されます)。

図5-5    Presenceノードにデプロイされるコンポーネント


画像の説明

これらのOC4Jインスタンス(この例では4つ)はすべて同じOracle Application Server(同一AS_HOME)内で実行していることに注意してください。

XDMノード

XDMノードには、図5-6のように必ずAggregation Proxyがデプロイされます。これは、通常ポート80でXCAPトラフィックをリスニングします(XCAPはHTTPを介して送信される)。Aggregation Proxyは受信トラフィックを認証し、認証が正常に終了すると、リクエストをUser Dispatcherに転送します。Presenceノードと同様に、XDMノードにもUser Dispatcherがデプロイされます(通常はポート5060)。SIPトラフィックに関してはXDMノードとPresenceノードの違いはまったくありません。2つのタイプのノードの違いは、User DispatcherがXCAPトラフィックのディスパッチも行うという点です。User Dispatcherは、SIPの場合と同様に、ユーザーIDをリクエストから抽出し、それに基づいてリクエストを特定のXDMSインスタンスにマップして、そのXDMSインスタンスにリクエストを転送します。

また、X個のXDMSインスタンスがデプロイされ、User DispatcherはSIPトラフィックとXCAPトラフィックの両方をそれらにディスパッチします。Presenceノード上のPSインスタンスの場合と同様に、各XDMSインスタンスは互いに認識せず、独立して実行します。

また、Aggregation ProxyとUser Dispatcherが同じOC4Jコンテナにデプロイされ、同じJVMを使用することにも注意してください。また、すべてのOC4Jインスタンスは(Presenceノードの場合と同様に)同一のOracle Application Server内で実行します。

図5-6    XDMSノード


画像の説明

インストール

ここまで、Presenceの大規模デプロイの一般的なレイアウトとコンポーネントについて説明しました。この項では、システムのインストール方法について説明します。

サンプル・ネットワーク

必要な手順を簡単に説明するため、図5-7に示すネットワークを例として使用します。

図5-7    サンプル・ネットワーク


画像の説明

このネットワークは3つのPSノードで構成され、それらがPresenceクラスタを形成しています。XDMクラスタは2つのXDMSノードで構成され、アドレスが192.168.0.30のデータベースにアクセスしています。両方のクラスタは同じ物理ロード・バランサを共有しています。ロード・バランサによりネットワークが外部ネットワークと内部ネットワークに分けられていないことに注意してください。このため、ロード・バランサのIPアドレスは192.168.0.150のみです。

管理しやすくするために、1つの管理ノードがネットワークに追加されています。他のすべてのノードとインスタンスの構成はこのノードを介して実行されます。

2つのクラスタについて詳しく説明します。まず、すでに説明した3つのPresenceノードで構成されるPresenceクラスタがあります。図5-8に、Presenceクラスタの詳細な図を示します。各Presenceノードには、1つのUser Dispatcherがデプロイされ、3つのPSインスタンスがあります。これら4つのコンポーネントはそれぞれが独自のOC4Jインスタンスで実行されていますが、細部は図を簡略化するために省いています。

図5-8に、XDMクラスタの詳しい図を示します。この例では、3つのXDMSインスタンスが実行しており、1つのUser Dispatcherと1つのAggregation Proxyが対応しています。「XDMノード」で説明したように、Aggregation ProxyとUser Dispatcherは同一のOC4Jインスタンスで実行されますが、3つのXDMSインスタンスはそれぞれ独自のOC4Jで実行されます。これらすべてのOC4Jインスタンス(4つのインスタンス)は、同じOracle Application Server内で実行されます。

図5-8    クラスタの例


画像の説明

Oracle Application Server 10.1.3.4のインストール

最終システムにインストールされるすべてのノード(Presenceノード、XDMノードまたは管理ノード)では、同じ基本インストールが行われます(つまり、すべてがOracle Application Server 10.1.3.4を実行します)。したがって、次の項ではOracle Application Serverのインストールおよび設定方法について詳しく説明します。最初にOracle Application Server 10.1.3.2をインストールしてから、10.1.3.4パッチ・セットを適用します。主な手順は次のとおりです。

  1. Oracle Universal Installerを起動してOracle Application Server 10.1.3.2をインストールします。

  2. 「拡張インストール」を選択します。

  3. インストール・タイプとして「Oracle WebCenter Framework」(下から2番目)を選択します。

    インストールするノードが管理ノードでないかぎり、「このインスタンスでOracle Enterprise Manager 10g ASControlを起動する」チェック・ボックスを選択しないでください。ASControlはシステム内の1つのノードのみで実行します。管理ノードに配置されます。システムのその他のすべてのノード(PSノードおよびXDMSノード)は管理ノードを介して制御されます。

  4. 検出アドレスを入力し、そのマルチキャスト・アドレスのために使用する値がクラスタのすべてのノードで同じになるようにします。つまり、PSノードおよびXDMSノードの検出アドレスは管理ノードと同じであることが必要です。違う場合、それらのノードは管理ノードによって検出されません。詳細は、『Oracle Application Serverインストレーション・ガイド』を参照してください。

AS 10.1.3.2のインストールが完了したら、続けて次の手順を実行し、AS 10.1.3.4パッチ・セットをインストールします。

  1. 10.1.3.4パッチ用のOracle Universal Installerを実行して、10.1.3.4 WebCenterパッチを適用します。

  2. Java 5アップデート14をインストールします。推奨する手順は次のとおりです。

    • JDK 1.5アップデート14用のSun Javaインストーラを実行し、選択したディレクトリ(<jdk-directory>と表記)にJDKをインストールします。

    • $ORACLE_HOMEに移動し、ファイルjdkの名前をjdk.install.backupに変更して、インストールされているJDKのバックアップを作成します。

    • <jdk-directory>を指すjdkという名前のシンボリック・リンクを$ORACLE_HOMEに作成します。

管理ノードのインストール

Oracle Application Server Controlを使用して、クラスタ内のすべてのノードを構成および管理することができます。クラスタに1つの管理ノードを配置すると、システムの操作を容易に行うことができ、変更した構成をすべてのノードですぐに有効にすることができます。

この管理ノードをインストールするには、Oracle Application Serverを1つのノードにインストールし(サンプル・ネットワークでは、このノードは192.168.0.100で実行)、Application Server Controlの実行を有効にします。「このインスタンスでOracle Enterprise Manager 10g ASControlを起動する」チェック・ボックスを選択してください。管理ノードのインストールに必要な手順はこれですべてです。

システムのすべてのノードは、同じ検出アドレスを使用するように構成する必要があります。このサンプルでは、マルチキャスト・アドレス235.0.0.1:6789を使用しています。このアドレスをシステムのすべてのノードで使用する必要があります。

また、管理ノードはsetupLinux.tar.gzファイル(解凍済)を含む必要があります。これにより、後でデプロイする.earファイルをあらかじめ管理ノードに配置でき、デプロイの準備が整います。

Presenceノードのインストール

次の手順は、Presenceノードをインストールするために実行する必要があります。1つのPresenceクラスタには多数のPresenceノードが含まれるため、次の各手順はノードごとに繰り返す必要があります。


注意

デプロイをより円滑に行うためにはすべてのノードは同時にインストールおよび構成する必要があります。 


実行する手順は次のとおりです。

  1. Oracle Application Server 10.1.3.4をインストールします。

  2. Oracle Universal Installerを使用して、User Dispatcherを含む最初のインスタンスをインストールします。Sipコンテナはデフォルトでインストールされます。

  3. 他に必要な数のOC4Jインスタンスを作成します。

  4. これらのOC4Jインスタンスを構成します。

  5. これらの新たに作成したOC4JインスタンスにPresenceをデプロイして構成します。

  6. User Dispatcherを構成します。

  7. インストール後の作業あるいはインストールのチューニングを行います。

Oracle Application Serverのインストール

各PresenceノードはOracle Application Server上で実行するため、最初にOracle Application Serverをインストールする必要があります。必要な手順は「Oracle Application Server 10.1.3.4のインストール」で説明していますが、これは管理ノードではないため、「このインスタンスでOracle Enterprise Manager 10g ASControlを起動する」チェック・ボックスを選択しないようにしてください。

検出アドレスについては、管理ノードで選択したアドレスと同じものを選択してください。サンプル・ネットワークでは、管理ノードに選択されている検出アドレスは235.0.0.1:6789です。ここでもこのアドレスを使用します。

User Dispatcherのインストール

次の手順に従ってUser Dispatcherをインストールします。

  1. OCMS用のOracle Universal Installerを使用して、「User Dispatcher」および「SipContainer」のみを選択します。

  2. このインスタンスに対してデフォルトのSIPポート値5060を使用します。

  3. Oracle Universal Installerのインストール手順を完了します。

インストーラによって、Oracle Application Serverで実行するocmsという名前のOC4Jインスタンスが作成されます。このインスタンスにデプロイされるアプリケーションはUser Dispatcherのみです。

追加インスタンスの作成

作成するインスタンスの数は使用可能なメモリーによって変わります。新しいインスタンスを設定するたびに2.5GBのメモリーが消費されます。使用可能なメモリーに収まる最大限のインスタンスを作成することをお薦めします。オペレーティング・システムのためにメモリーを残しておく必要があることに注意してください。

最終的なチューニングを後から実行してシステム・パフォーマンスを最適化することができます。

続行する前に、$ORACLE_HOME/opmn/bin/opmnctl stopallと入力して、実行中のインスタンスを停止します。

$ORACLE_HOME/binのcreateinstanceコマンドを使用してOC4Jインスタンスを追加作成します。次に例を示します。

cd $ORACLE_HOME/bin
./createinstance -instanceName ps1 -groupName presence -httpPort 8901 -defaultAdminPass

ここで、ps1はインスタンスの名前、グループの名前はpresenceです。グループが存在しない場合は作成されます。

-httpPort 8901によってポート番号が指定されます。管理しやすくするために、連続した使用可能ポート番号を使用することをお薦めします。サンプル・ネットワークでは、8901、8902および8903を、それぞれOC4Jインスタンスps1、ps2およびps3に対して使用します。

ここでは、-defaultAdminPassによってパスワードの設定が省略されています。これは、インスタンスのパスワード設定を省略するようにcreateinstanceに指定します。後から別のコマンドを発行して、このインスタンスのパスワードを設定します。このオプションを含めないと、createinstanceによって、パスワードを入力するように求められます。作成するインスタンスが少数の場合はこの方法を利用できますが、インスタンス作成のスクリプトを実行する場合は-defaultAdminPassを使用した方が効率がよくなります。

作成したインスタンスにパスワードを設定するには、次のコマンドを実行します。

cd $ORACLE_HOME/j2ee/home
java -Doracle.j2ee.home=../<instance-name> -jar jazn.jar -activateadmin <password>.

たとえば、ps1インスタンスのパスワードをmyPassword1に設定するには、次のように実行します。

cd $ORACLE_HOME/j2ee/home
java -Doracle.j2ee.home=../ps1 -jar jazn.jar -activateadmin myPassword1

これら2つのコマンドを、十分なインスタンスを作成するために必要な回数繰り返します。サンプル・ネットワークでは、3つのPresenceインスタンスにそれぞれ対応する3つのOC4Jインスタンスps1、ps2およびps3を作成するために、これらのコマンドを次のように3回実行する必要があります。

cd $ORACLE_HOME/bin
./createinstance -instanceName ps1 -groupName presence -httpPort 8901 -defaultAdminPass
cd $ORACLE_HOME/j2ee/home
java -Doracle.j2ee.home=../ps1 -jar jazn.jar -activateadmin myPassword1
cd $ORACLE_HOME/bin
./createinstance -instanceName ps2 -groupName presence -httpPort 8902 -defaultAdminPass
cd $ORACLE_HOME/j2ee/home
java -Doracle.j2ee.home=../ps2 -jar jazn.jar -activateadmin myPassword1
cd $ORACLE_HOME/bin
./createinstance -instanceName ps3 -groupName presence -httpPort 8903 -defaultAdminPass
cd $ORACLE_HOME/j2ee/home
java -Doracle.j2ee.home=../ps3 -jar jazn.jar -activateadmin myPassword1

OC4Jインスタンスの構成

前述の手順では、実際のPresenceサーバーがデプロイされるOC4Jインスタンスを新たに作成する方法について説明しました。デプロイする前に、Sipサーブレット・コンテナを取得するようにそれらの新しいインスタンスを構成することも必要です。必要なjarは、User DispatcherをインストールしたときにすでにOracle Application Serverにインストールされています。このため、実行する必要があるのは、各ps Xインスタンスが共有ライブラリからSipサーブレット・コンテナjarを取得するように構成することだけです。また、適切な起動とロギングのために新しいOC4Jインスタンスを構成する必要もあります。すべての新しいOC4Jインスタンスに対して実行する必要がある全手順は次のとおりです。

  1. Sipサーブレット・コンテナに必要なすべてのjarが含まれる共有ライブラリを取得するようにインスタンスを構成します。このためにはboot.xmlファイルを編集します。

  2. ロギングを構成します。XDMSインスタンスで処理されたロギングを新しいインスタンスが使用するためには、j2ee-logging.xmlファイルを編集する必要があります。

  3. インスタンスの起動と停止のパラメータを編集して、Sipサーブレット・コンテナがロードされるようにします。このためには$ORACLE_HOME/opmn.xmlファイルを編集します。

  4. 新しいインスタンスがリスニングするSIPポートを指定します。

  5. Sipサーブレット・コンテナが適切なIPアドレスをリスニングするように構成します。

  6. xcap configディレクトリを追加します。

  7. 構成を確認します。

共有ライブラリを使用するためのインスタンスの構成

Sipサーブレット・コンテナに必要なjarが含まれる共有ライブラリを取得するようにインスタンスを構成します。このためには、OCMSインストーラによって作成されたocmsインスタンスからboot.xmlを次のようにコピーします。

cp $ORACLE_HOME/j2ee/ocms/config/boot.xml $ORACLE_HOME/j2ee/<instance name>/config/

これで、ocmsインスタンスの適切に構成されたboot.xmlが別のインスタンスにコピーされます。この手順を新たに作成したすべてのインスタンスについて繰り返します。サンプル・ネットワークでは、<instance name>をps1、ps2およびps3で置き換えてこのコマンドを3回発行し、boot.xmlを3つのOC4Jインスタンスにコピーします。

ロギングの構成

共有ライブラリをロードするためにboot.xmlファイルをコピーしたのと同様に、ロギングのための構成ファイルをコピーすることができます。ocmsのconfigディレクトリにあるj2ee-logging.xmlファイルをすべてのインスタンスにコピーします。

cp $ORACLE_HOME/j2ee/ocms/config/j2ee-logging.xml $ORACLE_HOME/j2ee/<instance name>/
config/

サンプル・ネットワークでは、<instance name>をps1、ps2およびps3で置き換えてこのコマンドを3回発行し、j2ee-logging.xmlを3つのOC4Jインスタンスにコピーします。

JVMの起動および停止パラメータの構成

JVMパラメータを構成して、Sipサーブレット・コンテナがロードされるようにインスタンスの起動と停止を設定します。これには、opmn.xmlファイルを編集して、すべてのPresenceのOC4Jインスタンス(サンプル・ネットワークではps1、ps2およびps3)およびocmsインスタンスについて起動および停止のパラメータを設定します。

起動パラメータ:

<data id="java-options" value="-server -Xmx2500M -Xms2500M -Xloggc:/<instance name>/
sdp/logs/gc.ps1.log -XX:+PrintGCDetails -XX:NewRatio=3 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:PermSize=128m -XX:MaxPermSize=128m -Xss128k -Dhttp.maxFileInfoCacheEntries=-1 -Djava.security.policy=$ORACLE_HOME/j2ee/
<instance name>/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false -DopmnPingInterval=1 -Doracle.hooks=oracle.sdp.sipservletcontainer.SipServletContainerOc4j;oracle.sdp.
sipservletcontainer.deployer.Oc4jApplicationHook "/>

停止パラメータ:

<data id="java-options" value="-Djava.security.policy=$ORACLE_HOME/j2ee/
<instance name>/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false -Doracle.hooks=oracle.sdp.sipservletcontainer.SipServletContainerOc4j;oracle.sdp.
sipservletcontainer.deployer.Oc4jApplicationHook"/>

これらのパラメータの意味は次のとおりです。

-Xmx2500M: 最大JVMメモリーを2.5GBに設定します。

-Xms2500M: 最小JVMメモリーを2.5GBに設定します。

-XX:+PrintGCDetails: コレクション・アクティビティのロギングを有効にします。

-XX:NewRatio=3: ヒープの新世代と旧世代の比率を1:3に設定します(つまり、エデン領域とサバイバ領域の合計サイズが合計ヒープ・サイズの4分の1になります)。

-XX:+UseConcMarkSweepGC: 同時マークアンドスイープ・ガベージ・コレクタ(同時ロー・ポーズ・コレクタとも呼ばれる)を有効にします。

-XX:+UseParNewGC: パラレル・スレッドを使用します。

-XX:PermSize=128m: 永続世代の初期サイズを128MBに設定します。

-XX:MaxPermSize=128m: 永続世代の最大サイズを128MBに設定します。

-Xss128k: 各スレッドのstatサイズを128KBに設定します。

-Dhttp.maxFileCacheEntries=-1: Oracle Application ServerにバンドルされているHTTPサーバーでのキャッシングを無効にします。このリリースでは、Presenceサーバーの良好なパフォーマンスを得るためにキャッシングを無効にする必要があります。

-Doracle.hooks=oracle.sdp.sipservletcontainer.SipServletContainerOc4j;oracle.sdp.
sipservletcontainer.deployer.Oc4jApplicationHook: OC4JでSipコンテナをロードできるようにします。


注意

インストールしたocmsインスタンスに、複数のJVMインストールに必要なパラメータがすべて含まれない場合、前述のパラメータをocmsインスタンスにも設定するようにしてください。 


SIPポートの構成

起動および停止パラメータの設定が終了したので、次にSipサーブレット・コンテナが正しいポートでリスニングするように構成する必要があります。デフォルトでは、Sipサーブレット・コンテナは、SIPをポート5060、SIPSを5061でリスニングします。ファイル$ORACLE_HOME/opmn/conf/opmn.xmlでは、OCMSインストーラによって作成されたocmsインスタンスが次のようにこれらのデフォルト値で構成されています。

<port id="sip" range="5060"/>
<port id="sips" range="5061"/>

ocmsインスタンスのこれらの値はそのままにしておく必要があります。User Dispatcherはこれらのポートで受信トラフィックをリスニングするためです。Presenceノードのために作成した他のOC4Jインスタンスについては、ポート競合を避けるためにそれぞれに別のポートを構成する必要があります。管理しやすくするために、連続した使用可能ポートを使用することをお薦めします。サンプル・ネットワークでは、Presenceインスタンスに5062から始まるポートを割り当てています。構成は次のようになります。

ps1

<port id="sip" range="5062"/>
<port id="sips" range="5063"/>

ps2

<port id="sip" range="5064"/>
<port id="sips" range="5065"/>

ps3

<port id="sip" range="5066"/>
<port id="sips" range="5067"/>
適切なIPアドレスでリスニングするためのSipサーブレット・コンテナの構成

デフォルトでは、Sipサーブレット・コンテナはIPアドレス127.0.0.1でリスニングします。このアドレスを、このマシンの外部からアドレス指定できるIPアドレスに変更する必要があります。前述の手順で、コンテナをロードするようにOracle Application Serverを構成しましたが、実際のSipサーブレット・コンテナの構成ファイルは取得していません。デフォルトの構成ファイルを生成するには、Oracle Application Serverを起動してから停止する必要があります。デフォルトの構成ファイルが生成されたら、デプロイに合せてファイルを編集することができます。

Oracle Application Serverを起動するには次のようにします。

$ORACLE_HOME/opmn/bin/opmnctl startall

起動して実行したら、次のように停止します。

$ORACLE_HOME/opmn/bin/opmnctl stopall

sdpという名前の新しい構成ディレクトリが、$ORACLE_HOME/j2ee/<instance name>/
config/sdp/
に作成されています。各インスタンスのOCMSの構成に関連するすべての情報がここにあります。各インスタンスにはSipServletContainer.xmlという名前のファイルがあります。各インスタンスについてこのファイルを編集し、IPAddress属性を127.0.0.1からSipサーブレット・コンテナがリスニングするIPアドレスに変更する必要があります。ただし、このファイルはこのマシンのすべてのSipサーブレット・コンテナで同じにする必要があるため、それぞれを手動で編集する必要はありません。ocmsディレクトリにあるファイルをコピーして再利用します。コマンドは次のとおりです。

cp $ORACLE_HOME/j2ee/ocms/config/sdp/SipServletContainer.xml $ORACLE_HOME/j2ee/
<instance name>/config/sdp/

<instance-name>をPresenceのOC4Jインスタンスの名前で置き換えます。サンプル・ネットワークでは、このコマンドを3回(ps1、ps2およびps3に対して1回ずつ)実行します。これでSipサーブレット・コンテナがすべてのインスタンスに対して構成されたため、サーバーを起動することができます。Oracle Application ServerですべてのOC4Jインスタンスを起動するには、次のようにします。

$ORACLE_HOME/opmn/bin/opmnctl startall
xcap構成ディレクトリの構成

ua-profileイベント・パッケージはPresenceノードで明示的には使用されませんが、存在するように構成する必要があります。このため、xcap構成ファイルをすべてのPresence OC4Jインスタンスにコピーしてください。これを行うには、xcapディレクトリを各インスタンスのsdp構成ディレクトリ$ORACLE_HOME/j2ee/
<instance-name>/config/sdp/
にコピーします。サンプル・ネットワークでは、xcapディレクトリを次のディレクトリにコピーする必要があります。

$ORACLE_HOME/j2ee/ps1/config/sdp/
$ORACLE_HOME/j2ee/ps2/config/sdp/
$ORACLE_HOME/j2ee/ps3/config/sdp/

xcapディレクトリは、OCMSインストーラを抽出したディレクトリにあります。たとえば、インストーラをディレクトリOCMS_INSTALLERに抽出した場合、xcapディレクトリは次の場所にあります。

OCMS_
INSTALLER/Disk1/stage/Components/oracle.sdp/10.1.3.4.0/1/DataFiles/Expanded/Shiphome/
shiphome-archive/shiphome-archive/xcapconf/conf
springbeans.xmlの構成

次のように、springbeans.xmlをocmsインスタンスのsdp構成ディレクトリからすべてのPresenceインスタンスのsdp構成ディレクトリにコピーします。

cp $ORACLE_HOME/j2ee/ocms/config/sdp/springbeans.xml $ORACLE_HOME/j2ee/
<instance name>/config/sdp/

サンプル・ネットワークでは、<instance-name>をps1、ps3およびps3でそれぞれ置き換えて、このコマンドを3回実行します。

構成設定の確認

インストールを続行する前に、ログを調べてこれまでの操作が正常に処理されたことを確認します。また、netstatコマンドを発行して、サーバーが正しいポートでリスニングしていることも確認できます。

ログ・ファイル: ログ・ファイルを定期的に監視することも必要です。構成に問題がある場合にはログ・ファイルによって明らかになります。確認する必要がある主なログ・ファイルは
2つです。1つ目は、$ORACLE_HOME/opmn/logsにある各インスタンスのコンソール出力です。通常、Presenceノードの場合は次のようなファイル名になります。

presence~<instance-name>~default_group~1.log

ocmsインスタンスに対するファイルと、opmnそのもののログ・ファイルもあります。常にこれらのファイルをよく注意してください。異常が発生する大半のケースでは、これらのログ・ファイルによって潜在的な問題に関する十分な情報が得られるためです。

もう1つの重要なログ・ファイルは、Sipサーブレット・コンテナそのものによって生成されるログです。各インスタンス(たとえばps1)にはsdpログ・ディレクトリがあり、trace.logファイルが含まれます。このファイルにもよく注意してください。このファイルはocmsインスタンスに対しても存在します。すべてのインスタンスのすべてのtrace.logファイルを確認するようにしてください。

opmnctl: opmnctlツールは、サーバーの起動と停止に使用されます。このツールでは、実行中のインスタンスのステータスも表示されます。基本コマンドは次のとおりです。

$ORACLE_HOME/opmn/bin/opmnctl status

すべてのプロセスと、それらが実行しているかどうかが表示されます。一般的な出力を次に示します。

Processes in Instance: priv5.priv5
--------------------
ias-component | process-type | pid | status
--------------------
OC4JGroup:presence | OC4J:ps3 | 4868 | Alive
OC4JGroup:presence | OC4J:ps2 | 4869 | Alive
OC4JGroup:presence | OC4J:ps1 | 4867 | Alive
OC4JGroup:default_group | OC4J:ocms | 4866 | Alive
OC4JGroup:default_group | OC4J:home | 4865 | Alive
ASG | ASG | N/A | Down

この出力は、ps1〜ps3がこのマシンで実行していることを示します。ocmsインスタンスも起動して実行しています。User Dispatcherがこのインスタンスで実行されていることに注意してください。opmnctlを使用して、各インスタンスがリスニングしているすべてのポートを表示することもできます。このためには、次の例のようにスイッチ-lをopmnctlに指定します。

$ORACLE_HOME/opmn/bin/opmnctl status -l

これにより、表5-1のような出力が表示されます。この表の出力は一部省略されています。通常は、プロセスID、起動時刻、その他の情報が含まれます。

すべての構成が適切な場合は、ocmsがSIPポート5060、ps1が5062などのようにリスニングしていることが表示されます。

表5-2    プロセス・タイプ別の使用ポート 
プロセス・タイプ  ポート 

OC4J:ps3 

jms:12605、sip:5066、http:8903、rmis:12705、sip:5066、sips:5067、rmi:12405 

OC4J:ps2 

jms:12604、sip:5064、http:8902、rmis:12704、sip:5064、sips:5065、rmi:12404 

OC4J:ps1 

jms:12603、sip:5062、http:8901、rmis:12703、sip:5062、sips:5063、rmi:12403 

OC4J:ocms 

jms:12602、sip:5060、http:7785、rmis:12702、sip:5060、sips:5061、rmi:12402 

OC4J:home 

jms:12601、http:8888、rmis:12701、rmi:12401 

Presenceのデプロイおよび構成

Oracle Enterprise Managerでグループ・ビューを使用し、アプリケーションをそのグループのすべてのインスタンスにデプロイします。デプロイ時にはアプリケーションの名前としてpresenceを使用することをお薦めします。デプロイが終了したら、すべてのインスタンスで次の項目を構成する必要があります。

PresRulesXCAPUriおよびPIDFManipulationXCAPUriの変更

各OC4J Presenceノード・インスタンスについて、PresenceアプリケーションMbeanに移動し、次の属性の値を設定します。

    - PIDFManipulationXCAPUri - sip:<xdmsHostIP>;transport=TCP;lr
    - PresRulesXCAPUri - sip:<xdmsHostIP>;transport=TCP;lr

サンプル・ネットワークでは、XDMSプールが192.168.0.150:5062のロード・バランサ上にあるため、すべてのPresenceインスタンス(ps1、ps2およびps3)に対して設定は次のようになります。

PIDFManipulaitonXCAPUri - sip:192.168.0.150:5062;transport=TCP;lr
PresRulesXCAPUri - sip:192.168.0.150:5062;transport=TCP;lr
UserAgentFactoryServiceポートの更新

各OC4J Presenceノード・インスタンスについて、PresenceアプリケーションのUserAgentFactoryService MBeanに移動し、ポートの競合を避けるために、マシン上のPresenceインスタンスそれぞれについてPort属性の値を一意に設定します。管理しやすくするために、連続した使用可能ポートを使用することをお薦めします。サンプル・ネットワークでは、インスタンスps1、ps2およびps3に対して5070、5071および5072をそれぞれ使用しています。

JGroupsの有効化

各OC4J Presenceノード・インスタンスについて、PackageManager MBeanに移動し、JGroupsBroadcastEnabled - trueのように属性の値を設定します。

JGroups構成でデフォルト値を使用するようにJgroupXMLConfigPathの値は空にしておきます。デフォルトのJGroups構成では、次の値が使用されます。

User Dispatcherの構成

デプロイ内のすべてのPresenceインスタンスにSIPトラフィックをルーティングできるようにUser Dispatcherを構成します。User Dispatcherが存在するマシン上のすべてのPresenceインスタンスと、デプロイ内の他のマシンのすべてのPresenceインスタンスにSIPトラフィックを送るように、すべてのUser Dispatcherを構成する必要があります。つまり、各Persenceノード(Persenceマシン)のUser Dispatcherは、他のノードのすべてのPresenceインスタンスを認識する必要があります。User DispatcherがSIPトラフィックをすべてのPresenceサーバーにルーティングできるように構成するには、次の手順を実行します。

  1. 管理ノードのEnterprise Managerにログインします。

  2. クラスタ・ビューで、構成するUser Dispatcherが存在するPresenceノードを選択します。

  3. 「アプリケーションの選択」→「userdispatcherアプリケーション定義のMBeans」を選択します。

  4. 「presence-pool」をクリックし、「サーバー」を選択します。

  5. デプロイ内のすべてのPresenceサーバーを指すSIP URIを追加します。URIの形式は次のとおりです。

    sip:<ip-address>:<port>;transport=tcp;lr
    
    

    サンプル・ネットワークには3つのPresenceノード(マシン)があり、それぞれに3つのPresenceサーバーがあります。Presenceサーバーは合計9つです。各User DispatcherがSIPトラフィックを9つのPresenceサーバーにルーティングするように構成する必要があります。各User DispatcherのPersenceプールに次の内容を追加します。

    sip:192.168.0.10:5062;transport=tcp;lr
    sip:192.168.0.10:5064;transport=tcp;lr
    sip:192.168.0.10:5066;transport=tcp;lr
    sip:192.168.0.11:5062;transport=tcp;lr
    sip:192.168.0.11:5064;transport=tcp;lr
    sip:192.168.0.11:5066;transport=tcp;lr
    sip:192.168.0.12:5062;transport=tcp;lr
    sip:192.168.0.12:5064;transport=tcp;lr
    sip:192.168.0.12:5066;transport=tcp;lr
    

インストールのチューニング

ここでは、インストールしたコンポーネント同士が共存して適切に稼働できるように、チューニングする方法について説明します。

WebCenterインスタンスの無効化

インストールが終了したら、不要にリソースを消費しないようにWebCenterインスタンスを無効にします。これには、$ORACLE_HOME/opmn/conf/にあるopmn.xmlファイルを編集します。サンプルの<process-type id="OC4J_WebCenter" module-id="OC4J" status="disabled">のように、ステータスをenabledからdisabledに変更します。変更を有効にするために、次のようにサーバーを再起動します。

$ORACLE_HOME/opmn/bin/opmnctl stopall

停止した後で再び起動します。

$ORACLE_HOME/opmn/bin/opmnctl startall

ホーム・インスタンスの無効化

すべてのインストールが終了したら、管理ノードを除くすべてのノードでホームOC4Jインスタンスを停止します。管理ノードは、Enterprise Managerコンソールにログインして、デプロイ全体の構成を表示または変更するために使用します。ホーム・インスタンスを停止するには、すべてのPresenceノードのopmn.xmlファイルを編集して、WebCenterインスタンスの場合と同じ方法でホーム・インスタンスを無効にします。ホームが必要になるのは、createinstanceコマンドを使用して新しいインスタンスを作成するときのみです。

XDMノードのインストール

XDMノードのインストールはPresenceノードのインストールと似ています。どちらのタイプのノードにもUser Dispatcherがデプロイされ、その他にPresenceアプリケーションのearファイルがデプロイされたX個のインスタンスが実行しています。違いは、XDMノードにはAggregationProxyとSubscriber Data Servicesもデプロイされている点です。また、User DispatcherとXDMSアプリケーションの構成がわずかに異なります。


注意

デプロイをより円滑に行うためにはすべてのノードは同時にインストールおよび構成する必要があります。 


XDMノードをインストールする手順は次のとおりです。

  1. マシンにOracle Application Server 10.1.3.2をインストールします。

  2. Oracle Application Serverに10.1.3.4パッチを適用します。

  3. OCMSインストーラを使用して、User Dispatcher、Aggregation ProxyおよびSubscriber Data Servicesを含める最初のインスタンスをインストールします。Sipサーブレット・コンテナもデフォルトでインストールされます。

  4. 他に必要な数のOC4Jインスタンスを作成します。

  5. これらの新たに作成したOC4Jインスタンスを構成します。

  6. これらの新たに作成したOC4JインスタンスにPresenceアプリケーションearをデプロイして構成します。

  7. User Dispatcherを構成します。

  8. インストールをチューニングします。


    注意

    最初のXDMノードをインストールしたら、後続のXDMノードも最初のノードと同じデータベースを指すようにします。

    後続のXDMノードをインストールするときも、「Do you wish to reuse the existing schemas?」というオプションを選択する必要があります。 


Oracle Application Server 10.1.3.2のインストール

最初にOracle Application ServerをXDMSノードにインストールする必要があります。

    1. Oracle Universal Installerを起動してOracle Application Server 10.1.3.2をインストールします。

    2. 「拡張インストール」を選択します。

    3. インストール・タイプとして「Oracle WebCenter Framework」を選択します。

    4. 検出アドレスを入力し、そのマルチキャスト・アドレスのために使用する値がクラスタのすべてのノードで同じになるようにします。つまり、PSノードおよびXDMSノードの検出アドレスは管理ノードと同じであることが必要です。違う場合、それらのノードは管理ノードによって検出されません。詳細は、『Oracle Application Serverインストレーション・ガイド』を参照してください。

Oracle Application Serverへの10.1.3.4パッチの適用

次にOracle Application Serverパッチを適用する必要があります。

  1. 10.1.3.4パッチ用のOracle Universal Installerを実行して、10.1.3.4 WebCenterパッチを適用します。

  2. Java 5アップデート14をインストールします。推奨する手順は次のとおりです。

    • JDK 1.5アップデート14用のSun Javaインストーラを実行し、選択したディレクトリ(<jdk-directory>と表記)にJDKをインストールします。

    • $ORACLE_HOMEに移動し、ファイルjdkの名前をjdk.install.backupに変更して、インストールされているJDKのバックアップを作成します。

    • <jdk-directory>を指すjdkという名前のシンボリック・リンクを$ORACLE_HOMEに作成します。

User Dispatcherのインストール

次の手順に従ってUser Dispatcherをインストールします。

  1. OCMS用のOracle Universal Installerを使用して、「Sipサーブレット・コンテナ」、「User Dispatcher」、「Subscriber Data Services」および「Aggregation Proxy」を選択します。

  2. このインスタンスに対してデフォルトのSIPポート値5060を使用します。

  3. Oracle Universal Installerのインストール手順を完了します。

インストーラによって、Oracle Application Serverで実行するocmsという名前のOC4Jインスタンスがもう1つ作成されます。このインスタンスにデプロイされるアプリケーションは、User Dispatcher、Subscriber Data ServicesおよびAggregation Proxyです。

追加OC4Jインスタンスの作成

$ORACLE_HOME/binのcreateinstanceコマンドを使用してOC4Jインスタンスを追加作成します。次に例を示します。

cd $ORACLE_HOME/bin
./createinstance -instanceName xdms1 -groupName xdms -httpPort 8901 -defaultAdminPass

ここで、xdms1はインスタンスの名前、グループの名前はxdmsです。グループが存在しない場合は作成されます。

-httpPort 8901によってポート番号が指定されます。管理しやすくするために、連続した使用可能ポート番号を使用することをお薦めします。サンプル・ネットワークでは、8901、8902および8903をそれぞれOC4Jインスタンスxdms1、xdms2およびxdms3に対して使用します。

ここでは、-defaultAdminPassによってパスワードの設定が省略されています。これは、インスタンスのパスワード設定を省略するようにcreateinstanceに指定します。後から別のコマンドを発行して、このインスタンスのパスワードを設定します。このオプションを含めないと、createinstanceによって、パスワードを入力するように求められます。作成するインスタンスが少数の場合はこの方法を利用できますが、インスタンス作成のスクリプトを実行する場合は-defaultAdminPassを使用した方が効率がよくなります。

作成したインスタンスにパスワードを設定するには、次のコマンドを実行します。

cd $ORACLE_HOME/j2ee/home
java -Doracle.j2ee.home=../<instance-name> -jar jazn.jar -activateadmin <password>.

たとえば、xdmsインスタンスのパスワードをmyPassword1に設定するには、次のように実行します。

cd $ORACLE_HOME/j2ee/home
java -Doracle.j2ee.home=../xdms1 -jar jazn.jar -activateadmin myPassword1

これら2つのコマンドを、十分なインスタンスを作成するために必要な回数繰り返します。サンプル・ネットワークでは、3つのXDMSインスタンスにそれぞれ対応する3つのOC4Jインスタンスxdms1、xdms2およびxdms3を作成するために、これらのコマンドを次のように
3回実行する必要があります。

cd $ORACLE_HOME/bin
./createinstance -instanceName xdms1 -groupName xdms -httpPort 8901 -defaultAdminPass
cd $ORACLE_HOME/j2ee/home
java -Doracle.j2ee.home=../xdms1 -jar jazn.jar -activateadmin myPassword1
cd $ORACLE_HOME/bin
./createinstance -instanceName xdms2 -groupName xdms -httpPort 8902 -defaultAdminPass
cd $ORACLE_HOME/j2ee/home
java -Doracle.j2ee.home=../xdms2 -jar jazn.jar -activateadmin myPassword1
cd $ORACLE_HOME/bin
./createinstance -instanceName xdms3 -groupName xdms -httpPort 8903 -defaultAdminPass
cd $ORACLE_HOME/j2ee/home
java -Doracle.j2ee.home=../xdms3 -jar jazn.jar -activateadmin myPassword1

OC4Jインスタンスの構成

前述の手順では、実際のXDMSサーバーがデプロイされるOC4Jインスタンスを新たに作成する方法について説明しました。デプロイする前に、Sipサーブレット・コンテナを取得するようにそれらの新しいインスタンスを構成することも必要です。必要なjarは、User DispatcherをインストールしたときにすでにOracle Application Serverにインストールされています。このため、実行する必要があるのは、xdmsXインスタンスそれぞれが共有ライブラリからSipサーブレット・コンテナjarを取得するように構成することだけです。また、適切な起動とロギングのために新しいOC4Jインスタンスを構成する必要もあります。すべての新しいOC4Jインスタンスに対して実行する必要がある全手順は次のとおりです。

  1. Sipサーブレット・コンテナに必要なすべてのjarが含まれる共有ライブラリを取得するようにインスタンスを構成します。このためにはboot.xmlファイルを編集します。

  2. ロギングを構成します。XDMSインスタンスで処理されたロギングを新しいインスタンスが使用するためには、j2ee-logging.xmlファイルを編集する必要があります。

  3. インスタンスの起動と停止のパラメータを編集して、Sipサーブレット・コンテナがロードされるようにします。このためには$ORACLE_HOME/opmn.xmlファイルを編集します。

  4. 新しいインスタンスがリスニングするSIPポートを指定します。

  5. Sipサーブレット・コンテナが適切なIPアドレスをリスニングするように構成します。

  6. xcap configディレクトリを追加します。

  7. 構成を確認します。

インスタンスの停止
$ORACLE_HOME/opmn/bin/opmnctl stopall
共有ライブラリを使用するためのインスタンスの構成

Sipサーブレット・コンテナに必要なjarが含まれる共有ライブラリを取得するようにインスタンスを構成します。このためには、OCMSインストーラによって作成されたocmsインスタンスからboot.xmlを次のようにコピーします。

cp $ORACLE_HOME/j2ee/ocms/config/boot.xml $ORACLE_HOME/j2ee/<instance name>/config/

これで、ocmsインスタンスの適切に構成されたboot.xmlが別のインスタンスにコピーされます。この手順を新たに作成したすべてのインスタンスについて繰り返します。サンプル・ネットワークでは、<instance name>をxdms1、xdms2およびxdms3で置き換えてこのコマンドを3回発行し、boot.xmlを3つのOC4Jインスタンスにコピーします。

ロギングの構成

共有ライブラリをロードするためにboot.xmlファイルをコピーしたのと同様に、ロギングのための構成ファイルをコピーすることができます。ocmsのconfigディレクトリにあるj2ee-logging.xmlファイルをすべてのインスタンスにコピーします。

cp $ORACLE_HOME/j2ee/ocms/config/j2ee-logging.xml $ORACLE_HOME/j2ee/
<instance name>/config/

サンプル・ネットワークでは、<instance name>をxdms1、xdms2およびxdms3で置き換えてこのコマンドを3回発行し、j2ee-logging.xmlを3つのOC4Jインスタンスにコピーします。

JVMの起動および停止パラメータの構成

JVMパラメータを構成して、Sipサーブレット・コンテナがロードされるようにインスタンスの起動と停止を設定します。これには、opmn.xmlファイルを編集して、すべてのPresenceのOC4Jインスタンス(サンプル・ネットワークではxdms1、xdms2およびxdms3)およびocmsインスタンスについて起動および停止のパラメータを設定します。

起動パラメータ:

<data id="java-options" value="-server -Xmx2500M -Xms2500M 
-Xloggc:/home/sdp/logs/gc.xdms1.log -XX:+PrintGCDetails -XX:NewRatio=3 
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:PermSize=128m -XX:MaxPermSize=128m 
-Xss128k -Dhttp.maxFileInfoCacheEntries=-1 -Djava.security.policy=$ORACLE_HOME/
j2ee/home/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false -DopmnPingInterval=1 -Doracle.hooks=oracle.sdp.sipservletcontainer.SipServletContainerOc4j;oracle.sdp.sipser vletcontainer.deployer.Oc4jApplicationHook "/>

停止パラメータ:

<data id="java-options" value="-Djava.security.policy=$ORACLE_HOME/
j2ee/home/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false -Doracle.hooks=oracle.sdp.sipservletcontainer.SipServletContainerOc4j;oracle.sdp.sipser vletcontainer.deployer.Oc4jApplicationHook"/>

これらのパラメータの意味は次のとおりです。

-Xmx2500M: 最大JVMメモリーを2.5GBに設定します。

-Xms2500M: 最小JVMメモリーを2.5GBに設定します。

-XX:+PrintGCDetails: コレクション・アクティビティのロギングを有効にします。

-XX:NewRatio=3: ヒープの新世代と旧世代の比率を1:3に設定します(つまり、エデン領域とサバイバ領域の合計サイズが合計ヒープ・サイズの4分の1になります)。

-XX:+UseConcMarkSweepGC: 同時マークアンドスイープ・ガベージ・コレクタ(同時ロー・ポーズ・コレクタとも呼ばれる)を有効にします。

-XX:+UseParNewGC: パラレル・スレッドを使用します。

-XX:PermSize=128m: 永続世代の初期サイズを128MBに設定します。

-XX:MaxPermSize=128m: 永続世代の最大サイズを128MBに設定します。

-Xss128k: 各スレッドのstatサイズを128KBに設定します。

-Dhttp.maxFileCacheEntries=-1: Oracle Application ServerにバンドルされているHTTPサーバーでのキャッシングを無効にします。このリリースでは、Presenceサーバーの良好なパフォーマンスを得るためにキャッシングを無効にする必要があります。

-Doracle.hooks=oracle.sdp.sipservletcontainer.SipServletContainerOc4j;oracle.sdp.
sipservletcontainer.deployer.Oc4jApplicationHook: OC4JでSipコンテナをロードできるようにします。


注意

インストールしたocmsインスタンスに、複数のJVMインストールに必要なパラメータがすべて含まれない場合、前述のパラメータをocmsインスタンスにも設定するようにしてください。 


SIPポートの構成

起動および停止パラメータの設定が終了したので、次にSipサーブレット・コンテナが正しいポートでリスニングするように構成する必要があります。デフォルトでは、Sipサーブレット・コンテナは、SIPをポート5060、SIPSを5061でリスニングします。ファイル$ORACLE_HOME/opmn/conf/opmn.xmlでは、OCMSインストーラによって作成されたocmsインスタンスが次のようにこれらのデフォルト値で構成されています。

<port id="sip" range="5060"/>
<port id="sips" range="5061"/>

ocmsインスタンスのこれらの値はそのままにしておく必要があります。User Dispatcherはこれらのポートで受信トラフィックをリスニングするためです。Presenceノードのために作成した他のOC4Jインスタンスについては、ポート競合を避けるためにそれぞれに別のポートを構成する必要があります。管理しやすくするために、連続した使用可能ポートを使用することをお薦めします。サンプル・ネットワークでは、Presenceインスタンスに5062から始まるポートを割り当てています。構成は次のようになります。

ps1

<port id="sip" range="5062"/>
<port id="sips" range="5063"/>

ps2

<port id="sip" range="5064"/>
<port id="sips" range="5065"/>

ps3

<port id="sip" range="5066"/>
<port id="sips" range="5067"/>

適切なIPアドレスでリスニングするためのSipサーブレット・コンテナの構成

デフォルトでは、Sipサーブレット・コンテナはIPアドレス127.0.0.1でリスニングします。このアドレスを、このマシンの外部からアドレス指定できるIPアドレスに変更する必要があります。前述の手順で、コンテナをロードするようにOracle Application Serverを構成しましたが、実際のSipサーブレット・コンテナの構成ファイルは取得していません。デフォルトの構成ファイルを生成するには、Oracle Application Serverを起動してから停止する必要があります。デフォルトの構成ファイルが生成されたら、デプロイに合せてファイルを編集することができます。

Oracle Application Serverを起動するには次のようにします。

$ORACLE_HOME/opmn/bin/opmnctl startall

起動して実行したら、次のように停止します。

$ORACLE_HOME/opmn/bin/opmnctl stopall

sdpという名前の新しい構成ディレクトリが、$ORACLE_HOME/j2ee/<instance name>
/config/sdp/
に作成されています。各インスタンスのOCMSの構成に関連するすべての情報がここにあります。各インスタンスにはSipServletContainer.xmlという名前のファイルがあります。各インスタンスについてこのファイルを編集し、IPAddress属性を127.0.0.1からSipサーブレット・コンテナがリスニングするIPアドレスに変更する必要があります。ただし、このファイルはこのマシンのすべてのSipサーブレット・コンテナで同じにする必要があるため、それぞれを手動で編集する必要はありません。ocmsディレクトリにあるファイルをコピーして再利用します。コマンドは次のとおりです。

cp $ORACLE_HOME/j2ee/ocms/config/sdp/SipServletContainer.xml $ORACLE_HOME/j2ee/
<instance name>/config/sdp/

<instance-name>をPresenceのOC4Jインスタンスの名前で置き換えます。サンプル・ネットワークでは、このコマンドを3回(xdms1、xdms2およびxdms3に対して1回ずつ)実行します。これでSipサーブレット・コンテナがすべてのインスタンスに対して構成されたため、サーバーを起動することができます。Oracle Application ServerですべてのOC4Jインスタンスを起動するには、次のようにします。

$ORACLE_HOME/opmn/bin/opmnctl startall
xcap構成ディレクトリの構成

ua-profileイベント・パッケージはPresenceノードで明示的には使用されませんが、存在するように構成する必要があります。このため、xcap構成ファイルをすべてのPresence OC4Jインスタンスにコピーしてください。これを行うには、xcapディレクトリを各インスタンスのsdp構成ディレクトリ$ORACLE_HOME/j2ee/<instance-name>/config/sdp/にコピーします。サンプル・ネットワークでは、xcapディレクトリを次のディレクトリにコピーする必要があります。

$ORACLE_HOME/j2ee/xdms1/config/sdp/
$ORACLE_HOME/j2ee/xdms2/config/sdp/
$ORACLE_HOME/j2ee/xdms3/config/sdp/

xcapディレクトリは、OCMSインストーラを抽出したディレクトリにあります。たとえば、インストーラをディレクトリOCMS_INSTALLERに抽出した場合、xcapディレクトリは次の場所にあります。

OCMS_
INSTALLER/Disk1/stage/Components/oracle.sdp/10.1.3.4.0/1/DataFiles/Expanded/Shiphome/
shiphome-archive/xcapconf/conf
Aggregation Proxyの構成

各XDMSノードのAggregation Proxyが、同じノード上のUser Dispatcherを指すように構成する必要があります。次の手順に従ってAggregation Proxyを構成します。

  1. 管理ノードのOracle Enterprise Managerコンソールにログオンし、Aggregation Proxy Mbeanに移動します。

  2. XCAPRootが同じノードのUser Dispatcherのコンテキスト・ルートになるように変更します。User Dispatcherコンテキスト・ノードのデフォルト値はuserdispatcherです。これを変更していないかぎり、XCAPRoot属性の値を/userdispatcherに設定します。XCAPHostやXCAPPortなど他の属性を変更する必要はありません。これらはインストーラによって適切に設定されます。

springbeans.xmlの構成

次のように、springbeans.xmlをocmsインスタンスのsdp構成ディレクトリからすべてのPresenceインスタンスのsdp構成ディレクトリにコピーします。

cp $ORACLE_HOME/j2ee/ocms/config/sdp/springbeans.xml $ORACLE_HOME/j2ee/<instance name>/
config/sdp/

サンプル・ネットワークでは、<instance-name>をxdms1、xdms3およびxdms3でそれぞれ置き換えて、このコマンドを3回実行します。

構成設定の確認

インストールを続行する前に、ログを調べてこれまでの操作が正常に処理されたことを確認します。また、netstatコマンドを発行して、サーバーが正しいポートでリスニングしていることも確認できます。

ログ・ファイル: ログ・ファイルを定期的に監視することも必要です。構成に問題がある場合にはログ・ファイルによって明らかになります。確認する必要がある主なログ・ファイルは
2つです。1つ目は、$ORACLE_HOME/opmn/logsにある各インスタンスのコンソール出力です。通常、xdmsノードの場合は次のようなファイル名になります。

xdms~<instance-name>~default_group~1.log

ocmsインスタンスに対するファイルと、opmnそのもののログ・ファイルもあります。常にこれらのファイルをよく注意してください。異常が発生する大半のケースでは、これらのログ・ファイルによって潜在的な問題に関する十分な情報が得られるためです。

もう1つの重要なログ・ファイルは、Sipサーブレット・コンテナそのものによって生成されるログです。各インスタンス(たとえばxdms1)にはsdpログ・ディレクトリがあり、trace.logファイルが含まれます。このファイルにもよく注意してください。このファイルはocmsインスタンスに対しても存在します。すべてのインスタンスのすべてのtrace.logファイルを確認するようにしてください。

opmnctl: opmnctlツールは、サーバーの起動と停止に使用されます。このツールでは、実行中のインスタンスのステータスも表示されます。基本コマンドは次のとおりです。

$ORACLE_HOME/opmn/bin/opmnctl status

すべてのプロセスと、それらが実行しているかどうかが表示されます。一般的な出力を次に示します。

Processes in Instance: priv5.priv5
--------------------
ias-component | process-type | pid | status
--------------------
OC4JGroup:xdms | OC4J:xdms3 | 4868 | Alive
OC4JGroup:xdms | OC4J:xdms2 | 4869 | Alive
OC4JGroup:xdms | OC4J:xdms1 | 4867 | Alive
OC4JGroup:default_group | OC4J:ocms | 4866 | Alive
OC4JGroup:default_group | OC4J:home | 4865 | Alive
ASG | ASG | N/A | Down

この出力は、xdms1〜xdms3がこのマシンで実行していることを示します。ocmsインスタンスも起動して実行しています。User Dispatcherがこのインスタンスで実行されていることに注意してください。opmnctlを使用して、各インスタンスがリスニングしているすべてのポートを表示することもできます。このためには、次の例のようにスイッチ-lをopmnctlに指定します。

$ORACLE_HOME/opmn/bin/opmnctl status -l

これにより、表5-1のような出力が表示されます。この表の出力は一部省略されています。通常は、プロセスID、起動時刻、その他の情報が含まれます。

すべての構成が適切な場合は、ocmsがSIPポート5060、xdms1が5062などのようにリスニングしていることが表示されます。

表5-3    プロセス・タイプ別の使用ポート 
プロセス・タイプ  ポート 

OC4J:xdms3 

jms:12605、sip:5066、http:8903、rmis:12705、sip:5066、sips:5067、rmi:12405 

OC4J:xdms2 

jms:12604、sip:5064、http:8902、rmis:12704、sip:5064、sips:5065、rmi:12404 

OC4J:xdms1 

jms:12603、sip:5062、http:8901、rmis:12703、sip:5062、sips:5063、rmi:12403 

OC4J:ocms 

jms:12602、sip:5060、http:7785、rmis:12702、sip:5060、sips:5061、rmi:12402 

OC4J:home 

jms:12601、http:8888、rmis:12701、rmi:12401 

接続プールの作成

XDMSインスタンスの接続プールとデータソースを作成します。ユーザー・プレゼンス・ルールとPIDFドキュメントはOracle Database(サンプル・ネットワークでは192.168.0.30)に格納されていることに注意してください。これらのドキュメントにアクセスできるようにXDMSノードを構成する必要があります。次のプロパティを使用して接続プールとデータソースを設定します。

ユーザー名とパスワードは、それらの資格証明でOracle Databaseにアクセスできるものであればデプロイに合せて変更できます。接続プールとデータソースを作成するには、管理ノードで次のコマンドを実行します。

java -jar ORACLE_HOME/j2ee/home/admin_client.jar 
deployer:clusterj:opmn://<management-host-ip-address> <oc4j-username> <admin_pwd> 
-addDataSourceConnectionPool -applicationName <name> -name <connection pool name> -name 
<connection pool name> -factoryClass <factory class> -dbPassword <db password> -dbUser 
<db username> -url <url>
 
java -jar ORACLE_HOME/j2ee/home/admin_client.jar 
deployer:cluster:opmn://<management-host-ip-address>/xdms <oc4j-username> <password> 
-addManagedDataSource -applicationName default -name "<data-source-name>" -jndiLocation 
java:jdbc/<data-source-name> -connectionPoolName "<connection-pool-name>"

サンプル・ネットワークでは、Oracle Databaseはホスト192.168.0.30のポート1521にあります。データベース名はorcl11g、管理ノードは192.168.0.100にあります。サンプル・ネットワークを前述のように構成する場合は、次のコマンドを管理ノードで実行して、XDMSのJDBCデータソースを作成します。

java -jar admin_client.jar deployer:cluster:opmn://192.168.0.100/xdms oc4jadmin 
myPassword1 -addDataSourceConnectionPool -applicationName default -name "SDP XDMS 
Oracle Connection Pool" -factoryClass oracle.jdbc.pool.OracleDataSource -dbUser 
SDP_ORASDPXDMS -dbPassword myDBPassword1 -url jdbc:oracle:thin:@//192.168.0.30:1521/orcl11g java -jar admin_client.jar deployer:cluster:opmn://192.168.0.100/xdms oc4jadmin myPassword1 -addManagedDataSource -applicationName default -name "OcmsXdmsDs" -jndiLocation java:jdbc/OcmsXdmsDs -connectionPoolName "SDP XDMS Oracle Connection Pool"

データソースまたは接続プール(あるいは両方)を後から削除する必要がある場合は、次のコマンドを発行します。

java -jar admin_client.jar deployer:cluster:opmn://<management-host-ip-address>/
xdms <oc4j-username> <oc4j-password> -removeManagedDataSource -name "<data-source-name>" java -jar admin_client.jar deployer:cluster:opmn://<management-host-ip-address>/
xdms <oc4j-username> <oc4j-password> -removeDataSourceConnectionPool -name "<connection-pool-name>"

サンプル・ネットワークでは、データソースと接続プールを削除するためのコマンドはそれぞれ次のようになります。

java -jar admin_client.jar deployer:cluster:opmn://192.168.0.100/xdms oc4jadmin 
myPassword1 -removeManagedDataSource -name "OcmsXdmsDs"
java -jar admin_client.jar deployer:cluster:opmn://192.168.0.100/xdms oc4jadmin 
myPassword1 -removeDataSourceConnectionPool -name "SDP XDMS OracleConnection Pool"

XDMSのデプロイおよび構成

Oracle Enterprise Managerでグループ・ビューを使用し、Presenceアプリケーションの.earファイルをグループのすべてのインスタンスにデプロイします(PresenceとXDMSの両方で同じ.earファイルを使用します)。デプロイ時にはアプリケーションの名前としてxdmsを使用することをお薦めします。デプロイが終了したら、すべてのインスタンスで次の項目を構成する必要があります。

PublicXCAPRootUrlおよびPublicContentServerRootUrlの変更

各OC4J XDMSノード・インスタンスについて、「XDMS」→「XCAPConfig」アプリケーションMBeanに移動し、次の属性の値を設定します。

    - PublicXCAPRootUrl - http://<node-ip>:<node-http-port>/services
    - PublicContentServerRootUrl - http://<node-ip>:<node-http-port>/contentserver

ここで、node-ipはXDMSインスタンスが存在するマシンのIPアドレス、node-http-portはXDMSサーバーが実行しているOC4JインスタンスのHTTPポートです。これは、OC4Jインスタンスをcreateinstanceコマンドを使用して作成するときに、-httpPort XXXXオプションを使用して指定する値です。

サンプル・ネットワークでは、1つのXDMSノードに3つのXDMSインスタンスがあります。このため、ホスト192.168.0.20のXDMSインスタンスについては次のように値を設定します。

xdms1:

PublicXCAPRootUrl - http://192.168.0.20:8091/sevices
PublicContentServerRootUrl - http://192.168.0.20:8091/contentserver

xdms2:

PublicXCAPRootUrl - http://192.168.0.20:8092/sevices
PublicContentServerRootUrl - http://192.168.0.20:8092/contentserver

xdms3:

PublicXCAPRootUrl - http://192.168.0.20:8093/sevices
PublicContentServerRootUrl - http://192.168.0.20:8093/contentserver

サンプル・ネットワークにおいて192.168.0.21にある2番目のXDMSノード(マシン)の設定は、前の例と似ていますが、属性のIPアドレスが192.168.0.20ではなく192.168.0.21になります。

UserAgentFactoryServiceポートの更新

各OC4J XDMSノード・インスタンスについて、XDMSアプリケーションのUserAgentFactoryService MBeanに移動し、ポートの競合を避けるために、マシン上のXDMSインスタンスそれぞれについてPort属性の値を一意に設定します。管理しやすくするために、連続した使用可能ポートを使用することをお薦めします。サンプル・ネットワークでは、インスタンスxdms1、xdms2およびxdms3に対して5070、5071および5072をそれぞれ使用しています。

JGroupsの有効化

各OC4J XDMSノード・インスタンスについて、PackageManager MBeanに移動し、JGroupsBroadcastEnabled - trueのように属性の値を設定します。

XDMSサーバーとPresenceサーバーが同じポートおよびアドレスでJGroupsの通知をリスニングしないようにします。このようにしないと、エラーが発生します。PresenceサーバーではデフォルトのJGroups構成を使用したため、XDMSサーバーでは異なる構成を使用する必要があります。このためには、XDMSサーバー・パッケージ・マネージャが認識するように、JGroups構成ファイルへのパスを指定します。最小の構成ファイルの例を次に示します。

<config>
  <UDP bind_addr="[host-ip-address]" mcast_addr="[multicast-address]" 
mcast_port="[multicast-port]" ip_ttl="1"/> </config> replacing the variables as follows: [host-ip-address] - the IP address of the host running the XDMS server [multicast-address] - the multicast address on which all participants in the group will listen for messages. [multicast-port] - the multicast port on which all participants in the group will listen for messages.

すべてのノードのすべてのXDMSサーバー・インスタンスで、multicast-addressおよびmulticast-portの値が同じになるようにしてください。また、通常、同一ホスト上のXDMSサーバーのhost-ip-addressは同じになります。ただし、XDMSサーバーのmulticast-address:multicast-portの組合せは、Presenceサーバーとは異なる必要があります。Presenceサーバーでは、デフォルト構成値(230.0.0.1:7426)をmulticast-host:multicast-portで使用したことに注意してください。場所を選択してこのファイルを保存し、EventPackageManager MbeanのJGroupXMLConfigPath属性がこのファイルを指すように編集します。

JGroupXMLConfigPath - <absolute path to the jgroups XML configuration file>

サンプル・ネットワークでは、192.168.0.20のホストで次のJGroups構成ファイルを使用します。

<config>
  <UDP bind_addr="192.168.0.20" mcast_addr="234.0.0.1" mcast_port="1234"  ip_ttl="1"/>
</config>
 

このノード上のすべてのXDMSインスタンスの構成は同じです。したがって、このファイルを$ORACLE_HOME/j2ee/ocms/config/sdp/jgroups.xmlに保存し、各XDMSインスタンスxdms1、xdms2およびxdms3についてEventPackageManager Mbeanを次の設定になるように編集します。

JGroupBroadcastEnabled - true
JGroupXMLConfigPath - <path-to-ORACLE_HOME>/j2ee/ocms/config/sdp/jgroups.xml

192.168.0.21のXDMSホストも、ホストIPアドレスを適切に置き換えて同じ方法で構成します。

データベースの構成

次の構成手順を実行します。

  1. orasdpxdms.create.oracle.sqlおよびxcapservice.create.oracle.sqlファイルをデータベースが実行しているマシンにコピーします。これらのファイルは、<installer files extraction location>/Disk1/stage/Components/
    oracle.sdp/10.1.3.4.0/1/DataFiles/Expanded/DBFiles/
    にあります。

  2. データベースが実行しているマシンにログインし、sqlファイルをコピーしたディレクトリに移動してください。

  3. sqlplusを使用してsysdbaとしてデータベースに接続します。これは、bash$ sqlplus / as sysdbaのように実行します。

  4. 前述のsqlファイルを次のようにsqlplusプロンプトで実行します。

    sqlplus> @orasdpxdms.create.oracle.sql PREFIX  DATADIR  PASSWORD
    
    

    ここで、PREFIXはスキーマとユーザーに使用する接頭辞、DATADIRは作成したデータベース・ファイルが存在するパス、PASSWORDは作成されるユーザーのパスワードです。

    次に例を示します。

    sqlplus> @orasdpxdms.create.oracle.sql  TEST  "C:¥oraexe¥oradata¥XE"  myPassword1
    
    

    これにより、データベース・ファイルがC:¥oraexe¥oradata¥XEに作成されます。スキーマ名とユーザー名はTESTで始まるようになり、ユーザーのパスワードはmyPassword1になります。

  5. もう1つのsqlファイルを次のように実行します。

    sqlplus> @xcapservice.create.oracle.sql PREFIX
    
    

    この場合のPREFIXは、orasdpxdms.create.oracle.sqlファイルの実行時の指定と同じにする必要があります。

sashの構成

次の構成手順を実行します。

  1. $ORACLE_HOME/sdp/sash/sbinに移動します。

  2. ファイルxdms-create-default-appusage.txtを作成します。

  3. このファイルに次の行を追加します。

    xcap appusage create applicationUsage=pres-rules configurationFilename=
    presrules_au.xml xcap appusage create applicationUsage=resource-lists configurationFilename=resource-lists_au.xml xcap appusage create applicationUsage=pidf-manipulation configurationFilename=pidfmanipulation_au.xml
  4. デフォルトのアプリケーション使用でデータベースをシードするには、次のコマンドを実行します。

    - bash$ sash -a presenceapplication --username oc4jadmin --password PASSWORD --file 
    xdms-create-default-appusage.txt
    
    

    ここで、PASSWORDはoc4jadminのパスワードです。

確認

次のようにsashにログオンします。

bash$ sash -a presenceapplication --username oc4jadmin --password PASSWORD

sashプロンプトで次のように入力します。

sash# xcap appusage list

構成が正しい場合は、これによってresource-lists、pidf-manipulationおよびpres-rulesという3つの値が返されます。

User Dispatcherの構成

デプロイ内のすべてのXDMSインスタンスにSIPトラフィックをルーティングできるようにUser Dispatcherを構成します。User Dispatcherが存在するマシン上のすべてのPresenceインスタンスと、デプロイ内の他のマシンのすべてのXDMSインスタンスにSIPトラフィックを送るように、すべてのUser Dispatcherを構成する必要があります。つまり、各XDMSノード(XDMSマシン)のUser Dispatcherは、他のノードのすべてのXDMSインスタンスを認識する必要があります。User DispatcherがSIPトラフィックをすべてのXDMSサーバーにルーティングできるように構成するには、次の手順を実行します。

  1. 管理ノードのEnterprise Managerにログインします。

  2. クラスタ・ビューで、構成するUser Dispatcherが存在するXDMSノードを選択します。

  3. 「アプリケーションの選択」→「userdispatcherアプリケーション定義のMBeans」を選択します。

  4. 「xdms-sip-pool」をクリックし、「サーバー」を選択します。

  5. デプロイ内のすべてのXDMSサーバーを指すSIP URIを追加します。URIの形式は次のとおりです。

    sip:<ip-address>:<port>;transport=tcp;lr
    
    

    サンプル・ネットワークには2つのXDMSノード(マシン)があり、それぞれに3つのXDMSサーバーがあります。XDMSサーバーは合計6つです。各User DispatcherがSIPトラフィックを6つのXDMSサーバーにルーティングするように構成する必要があります。各User Dispatcherのxdms sipプールに次の内容を追加します。

    sip:192.168.0.20:5062;transport=tcp;lr
    sip:192.168.0.20:5064;transport=tcp;lr
    sip:192.168.0.20:5066;transport=tcp;lr
    sip:192.168.0.21:5062;transport=tcp;lr
    sip:192.168.0.21:5064;transport=tcp;lr
    sip:192.168.0.21:5066;transport=tcp;lr
    
    
  6. 「xdms-http-pool」をクリックし、「サーバー」を選択します。

  7. デプロイ内のすべてのXDMSインスタンスを指すHTTP URIを追加します。URIの形式は次のとおりです。

    http://<ip-address>:<port>/services
    
    

    サンプル・ネットワークには2つのXDMSノード(マシン)があり、それぞれに3つのXDMSサーバーがあります。XDMSサーバーは合計6つです。各User DispatcherがHTTPトラフィックを6つのXDMSサーバーにルーティングするように構成する必要があります。各User Dispatcherのxdms sipプールに次の内容を追加します。

    http://192.168.0.20:8901/services/
    http://192.168.0.20:8902/services/
    http://192.168.0.20:8903/services/
    http://192.168.0.21:8901/services/
    http://192.168.0.21:8902/services/
    http://192.168.0.21:8903/services/
    

インストールのチューニング

ここでは、インストールしたコンポーネント同士が共存して適切に稼働できるように、チューニングする方法について説明します。

オーバーロード・ポリシーの更新

User Dispatcherを除くすべてのPresenceインスタンスとXDMSインスタンスについて、OverloadPolicy.xmlのSipSessionTableMaxSize属性を400000に変更します。OverloadPolicy.xmlは$ORACLE_HOME/j2ee/
<instance-name>/config/sdp
にあります。

WebCenterインスタンスの無効化

インストールが終了したら、不要にリソースを消費しないようにWebCenterインスタンスを無効にします。これには、$ORACLE_HOME/opmn/conf/にあるopmn.xmlファイルを編集します。サンプルの<process-type id="OC4J_WebCenter" module-id="OC4J" status="disabled">のように、ステータスをenabledからdisabledに変更します。変更を有効にするために、次のようにサーバーを再起動します。

$ORACLE_HOME/opmn/bin/opmnctl stopall

停止した後で再び起動します。

$ORACLE_HOME/opmn/bin/opmnctl startall

ホーム・インスタンスの無効化

すべてのインストールが終了したら、管理ノードを除くすべてのノードでホームOC4Jインスタンスを停止します。管理ノードは、Enterprise Managerコンソールにログインして、デプロイ全体の構成を表示または変更するために使用します。ホーム・インスタンスを停止するには、すべてのPresenceノードのopmn.xmlファイルを編集して、WebCenterインスタンスの場合と同じ方法でホーム・インスタンスを無効にします。ホームが必要になるのは、createinstanceコマンドを使用して新しいインスタンスを作成するときのみです。

ASGインスタンスの無効化

パフォーマンスを向上させるためにASGインスタンスを停止します。

ロード・バランサの構成

外部からの観点では、ネットワーク全体は1つのノードのように見えます。これは、1つ以上のロード・バランサをPresenceクラスタとXDMクラスタの前面に配置することで実現します。ここでは、サンプル・ネットワークを使用して、F5のBigIPロード・バランサを設定する方法について説明します。

全体的な視点で考えると、SIPトラフィック用に2つのプール、XCAPトラフィック用に1つのプールを作成する必要が生じます。1つのSIPプールにはシステムのすべてのPresenceノードが含まれ、もう1つのプールにはすべてのXDMノードが含まれます。XCAPトラフィックのプールにはXDMノードのリストのみが含まれます。XDMノードのみがXCAPトラフィックを処理するためです。

外部クライアントはこれらのプールには直接接続せず、仮想サーバーに接続します。この仮想サーバーには特定のプールが含まれます。外部クライアントが認識するのはこの仮想サーバーであり、これによって、システム全体が1つのマシンのように見えます。

BigIPのすべての構成は、Webベースの管理インタフェースで行います。機能や構成オプションの詳細は、BigIPのドキュメントを参照してください。

新しいプールの作成

新しいプールを作成するには、「Local Traffic」→「Virtual Servers」→「Pools」を選択して「Pool」ページにナビゲートします。新しいプールを作成する一般的な手順は次のとおりです。

  1. 構成は「Basic」のままで、プールの適切な名前を選択して、作成を開始します。

  2. 状態モニターについてはgateway_icmpを選択します。

  3. 「Round Robin」がこの場合のニーズに合うロード・バランシング・メソッドです。これを選択します。

  4. 「Priority Group Activation」は無効のままにします。

  5. 「New Members」では、この特定のプールに含めるすべてのノードを追加します。ノードごとに、アドレスとポートを入力して「Add」をクリックします。この特定のプールに含めるすべてのノードについてこの操作を繰り返します。

サンプル・ネットワークを使用する場合は、最初のプール、すなわちPresence用のSIPプールを作成するために次の情報を入力します。

  1. 任意の名前を指定できます。このサンプルでは、このプールの名前としてps_sipを使用します。

  2. 状態モニターについてはgateway_icmpを選択します。

  3. 「Round Robin」がこの場合のニーズに合うロード・バランシング・メソッドです。これを選択します。

  4. 「Priority Group Activation」は無効のままにします。

  5. このプールに追加するメンバーはPresenceノードすべてです。サンプル・ネットワークには3つのPresenceノードがあり、このプールはこれらの3つのインスタンスを指す必要があります。実際のPresenceインスタンスに対応するのはUser Dispatcherであるため、実際にはロード・バランサがUser Dispatcherを指すようにします。したがって、次の3つのアドレスをこのプールのメンバーとして追加します。

    • IPアドレス: 192.168.0.10、ポート: 5060

    • IPアドレス: 192.168.0.11、ポート: 5060

    • IPアドレス: 192.168.0.12、ポート: 5060

    これで、Presenceのプールが作成されました。同じ方法で、XDMネットワークに送信されるSIPトラフィックのためにもう1つのプールを次のように作成できます。

    1. 名前: xdms_sip

    2. 前述の手順と同様にします。

    3. 前述の手順と同様にします。

    4. 前述の手順と同様にします。

    5. メンバーは、サンプル・ネットワークの2つのXDMSノードです。Presenceのプールと同様に、このプールがそれらのXDMSノード上で実行しているUser Dispatcherを指すようにします。したがって、次の2つのメンバーがこのノードに追加されます。

      IPアドレス: 192.168.0.20、ポート: 5060

      IPアドレス: 192.168.0.21、ポート: 5060

XCAPトラフィックのプールは他の2つのプールと同じです。このプールは、SIPトラフィックではなくHTTPトラフィック(XCAPはHTTP上で送信される)をディスパッチしますが、概念は同じです。

  1. 名前: xdms_http

  2. 前述の手順と同様にします。

  3. 前述の手順と同様にします。

  4. 前述の手順と同様にします。

  5. メンバーはここでも2つのXDMSノードですが、XCAPトラフィックは認証の必要があることに注意してください。このため、このトラフィックはAggregation Proxyを介して送信する必要があります。したがって、これらのメンバーはUser Dispatcherを指すのではなく、Aggregation ProxyがリスニングするHTTPポートを指すようにします。サンプル・ネットワークの場合は次のアドレスを追加します。

    IPアドレス: 192.168.0.20、ポート: 80

    IPアドレス: 192.168.0.21、ポート: 80

これでサンプル・ネットワークに必要な3つのプールが作成されました。次の手順は、各プールに対応する仮想サーバーの構成です。

新しい仮想サーバーの作成

仮想サーバー(VS)は外部クライアントが操作するためのものです。クライアントが特定のVSに接続すると、そのVSがリクエストをいずれかのプールにプロキシ処理し、プールがメンバーの1つにリクエストをディスパッチします。サンプル・ネットワークでは、3つのプールそれぞれに対応するVSを1つずつ作成します。新しいVSを作成する一般的な手順を次に示します。仮想サーバーは「Local Traffic」に表示されます。

  1. 「Create」をクリックして、仮想サーバーの作成を開始します。

  2. このVSはTCPを使用するため、適当な名前としてps_sip_tcpと付けます。

  3. サンプル・ネットワークでは、ロード・バランサのインタフェースは1つのみであり(少なくとも1つだけは有効にし、その他は不要)、その1つのインタフェースが192.168.0.150でリスニングします。宛先アドレスにはこのアドレスを入力します。

  4. ポートは使用可能な任意のポートを使用できますが、このサンプルでは5060を使用します。

  5. このVSはTCPを実行するため、そのように選択します。

  6. 「Auto Map for the SNAT Pool」を有効にします。

  7. 「Resource」には、Presenceノードを含むプールを指定します。サンプル・ネットワークでは、このプールの名前はps_sipで、デフォルトのプールです。このVSが使用するのはこのプールのみです。

  8. 「Finish」をクリックし、新しい仮想サーバーを作成します。

次に作成するVSは、XDMクラスタに送られるSIPトラフィックに対するVSです。

  1. 「Create」をクリックして、仮想サーバーの作成を開始します。

  2. 名前はxdms_sip_tcpとします。

  3. 宛先アドレスは192.168.0.150です。

  4. 5060は使用中であるため、5062を選択します。

  5. このVSはTCPを実行するため、そのように選択します。

  6. 「Auto Map for the SNAT Pool」を有効にします。

  7. 「Resource」には、xdms_sipという名前のプールを指定します。

  8. 「Finish」をクリックします。

仮想サーバー(VS)は外部クライアントが操作するためのものです。クライアントが特定のVSに接続すると、そのVSがリクエストをいずれかのプールにプロキシ処理し、プールがメンバーの1つにリクエストをディスパッチします。サンプル・ネットワークでは、3つのプールそれぞれに対応するVSを1つずつ作成します。新しいVSを作成する一般的な手順を次に示します。仮想サーバーは「Local Traffic」に表示されます。

  1. 「Create」をクリックして、仮想サーバーの作成を開始します。

  2. 名前はxdms_http_tcpとします。

  3. 宛先アドレスは192.168.0.150です。

  4. ポートは80です。

  5. プロトコルはTCPです。

  6. 「Auto Map for the SNAT Pool」を有効にします。

  7. 「Resource」には、xdms_httpという名前のプールを指定します。

  8. 「Finish」をクリックします。

これで、F5 BipIPロード・バランサの構成が完了します。様々なオプションの詳細は、BigIPのドキュメントを参照してください。


戻る 次へ
Oracle
Copyright © 2006, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引