第24章

キャッシュコーディネータの使用

この章では、サーバクラスタ設定に対してexteNd Director キャッシュコーディネータを設定する方法について説明します。この章は、次の節から構成されています。

For more information    基礎的な情報については、を参照してください。

 
Top of page

キャッシュコーディネータについて

exteNd Directorでは、キャッシュコーディネータを利用して、サーバクラスタ環境内のキャッシュデータを管理することができます。 つまり、キャッシュコーディネータによって、「サーバライフタイムキャッシュ」に保存されたオブジェクトの管理が可能になります (を参照してください)。キャッシュコーディネータは、サーバクラスタの1つのコンピュータ上で実行します。

 
Top of section

キャッシュコーディネータの動作

サーバライフタイムキャッシュホルダに任意のオブジェクトを保存できます。 ただし、持続的な記憶場所(データベースなど)のデータからインスタンスを作成されたオブジェクトのみが、クラスタ環境で同期化できます。

サーバクラスタ内のすべてのサーバは、持続的な同一の保存場所にアクセスします。 持続的な保存場所からインスタンスを作成されキャッシュされたすべてのオブジェクトは、クラスタ環境で動作するアプリケーションサーバ間で同期化ができます。 その動作は次のとおりです。

注記:   データは、他のサーバインスタンスへは複製されません。 これは、一時データをサーバライフタイムキャッシュに保存した場合に、データが他のサーバインスタンスへ複製されないことを意味します。

 
Top of section

キャッシュ無効イベントの発生

自動的に無効化イベントを発生させるオブジェクトをキャッシュする場合は、EbiSrvLifetimeCacheHolder.putObjectInCache()を使用し、EboStateを渡します。EbiSrvLIfetimeCacheHolder.removeObjectInCache()を呼び出すと、常にキャッシュ無効イベントが発生します。

重要:   オブジェクトは、持続的な保存場所から物理的に削除されていない場合には削除しないでください。

キャッシュ無効イベントを発生させずにオブジェクトをキャッシュする場合は、EbiSrvLifetimeCacheHolder.putObjectInCache()を使用し、EboState.SILENCEを渡します。

For more information    詳細については、『API参照』のEbiSrvLifetimeCacheHolderを参照してください。

注記:   exteNd Directorでは、さまざまなタイプのサブシステムランタイムデータに対する、組み込みサーバライフタイムキャッシュホルダが利用できます。組み込みキャッシュホルダの説明を参照してください。

 
Top of page

キャッシュコーディネータの再設定

Novell exteNdウィザードによってキャッシュコーディネータがデフォルトでインストールされます。 (カスタムインストールを使用して、この動作を省略することもできます)。 次に、再設定できるキャッシュコーディネータプロパティおよび各プロパティにアクセスできる場所のリストを示します。

設定

説明

編集可能な場所

サーバホスト

キャッシュマネージャが稼動するホストコンピュータの名前。 デフォルト値はlocalhostです。

重要:   このホスト名localhostは、キャッシュコーディネータサーバの実際のホスト名に変更する必要があります。 localhostエントリによって、キャッシュ無効化機能が無効になります。

FrameworkServiceconfig.xml

サーバポート

キャッシュコーディネータがリッスンするRMI登録ポート。 デフォルトは54490です。

exteNd Directorプロジェクトを作成したときと同じ値を指定する必要があります。

SilverCache.props

FrameworkServiceconfig.xml

アプリケーション識別子

exteNd DirectorアプリケーションのUID。これは、クラスタを選択する場合にexteNd Director プロジェクトウィザードで自動的に作成されます。

重要:   サーバクラスタで共有ライブラリ機能を使用する予定であれば、各サーバは、クラスタプロパティを含む単一のConfigService.jarをポイントするように設定することが必要です。

編集不可

開始再試行回数

エラーを生成する前に、サーバアプリケーションインスタンスがキャッシュコーディネータに接続を試みる回数。

FrameworkServiceconfig.xml

開始再試行間隔

各接続が再試行されるまでの秒数。

FrameworkServiceconfig.xml

ウォッチャスリープ間隔

サーバアプリケーションインスタンスにアクセスを試みる間にキャッシュコーディネータが待機する秒数。アプリケーションが失敗すると、キャッシュコーディネータはクラスタからそれをドロップします。

SilverCache.props

再接続スリープ間隔

接続が失敗した後で、再接続の試行までキャッシュコーディネータが待機する時間。

FrameworkServiceconfig.xml

Procedure config.xmlでキャッシュコーディネータプロパティを編集する

  1. exteNd Directorプロジェクトで、FrameworkService-confディレクトリのconfig.xmlを開きます。

  2. XML Editorが開きます。 目的のプロパティを探して、値を編集します。

    注記:   次に、プロパティのソース表示を示します。 エディタのGraphical(デフォルト)ビューを使用することもできます。 エディタで[グラフィカルビュー]または[XMLソースビュー]を選択します。

      </property>
          <property>
              <key>com.sssw.fw.coordinator.Host</key>
              <value>myCMServer</value>
          </property>
          <property>
              <key>com.sssw.fw.coordinator.Port</key>
              <value>54490</value>
          </property>
          <property>
              <key>com.sssw.fw.coordinator.start.sleepInterval</key>
              <value>10</value>
          </property>
          <property>
              <key>com.sssw.fw.coordinator.Start.tryCount</key>
              <value>3</value>
          </property>
          <property>
              <key>com.sssw.fw.coordinator.reconnect.sleepInterval</key>
              <value>60</value>
          </property>
    
  3. ファイルを保存して、プロジェクトを展開します。

Procedure SilverCache.propsでプロパティを編集する

  1. 次の場所に保存されたSilverCache.propsを開きます。

    installdir/exteNdDirector/bin/SilverCache.props

  2. 目的のプロパティを検索して、値を編集します。

      # This properties file contains properties for the
      # extendDirector Cache Coordinator
      # version 4.0 or later
      
      cc.port=54490
      cc.watcher.interval=60
      cc.logging.level=3
    
  3. ファイルを保存して、キャッシュコーディネータを実行します(次の説明を参照)。

 
Top of page

キャッシュコーディネータの実行

Procedure Windowsのプログラムメニューからキャッシュコーディネータを実行する

  1. サーバクラスタが実行していることを確認します。

  2. スタート]>[すべてのプログラム]>[Novell exteNd 5]>[Director]>[DirectorCacheCoordinator]の順に進みます。

Procedure キャッシュコーディネータを手動で実行する

  1. サーバクラスタが実行していることを確認します。

  2. キャッシュコーディネータを実行します。

Procedure キャッシュコーディネータをサービスとして実行する(Windowsのみ)

  1. サービス]パネルに移動します。

    Windows NTでは、[コントロールパネル]、[管理サービス]から[サービス]を選択します。

    Windows 2000では、[コントロールパネル]、[管理ツール]から[サービス]を選択します。

  2. Silver Cache Coordinator]を選択します。

  3. 開始]を選択して手動でプログラムを起動するか、[スタートアップ]を選択してサービスを[自動]に変更して、サーバクラスタを起動するとバックグラウンドで自動的に実行するようにします。

 
Top of page

キャッシュコーディネータの故障からの回復

クラスタ内のサーバがキャッシュコーディネータに接続できない場合、サーバによってキャッシュ無効機能が無効となり、キャッシュコーディネータに再接続します。 再接続が失敗した場合でも、サーバを再起動することなくクラスタサーバキャッシュをフラッシュできます。 クラスタ内の各サーバには、DAC (Director管理コンソール)からアクセスでき、[Flush All]オプションを次の目的で使用できます。

注記:   このオプションは、WebSphereアプリケーションサーバで動作するサーバクラスタには使用できません。 クラスタ内の各サーバを再起動する必要があります。

クラスタでサーバを再起動した場合は、キャッシュのフラッシュは必要ではありません。何もキャッシュされない状態でサーバは開始します。

For more information    DACを使用したキャッシュ情報へのアクセスに関する詳細については、を参照してください。

 
Top of page

キャッシュコーディネータアクティビティのログ出力

exteNd Directorでは、キャッシュコーディネータアクティビティのログ出力機能が利用できます。 各サーバインスタンスからキャッシュコーディネータへ送信されたキャッシュ無効メッセージが監視でき、キャッシュコーディネータ自体のアクティビティが監視できます。

キャッシュ無効ログ出力を設定するには、次の作業が必要です。

For more information    ログ出力およびログ出力レベルの一般的な内容については、を参照してください。

 
Top of section

サーバインスタンスおよびキャッシュコーディネータのログ出力レベルの更新

キャッシュ無効ログ出力では、キャッシュログ出力レベル[5]が使用されます。

ログレベルの設定は、次の2つの方法があります。

ログ出力レベルを永続的に変更する   EboCacheLog.LoggingLevelプロパティ(FrameworkService-conf /config.xmlにあります)を[5]に変更します。 このプロパティ値を更新すると、変更した内容はその後のサーバセッションで持続されます。

For more information    このファイルの編集については、config.xmlでキャッシュコーディネータプロパティを編集するを参照してください。

サーバセッションのログ出力レベルを変更する   DACを使用してログ出力レベルを変更します。 この変更によって、このサーバインスタンスから現在のサーバセッションのキャッシュコーディネータに送信された、キャッシュ無効メッセージが監視できます。

For more information    詳細については、を参照してください。

 
Top of section

キャッシュコーディネータのログ出力レベルの更新

キャッシュコーディネータサーバでログ出力レベルを5に更新する必要があります。 次の方法の中から1つ選択します。

ログ出力レベルを永続的に変更する   SilverCache.propsのlogging.level5に変更します。 このプロパティ値を更新すると、変更した内容はその後のサーバセッションで持続されます。

For more information    このファイルの編集については、SilverCache.propsでプロパティを編集するを参照してください。

サーバセッションのログ出力レベルを変更する   次のようにオプションスイッチを追加して、キャッシュコーディネータをデバッグモードで実行します。

  SilverCacheCoordinator -l 5 

これによって、キャッシュコーディネータに登録されているアプリケーションインスタンスの数についての情報が提供されます。

ヒント:   コマンドオプションの情報を表示するには、次のように実行します。

  SilverCacheCoordinator -? 

 
Top of section

サーバ識別子の供給

ログ出力を改善し、登録された各サーバインスタンスのサーバIDを読みやすくするため、アプリケーションサーバには、各サーバインスタンスを明確に識別する属性を供給するものがあります。 それに代わる方法として、サーバ起動オプションの-Dが使用できます。

exteNdアプリケーションサーバへのサポート   ServletContextから利用できる属性に、com.novell.appsrv.servlet.application.host:portと呼ばれるものがあり、これは各サーバインスタンスの個別のServer IDを自動的に供給します。

WebSphereアプリケーションサーバへのサポート   ServletContextから利用できる属性に、com.ibm.websphere.servlet.application.と呼ばれるものがあり、これは各サーバインスタンスの個別のServerID(host:port#)を自動的に供給します。

サーバ起動オプション   サーバ起動オプションの+Dを使用して、各サーバインスタンスに対するユーザ独自の識別子を供給できます。 次の例に示すように、ServerID属性の値を指定します。

  Silverserver +Dcom.novell.afw.ServerID=myID

ここで、myIDは一意の識別子を表します。

注記:   このオプションは、他の方法で指定したどの識別子よりも優先して扱われます。

ServerID属性は、各サーバの再起動に対して自動的に生成されたUUIDのキャッシュマネージャ IDと結合されます。

注記:   ServerIDが指定されていない場合、キャッシュマネージャ IDのみが使用されます。 この値はログ出力のコンテキストでは読みにくいため、お勧めできません。

 
Top of section

ログ出力メッセージについて

サーバが起動されたとき、およびサーバインスタンスによってキャッシュ無効メッセージが生成されたときは必ず、ログ出力メッセージがサーバインスタンスおよびキャッシュコーディネータに生成されます。

サーバ起動ログ出力

サーバインスタンスが起動時にキャッシュコーディネータへ登録しようとするときに、各サーバインスタンスにメッセージが生成されます。 サーバインスタンスでログ出力メッセージが表示される様子を次に示します。

  EboCacheLog|5|11/11/03|15:20:09:113|<Connect> to the cache coordinator @ michigan:54490...
  EboCacheLog|5|11/11/03|15:20:09:154|<Cache Coordinator Service rmi URI> is: \qrmi
   ://michigan:54490/EboCacheCoordinator/exteNdDirectorCacheCoordinator\q.
  EboCacheLog|5|11/11/03|15:20:09:424|<Register> this exteNd Director instance with the
    cache coordinator...
  EboCacheLog|5|11/11/03|15:20:09:113|<Connect> to the cache coordinator @ michigan:54490...
     successfully.

これに対応するメッセージが、キャッシュコーディネータで生成されます。 この例のserverIDはclonelです。 クライアントカウント(この例では、1)は、現在接続されているサーバの数を示します。

  EboCacheLog|5|11/11/03|15:20:09:464|<Register> a client [ServerID: <clone1:
    c373e9f8cc736a65b1c7444553544200> AppID: <c373e9f8cc46d5b9b9d4444553544200>].
  
  EboCacheLog|4|11/11/03|15:20:09:464|<Registered client count> for [AppID:
    <c373e9f8cc46d5b9b9d4444553544200>] is: 1.
  

キャッシュ無効メッセージのログ出力

最初の例は、EbiSrvLifetimeCacheHolderからputObjectInCache()が(state=EboState.UPDATEとして)呼び出されたときに、サーバインスタンスで発生した出力を示しています。

  EboCacheLog|5|11/11/03|15:27:01:416|<Send notification> from [ServerID: <clone1:
  c373e9f8cc736a65b1c7444553544200> AppID: <c373e9f8cc46d5b9b9d4444553544200>] 
  to cache coordinator, message: cached content with [key: <admin> cache holder ID: <
  DirectoryService.UserCacheHolder.exteNd Server>] has been modified [state 113].

次に、キャッシュコーディネータサーバコンソールでの対応する出力を示します。

  EboCacheLog|5|11/11/03|15:27:01:426|<Receive notification> from 
  [ServerID: <clone1:c373e9f8cc736a65b1c7444553544200> AppID: <c373e9f8cc46d5b9b9d4444553544200>]
  message cached content with [key: <admin> from cache holder: <DirectoryService.
  UserCacheHolder.exteNd Server>] has been modified [state: 113].
  

2番目の例は、EbiSrvLifetimeCacheHolderからremoveObjectInCache()メソッドが呼び出されたときに発生した出力を示しています。

  EboCacheLog|5|11/11/03|15:32:11:572|<Send notification> from [ServerID: <clone1:
  c373e9f8cc736a65b1c7444553544200> AppID: <c373e9f8cc46d5b9b9d4444553544200>] to
  cache coordinator, message: cached content with [key: <PacPortletDetails.html> c
  ache holder ID: <testCluster.PageCacheHolder>] has been removed [state 112].
  

次に、キャッシュコーディネータサーバコンソールからの対応する出力を示します。

  EboCacheLog|5|11/11/03|15:32:11:592|<Receive notification> from 
  [ServerID: <clone1:c373e9f8cc736a65b1c7444553544200> AppID: <c373e9f8cc46d5b9b9d4444553544200>]
  message cached content with [key: <PacPortletDetails.html> from cache holder: <
  testCluster.PageCacheHolder>] has been removed [state: 112].

 
Top of section

リモートキャッシュコーディネータの管理

EbiCacheManager.getRemoteCoordinatorAdmin()を呼び出すことによって、キャッシュマネージャのEbiRemoteCoordinatorAdminオブジェクトが取得できます。 このオブジェクトによって、アプリケーションサーバインスタンスからキャッシュコーディネータを管理できます。 たとえば、CacheCoordinatorに現在接続されている登録済みのサーバインスタンスのリストが取得できます。 サーブレットまたはポートレットを実装して、リモート管理を行うこともできます。

For more information    詳細については、『API参照』のEbiRemoteCoordinatorAdminを参照してください。




Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...