|
以下の節では、Oracle Communications Converged Application Server デプロイメントのエンジン層において SIP コンテナの機能をコンフィグレーションする方法について説明します。
Administration Console や WLST (WebLogic Scripting Tool) などの JMX ユーティリティを使用するか、カスタムの JMX アプリケーションをプログラミングすることで SIP コンテナ プロパティをコンフィグレーションできます。Administration Console によるコンテナ プロパティのコンフィグレーションでは、Administration Console グラフィカル ユーザ インタフェースによるコンテナ プロパティのコンフィグレーション方法について説明します。
「WLST (JMX) によるコンテナ プロパティのコンフィグレーション」では、JMX MBean に直接アクセスしてコンテナのコンフィグレーションを変更する方法を説明します。後続の節で、JMX によるコンフィグレーション MBean へのアクセスの例として示しているのは、すべて WLST を使用する方法です。
Oracle Communications Converged Application Server に含まれている Administration Console を使用すると、WebLogic Server の中核機能および Oracle Communications Converged Application Server で提供されている SIP サーブレット コンテナ機能のコンフィグレーションとモニタを実行できます。Administration Console を使用して SIP サーブレットの機能をコンフィグレーションまたはモニタするには、次の手順に従います。
コンソールの右ペインにある 2 つのレベルのタブ付きページで Oracle Communications Converged Application Server をコンフィグレーションし、モニタします。表 7-1 は、表示される各ページの役割をまとめたものです。表中のリンクを利用すると、SIP コンテナ プロパティのコンフィグレーションに関する詳細な情報を参照できます。
Oracle Communications Converged Application Server のコンフィグレーション ページのいずれかの情報を変更するには、最初に [Lock & Edit] ボタンをクリックして、コンフィグレーションに対するロックを取得する必要があります。コンフィグレーションをロックすると、他の管理者が同時にそのコンフィグレーションを変更することはできなくなります。
コンフィグレーションに対するロックを取得すると、複数のコンフィグレーション ページを切り替えながら SIP サーブレット コンテナの属性値を変更できるようになります。変更は必要に応じて保存できます。変更後の操作は、変更結果を保存するか破棄するかに応じて二通りあります。
変更前の起動コンフィグレーションは Oracle Communications Converged Application Server によって自動的に保存され、config/custom ドメイン ディレクトリのサブディレクトリ内の sipserver.xml.booted ファイルに格納されます。起動時のコンフィグレーションに戻す必要がある場合は、このファイルを使用することにより、サーバの起動時以降に行われたコンフィグレーションに関するすべての変更を破棄して元の状態に戻すことができます。
| 注意 : | Weblogic Scripting Tool (WLST) ユーティリティを使用すると、WebLogic Server または Oracle Communications Converged Application Server のインスタンス上で使用可能な JMX MBean を監視または変更することができます。WLST の全ドキュメントは「http://edocs.bea.com/wls/docs103/config_scripting/index.html」で参照できます。 |
| 注意 : | Oracle Communications Converged Application Server ドメインを設定するために WLST を使用する前に、必須の Oracle Communications Converged Application Server クラスをクラスパスに追加するため環境を設定します。WLSS_HOME/server/bin にあるドメイン環境スクリプトまたは setWLSEnv.sh スクリプトを使用します。WLSS_HOME は Oracle Communications Converged Application Server インストールのルートです。 |
表 7-2 コンフィグレーションのロックおよび変更の適用に使用する WLST メソッドの概要を示します。
通常のコンフィグレーション セッションには以下のタスクが含まれます。
startEdit() を呼び出す。save() を呼び出して、すべての変更を sipserver.xml.saved という名前の一時コンフィグレーション ファイルに永続性するか、またはactivate() を呼び出して、変更の sipserver.xml.saved ファイルへの永続性、sipserver.xml.saved の sipserver.xml への名前変更 (コピーによる既存ファイルの上書き)、および実行中のエンジン層サーバ ノードへの変更の適用を行います。| 注意 : | Oracle Communications Converged Application Server ドメインの管理サーバの起動時には、sipserver.xml に記述されている現在のコンテナのコンフィグレーションが管理サーバによって解析され、その初期コンフィグレーションの内容をコピーした sipserver.xml.booted という名前のファイルが作成されます。「起動時のコンフィグレーションの復元」で説明しているように、このコピーを使用すると、コンフィグレーションを起動時の状態に戻すことができます。 |
ConfigManagerRuntimeMBean は、表 7-3 に示したコンフィグレーション MBean へのアクセスを管理し、これらの MBean の属性を永続化します。ネットワーク チャネルや各種サーバ プロパティなどのリソースを管理する WebLogic Server MBean など、その他のコンフィグレーション MBean を変更することは可能ですが、それらの MBean は ConfigManagerRuntimeMBean による管理の対象ではありません。
|
||
sipserver.xml コンフィグレーション ファイル全体を表すコンフィグレーション MBean である。この MBean を使用すると、この表に示した各 MBean を個々に取得および管理できるほか、SIP タイマーや SIP セッション タイムアウトの値を設定することもできる。『コンフィグレーション リファレンス マニュアル』の「MBean の作成と削除」、「default-behavior」、「enable-local-dispatch」、「max-application-session-lifetime」、「t1-timeout-interval」、「t2-timeout-interval」、「t4-timeout-interval」、「timerB-timeout-interval」、および「timerF-timeout-interval」も参照する。
|
SIP サーブレット コンテナのすべてのコンフィグレーション MBean は「serverConfig」の MBean ツリーに配置されており、これらの MBean にアクセスするには WLST の serverConfig() コマンドを使用します。MBean ツリー内の各コンフィグレーション MBean にアクセスするには、次のパスを使用します。
CustomResources/sipserver/Resource/sipserver
たとえば、Oracle Communications Converged Application Server ドメインのデフォルトの Proxy MBean を参照するには、以下の WLST コマンドを入力します。
serverConfig()
cd(‘CustomResourcess/sipserver/Resource/sipserver/Proxy')
ls()
ConfigManagerRuntime などの実行時 MBeans は「カスタム」の MBeans ツリーに配置されており、これらの MBeans にアクセスするには WLST の custom() コマンドを使用します。実行時 MBeans は以下のパスを使用します。
mydomain:Location=myserver,Name=myserver,Type=mbeantype
プロキシや過負荷保護の設定などの特定のコンフィグレーション設定は、sipserver.xml においてデフォルトで定義されています。これらの設定に対応したコンフィグレーション MBean は、関連付けられているサーバの起動時に生成されるので、Proxy MBean および OverloadProtection MBean はサーバの起動直後から参照できます。その他のコンフィグレーション設定はデフォルトではコンフィグレーションされないので、それらの設定に対応する MBean にアクセスするには、事前にその MBean を作成する必要があります。「MBean の作成と削除」を参照してください。
以下の節では、SIP サーブレット コンテナのプロパティをコンフィグレーションするための WLST スクリプトおよびコマンドの例を示します。
Oracle Communications Converged Application Server で WLST を使用するには、Oracle Communications Converged Application Server のすべての JAR ファイルをクラスパスに追加しておく必要があります。次の手順に従います。
コンフィグレーション セッションでは、通常、ConfigManagerRuntimeMBean への 2 回のアクセス (コンフィグレーションに対するロックを取得するためのアクセスと、コンフィグレーションの永続性または変更の適用、あるいはその両方を行うためのアクセス) が必要になるので、コンテナの属性を管理する JMX アプリケーションは多くの場合、類似した構造を持つことになります。コード リスト 7-1 に示した WLST スクリプトには、ConfigManagerRuntimeMBean にアクセスするために必要な一般的なコマンドが記述されています。新規の Oracle Communications Converged Application Server ドメインでは、プロキシの RoutingPolicy 属性はデフォルトで supplemental に設定されていますが、このスクリプト例は、この属性の値を変更します。このコード リストは基本的なテンプレートとして役立ち、MBean へのアクセスやコンフィグレーションの変更に使用するコマンドを必要に応じて書き換えることによって、さまざまなコンフィグレーションに使用できます。
# 管理サーバに接続する
connect('weblogic','weblogic','t3://localhost:7001')# ConfigManagerRuntimeMBean にアクセスして、編集セッションを開始する
custom()
cd('mydomain:Location=myserver,Name=sipserver,ServerRuntime=myserver,Type=ConfigManagerRuntime')cmo.startEdit()
# -- このセクションを必要に応じて変更する --
# SIP サーブレット コンテナのコンフィグレーション MBean を編集する
cd('mydomain:DomainConfig=mydomain,Location=myserver,Name=myserver,SipServer=myserver,Type=Proxy')set('RoutingPolicy','domain')# ConfigManagerRuntimeMBean にアクセスして、コンフィグレーションを
# sipserver.xml に永続性する
cd('mydomain:Location=myserver,Name=sipserver,ServerRuntime=myserver,Type=ConfigManagerRuntime')cmo.activate()
SipServer MBean は、sipserver.xml コンフィグレーション ファイル全体の内容を表します。SipServer では、SIP タイマーおよび SIP アプリケーションのセッション タイムアウトをコンフィグレーションするための属性を設定できるだけでなく、プロキシ設定や過負荷保護制御を表す MBean を作成または削除するために役立つヘルパー メソッドも使用できます。
コード リスト 7-2 は、ヘルパー コマンドを使用して、sipserver.xml 内のコンフィグレーション要素を表すコンフィグレーション MBean を作成および削除するスクリプトの例です。「コード リスト 7-3 SIP コンテナのコンフィグレーション MBean」にも、Sipserver のその他のヘルパー メソッドの使用例が含まれています。ヘルパー メソッドについては、「Oracle Communications Converged Application Server の JavaDoc」の情報も参照してください。
connect()
custom()
cd('mydomain:Location=myserver,Name=sipserver,ServerRuntime=myserver,Type=ConfigManagerRuntime')cmo.startEdit()
cd('mydomain:DomainConfig=mydomain,Location=myserver,Name=sipserver,ServerRuntime=myserver,Type=SipServer')cmo.destroyOverloadProtection()cmo.createProxy()cd('mydomain:Location=myserver,Name=sipserver,ServerRuntime=myserver,Type=ConfigManagerRuntime')cmo.save()
Proxy などのコンフィグレーション MBean には、URI オブジェクトを属性値として渡す必要があります。Oracle が提供しているヘルパー クラスの com.bea.wcp.sip.util.URIHelper を使用すると、文字列の配列から容易に URI オブジェクトを生成することができます。コード リスト 7-3 は、コード リスト 7-2 MBean を作成および削除するための WLST コマンドに示したスクリプト例を一部変更して、LoadBalancer MBean に新しい URI 属性を設定するコードを追加したものです。URIHelper クラスの詳細なリファレンスについては、「Oracle Communications Converged Application Server の API JavaDoc」も参照してください。
# 文字列を URI に変換するためのヘルパー メソッドをインポートする。
from com.bea.wcp.sip.util.URIHelper import stringToSipURIsconnect()
custom()
cd('mydomain:Location=myserver,Name=sipserver,ServerRuntime=myserver,Type=ConfigManagerRuntime')cmo.startEdit()
cd('mydomain:DomainConfig=mydomain,Location=myserver,Name=sipserver,Type=SipServer')cmo.createProxy()
cd('mydomain:DomainConfig=mydomain,Location=myserver,Name=sipserver,SipServer=sipserver,Type=Proxy')stringarg = jarray.array([java.lang.String("sip://siplb.bea.com:5060")],java.lang.String)uriarg = stringToSipURIs(stringarg)set('ProxyURIs',uriarg)cd('mydomain:Location=myserver,Name=sipserver,ServerRuntime=myserver,Type=ConfigManagerRuntime')cmo.save()
Oracle Communications Converged Application Server ドメインの管理サーバの起動時には、sipserver.xml に記述されている現在のコンテナのコンフィグレーションが管理サーバによって解析され、その初期コンフィグレーションの内容をコピーした sipserver.xml.booted という名前のファイルが生成されます。この初期コンフィグレーションのバックアップ コピーはサーバの次回の起動時まで保持され、JMX を使用してコンフィグレーションを変更しても、バックアップ コピーはその影響を受けません。
SIP サーブレット コンテナのコンフィグレーションを変更した後で、その変更をロールバックすることが必要になった場合は、sipserver.xml.booted ファイルを現在の sipserver.xml ファイルに上書きコピーします。コピーした新しいコンフィグレーションを適用するには、サーバの再起動が必要です。
エンジン層のサーバが新しい呼状態データを SIP データ層に追加すると、SIP データ層のインスタンスは、そのデータをキューに格納し、各呼に関連付けられている SIP タイマーおよびアプリケーション タイマーのリストを最新の状態に更新します。エンジン層のサーバは、SIP データ層のすべてのパーティションに対するポーリングを定期的に実行し、その時刻において期限切れになっているタイマーを特定します。デフォルトでは、複数のエンジン層を使用している場合は、タイマー テーブルに対する競合を回避するために、SIP データ層へのポーリングは時間差を置いて行われます。期限切れのすべてのタイマーが見つかった場合、エンジン層のサーバは sip.timer.Default 実行キューで割り当てられているスレッドを使用して、そのタイマーを処理します。
タイマー処理がデフォルトの状態で動作している場合、エンジン層サーバはタイマーに関する呼出しを操作するには参加したかにかかわらず、現在に起動されるすべてのタイマーを処理します。しかし、いくつかの展開シナリオが、タイマーがそのタイマーに関する呼出しを最後に変更したと同様なエンジンサーバで処理されるのを必要とします。このシナリオに関する1つの例は、ホットスタンバイ方式です。これらは、別のエンジンで障害が発生するまで、任意の呼出すのデータが処理できないセカンダリ エンジン保存します。Oracle Communications Converged Application Server はこのようなシナリオで timer affinity をコンフィグレーションすることができます。
Timer Affinity を有効にすると、レプリカは、それぞれのエンジン層サーバが処理タイマの SIP データ層に対するポーリングを定期的に実行する必要があります。SIPデータ層にポーリングを実行するとき、エンジンはそれによる最後に変更された呼出しのタイマーまたは所有者がいない呼出しのに対するタイマーだけを処理します。
| 注意 : | エンジン層サーバが失敗する場合、最後にそのエンジンによって変更されたどんな呼出し状態にも、所有者は存在しません。所有者がいない期限切れのタイマーが SIP データ層にポーリングを実行する次のエンジン サーバによって処理されます。 |
[Timer Affinity の有効化] 設定は enable-timer-affinity 要素の sipserver.xml に永続性します。
SIP プロトコル スタックを正常に機能させるには、エンジン層と SIP データ層のすべてのサーバのシステム時計を共通の時刻設定元に正確に同期して、各時計の差を 1 ~ 2 ミリ秒以内に抑える必要があります。システム時計の時刻に大きな差があると、次のような重大な問題が発生する原因となります。
Oracle Communications Converged Application Server の各インスタンスでは、Network Time Protocol (NTP) のクライアントまたはデーモンを使用して、共通の NTP サーバの時刻に同期することをお勧めします。
| 警告 : | SIP プロトコル スタックを正常に機能させるには、サーバのシステム時計を共通の時刻設定元に正確に (差が 1 ~ 2 ミリ秒以内になるように) 同期する必要があります。T1 タイマーの初期値として設定される 500 ミリ秒の値は、INVITE リクエストおよび応答の再送信間隔の制御や、その他のタイマーの初期値の設定に使用されるので、システム時計の設定に少しでもずれがあると、SIP プロトコルが適切に動作しなくなるおそれがあります。たとえば、エンジン層の 1 つのサーバのシステム時計の時刻が他のサーバの時計より 250 ミリ秒進んでいると、そのサーバが処理する期限切れタイマーの割合が他のエンジン層サーバに比べて高くなり、割り当てられている間隔の半分の時間が経過した時点で再送信が開始されるようになります。また、メッセージのタイムアウトが本来より早い時点で強制的に発生するおそれもあります。 |
|