JMX を使用したリポジトリ キャッシュの管理

JMX によってエクスポーズされたリポジトリ キャッシュを使用すると、キャッシュの状態のチェック、特定のキャッシュ済みリソースの全消去または削除、キャッシュ設定の変更、キャッシュ内のリソースの監視を行うことができます。

リポジトリ キャッシュは JXM によってエクスポーズされているので、JXM の管理または監視用の任意のツールを使用できます。Spectrum には、JMX コンソールと JConsole という 2 つのツールが付属しています。

注: Spectrum JMX コンソールの使用時には、listCacheResourceNames 操作がサポートされません。キャッシュからリストを表示するには、JConsole を使用します。

Spectrum JMX コンソールを使用したリポジトリ キャッシュへのアクセス方法:

  1. http://<サーバー>:<ポート>/jmx-console/ という URL を使用して JMX コンソールを開きます。
  2. Domain: Spatial セクションで、Spatial:name=Cache,type=Remote Component を選択します。
  3. 管理対象のキャッシュの設定は、以下のように変更できます。

JConsole を使用したリポジトリ キャッシュへのアクセス方法:

  1. 次のパラメータを <Spectruminstall>\server\bin\wrapper の下にある wrapper.conf ファイルの行wrapper.java.additional.6= に追加します (まだこの操作を行っていない場合)。
    -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9127 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 
  2. ‎サーバーを再起動します。
  3. <spectrum>/java64/bin/ に移動し、jconsole.exe を実行します。
  4. [MBeans] タブをクリックします。
  5. [空間] > [リモート コンポーネント] > [キャッシュ] を選択します。
  6. [属性] をクリックして、キャッシュ設定および統計を監視します。
  7. [操作] をクリックすると、管理対象のキャッシュの設定を以下のように変更できます。

容量 - 任意の時点でリモート コンポーネントによってキャッシュされるリソースの数です。容量が変更された場合、現在のリソース キャッシュはクリアされ、新しいものが作成されます。この容量に達すると、新しいリソース用の領域を得るためにキャッシュ内の古いリソースが削除されます。他のリソースを使用しているリソース (例: 複数の名前付きテーブルを使用している名前付きマップ) がキャッシュされる場合には、そのリソースと使用されているすべてのリソースの両方がキャッシュされることに注意してください。

有効期限 - ミリ秒単位で指定された有効期限です。キャッシュ ポリシーが 2 (失効時にチェック) に設定されている場合、この値は、アクセスの試行対象となったリソースの更新の有無をチェックする間隔として使用されます。

更新チェック ポリシー - キャッシュ内のリソースをリポジトリ内の最新バージョンによって更新する必要があるかどうかをチェックする方法です。ポリシーの値は 0、1、または 2 です。ここで、0=チェックしない、 1=常にチェックする、2=失効時にチェック、です。リソース キャッシュをチェックしないとは、リソース更新の有無のチェックを行わないことを意味します。キャッシュされたリソースは、リポジトリ内で変更された場合や、キャッシュを変更する必要がある場合には、JMX によって手動で削除できます。リソース キャッシュを常にチェックするとは、キャッシュにあるリソースが必要とされるたびに、キャッシュされているそのリソースがリポジトリ内にあるものと同じかどうかのチェックを行うことを意味します。リソースが変更された場合は、新しいリソースがキャッシュ内にロードされます。失効時にチェックでは、前回のチェックからの有効期限が切れた場合にのみ、キャッシュ内のリソースの更新の有無がチェックされます。有効期限の値は、有効期限プロパティで定義されています。この値はミリ秒単位です。

リソースの削除 - 指定のリソースをキャッシュから削除する場合に使用します。キャッシュから削除するリポジトリのディレクトリ構造を、ルートを起点として入力します。通常、ポリシーを「チェックしない」に設定していて、リポジトリ内のリソースを更新する場合に使用します。こうすることで、古いリソース定義をキャッシュから削除できるので、次にそのリソースにアクセスすると、キャッシュ内のリソースが新しい定義を使用して更新されます。パスの最後にワイルドカード文字 * を使用すると、ディレクトリまたはサブディレクトリ内のすべてのリソースを削除できます。例えば、samples ディレクトリ内にあるすべてのリソースを削除する場合は、/samples/* と入力します。

キャッシュのクリア - キャッシュ全体をクリアする場合に使用します。監視されている統計内にあるすべてのカウント値もリセットされます。

キャッシュ リソース名の一覧表示 - キャッシュ内のすべてのリソース パスを取得する場合に使用します。JMX を使用してリソースをキャッシュから手動で削除する場合は、キャッシュされているすべてのリソースの一覧を最初に表示して、削除するキャッシュ パスの正確な一覧を取得するのが適切な方法です。この一覧を取得するには、JMX ではなく JConsole を使用します。

注: 容量が大きいほど、多くのメモリが使用されます。容量とポリシーはどちらも、具体的な要件に基づいて設定する必要があります。例えば、リポジトリ内のリソースが、いったん作成された後は一度も変更されない場合は、容量を低めの値に設定し、ポリシーを「チェックしない」に設定できます。