ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Coherenceのマネージメント
12c (12.1.2)
B70745-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

2 JMXを使用したOracle Coherenceの管理

この章では、クラスタ・メンバーでJMX管理を有効にして構成する方法と、Java VisualVMやJConsoleなどのツールを使用してOracle Coherence MBeanにアクセスする方法について説明します。

この章には次の項が含まれます:

2.1 JMX管理の構成

JMX管理は、tangosol-coherence-override.xmlファイルの<management-config要素内で、または起動時に管理用のシステム・プロパティを設定することで構成します。<management-config要素の詳細は、『Oracle Coherenceでのアプリケーションの開発』を参照してください。

この項の内容は次のとおりです。

2.1.1 クラスタ・メンバーでのリモートJMX管理の有効化

リモートJMX管理では、1つ以上のクラスタ・メンバーがそれぞれMBeanサーバーをホスティングできるようにします。このMBeanサーバーは、すべてのクラスタ・メンバーの管理対象オブジェクトの管理を担当しています。これらのクラスタ・メンバーのMBeanサーバーにアクセスすることで、すべてのクラスタ・メンバーの管理情報が表示されます。専用のJMXクラスタ・メンバーを使用するのは一般的な方法です。なぜなら、それによりJMXソフトウェアを1つずつクラスタ・メンバーにロードする必要もなくなり、しかも1つのJMXメンバーに問題が発生してもフォルト・トレランスは維持されるためです。

クラスタ・メンバーに対するリモートJMX管理を有効にするには、<managed-nodes>要素をallまたはremote-onlyに設定します。次に例を示します。

<?xml version='1.0'?>

<coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"
   xsi:schemaLocation="http://xmlns.oracle.com/coherence/
   coherence-operational-config coherence-operational-config.xsd">
   <management-config>
      <managed-nodes system-property="tangosol.coherence.management">all
      </managed-nodes>
   </management-config>
</coherence>

remote-only設定では、リモートMBeanのみを管理するMBeanサーバーが起動されます。all設定では、リモートMBeanおよびローカル(同一JVM上の)MBeanを管理するMBeanサーバーが起動されます。

tangosol.coherence.managementシステム・プロパティによりリモートJMX管理を有効にすることもできます。次に例を示します。

-Dtangosol.coherence.management=all

2.1.2 クラスタ・メンバーでのローカルJMX管理の有効化

ローカルJMX管理では、MBeanサーバーの管理対象がクラスタ・メンバーのローカル(同一JVM上の)MBeanに制約されます。クラスタ・メンバーのMBeanサーバーにアクセスしても、ローカル管理情報しか表示されません。しかし、そのクラスタ・メンバーのMBeanは、リモートJMX管理が有効化されたクラスタ・メンバーによって引き続き管理できます。ローカルJMX管理は一般的に、拡張クライアントまたは一時的なクラスタ・クライアントで使用されます。

クラスタ・メンバーでのローカルJMX管理を有効化するには、<managed-nodes>要素をlocal-onlyに設定します。次に例を示します。

<?xml version='1.0'?>

<coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"
   xsi:schemaLocation="http://xmlns.oracle.com/coherence/
   coherence-operational-config coherence-operational-config.xsd">
   <management-config>
      <managed-nodes system-property="tangosol.coherence.management">local-only
      </managed-nodes>
   </management-config>
</coherence>

tangosol.coherence.managementシステム・プロパティによりローカルJMX管理を有効にすることもできます。次に例を示します。

-Dtangosol.coherence.management=local-only

2.1.3 起動スクリプト使用時のJMX管理の有効化

便宜上の理由により、COHERENCE_HOME/bin/cache-serverおよびCOHERENCE_HOME/bin/coherenceの起動スクリプトには、クラスタ・メンバーでのJMX管理を有効にする-jmx引数が含まれます。次に例を示します。

cache-server -jmx

この引数は、スクリプト内で必要に応じて変更できる管理用のシステム・プロパティを自動的に設定します。デフォルトの設定は、次のようになります。

-Dtangosol.coherence.management=all
-Dtangosol.coherence.management.remote=true

2.1.4 クラスタ・メンバーのリモート管理の停止

デフォルトでは、すべてのクラスタ・メンバーのMBeanで、リモートMBeanサーバーによる管理が許可されています。メンバーのMBeanのリモート管理を制限するには、<allow-remote-management>要素をfalseに設定します。次に例を示します。

<?xml version='1.0'?>

<coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"
   xsi:schemaLocation="http://xmlns.oracle.com/coherence/
   coherence-operational-config coherence-operational-config.xsd">
   <management-config>
      <allow-remote-management
         system-property="tangosol.coherence.management.remote">false
      </allow-remote-management>
   </management-config>
</coherence>

tangosol.coherence.management.remoteシステム・プロパティによりリモート管理を無効にすることもできます。次に例を示します。

-Dtangosol.coherence.management.remote=false

2.1.5 JMX管理の無効化

クラスタ・メンバーでのJMX管理を無効化するには、<managed-nodes>要素をnoneに設定します。次に例を示します。

<?xml version='1.0'?>

<coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"
   xsi:schemaLocation="http://xmlns.oracle.com/coherence/
   coherence-operational-config coherence-operational-config.xsd">
   <management-config>
      <managed-nodes system-property="tangosol.coherence.management">none
      </managed-nodes>
   </management-config>
</coherence>

メンバーのJMX管理を無効にしても、そのメンバーのリモート管理は停止されません。<allow-remote-management>falseに設定する必要があります。次の例では、JMX管理を無効化してメンバーのリモート管理を停止します。

<?xml version='1.0'?>

<coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"
   xsi:schemaLocation="http://xmlns.oracle.com/coherence/
   coherence-operational-config coherence-operational-config.xsd">
   <management-config>
      <managed-nodes system-property="tangosol.coherence.management">none
      </managed-nodes>
      <allow-remote-management
         system-property="tangosol.coherence.management.remote">false
      </allow-remote-management>
   </management-config>
</coherence>

2.1.6 MBeanのフィルタ処理

Oracle Coherence管理フレームワークでは、MBeanをMBeanサーバーに登録する前にそれらのMBeanをフィルタできます。すぐに使用できるMBeanフィルタが提供されており、カスタムのフィルタを必要に応じて作成することもできます。付属のMBeanフィルタ(com.tagosol.net.management.ObjectNameExcludeFilter)は、標準的な正規表現パターンを使用するJMXオブジェクト名に基づいて、MBeanを登録から除外します。すぐに使用できる構成では、このフィルタによっていくつかのプラットフォームMBeanが管理フレームワークに登録されないように除外されます。MBeanフィルタは、<mbean-filter>要素を使用して定義します。

次の例は、すぐに使用できる構成を示しています。

...
<mbean-filter>
   <class-name>com.tangosol.net.management.ObjectNameExcludeFilter</class-name>
   <init-params>
      <init-param>
         <param-type>string</param-type>
         <param-value system-property="tangosol.coherence.management.exclude">
              .*type=Service,name=Management,.*
              .*type=Platform,Domain=java.lang,subType=ClassLoading,.*
              .*type=Platform,Domain=java.lang,subType=Compilation,.*
              .*type=Platform,Domain=java.lang,subType=MemoryManager,.*
              .*type=Platform,Domain=java.lang,subType=Threading,.*
         </param-value>
      </init-param>
   </init-params>
</mbean-filter>
...

管理サービスまたはプラットフォームMBeanを有効化するには、<param-value>要素の名前のリストから対応するオブジェクト名を削除します。特定のMBeanを登録されないように除外するには、そのMBeanオブジェクト名をリストに追加します。

tangosol.coherence.management.excludeシステム・プロパティによりMBeanをフィルタリングすることもできます。次に例を示します。

-Dtangosol.coherence.management.exclude=.*type=Service,name=Management,.*

2.1.7 管理情報のリフレッシュの構成

<refresh-expiry><refresh-policy>および<refresh-timeout>の各要素は、管理情報の待機時間を制御します。次の例では、これらの各設定を構成しています。詳細は、例の後に説明します。

<?xml version='1.0'?>

<coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"
   xsi:schemaLocation="http://xmlns.oracle.com/coherence/
   coherence-operational-config coherence-operational-config.xsd">
   <management-config>
      <refresh-policy
         system-property="tangosol.coherence.management.refresh.policy">
         refresh-ahead</refresh-policy>
      <refresh-expiry
         system-property="tangosol.coherence.management.refresh.expiry">1s
      </refresh-expiry>
      <refresh-timeout
         system-property="tangosol.coherence.management.refresh.timeout">300ms
      </refresh-timeout>
   </management-config>
</coherence>

2.1.7.1 管理情報のリフレッシュ失効の設定

<refresh-expiry>要素は、リモート・メンバーの管理情報をリモートで取得する最小間隔を指定します。この要素の値は、次の形式で指定する必要があります。

(\d)+((.)(\d)+)?[MS|ms|S|s|M|m|H|h|D|d]?

前述の文字は(左から右へ)それぞれ、次の時間間隔の単位を示しています。

  • MSまたはms(ミリ秒)

  • Sまたはs(秒)

  • Mまたはm(分)

  • Hまたはh(時)

  • Dまたはd(日数)

値に単位が含まれていない場合は、ミリ秒が単位として適用されます。デフォルト値は1sです。

tangosol.coherence.management.refresh.expiryシステム・プロパティにより失効を設定することもできます。次に例を示します。

-Dtangosol.coherence.management.refresh.expiry=2s

2.1.7.2 管理情報のリフレッシュ・ポリシーの設定

<refresh-policy>要素は、リモート管理情報のリフレッシュ方法を指定します。それぞれのポリシーでは、MBeanの使用パターンに基づいて待機時間を短縮する様々なリフレッシュ・アルゴリズムが使用されます。表2-1は、各ポリシーを説明しています。

表2-1 リフレッシュ・ポリシー

設定 説明

refresh-ahead(デフォルト)

失効遅延が経過した後、リクエストされる前に、MBeanを前の使用パターンに基づいてリフレッシュします。この設定は、ネットワーク消費量を多少増加させることで管理情報の待機時間を低減します。MBeanが繰返しまたはプログラム的にアクセスされる場合に最適です。

refresh-behind

データにアクセスした後、それぞれのMBeanをリフレッシュします。この方法では最適なレスポンス・タイムが確保されます。ただし返される情報は、最後のリフレッシュ時刻からのオフセットになります。

refresh-expired

MBeanがアクセスされ、最後のリフレッシュから失効遅延が経過すると、それぞれのMBeanをリモート・メンバーからリフレッシュします。この設定は、MBeanがランダムなパターンでアクセスされる場合に最適です。


tangosol.coherence.management.refresh.policyシステム・プロパティによりポリシーを設定することもできます。次に例を示します。

-Dtangosol.coherence.management.refresh.policy=refresh-expired

2.1.7.3 管理情報のリフレッシュ・タイムアウトの設定

<refresh-timeout>要素は、MBean情報のリフレッシュ時に管理メンバーがリモート・メンバーからのレスポンスを待つ期間を指定します。この値は<refresh-expiry>値より小さくする必要があります。この要素の値は、次の形式で指定する必要があります。

(\d)+((.)(\d)+)?[MS|ms|S|s|M|m|H|h|D|d]?

前述の文字は(左から右へ)それぞれ、次の時間間隔の単位を示しています。

  • MSまたはms(ミリ秒)

  • Sまたはs(秒)

  • Mまたはm(分)

  • Hまたはh(時)

  • Dまたはd(日数)

値に単位が含まれていない場合は、ミリ秒が単位として適用されます。デフォルト値は250msです。

tangosol.coherence.management.refresh.timeoutシステム・プロパティによりタイムアウトを設定することもできます。次に例を示します。

-Dtangosol.coherence.management.refresh.timeout=300ms

2.1.8 既存のMBeanサーバーの使用

Oracle Coherence管理フレームワークでは、既存のMBeanサーバーを使用してOracle Coherence MBeanを公開できます。MBeanサーバーは、クラスタ・メンバーと同一のJVMプロセス内にある必要があります。また、そのクラスタ・メンバーでは、JMX管理が有効化されている必要があります。

既存のMBeanサーバーを使用するには、<default-domain-name>要素を使用してMBeanサーバーのドメイン名を入力します。入力したドメイン名のMBeanサーバーが見つからないと、MBean登録に失敗します。次の例では、MyDomainNameドメイン名の既存のMBeanサーバーを指定します。

<?xml version='1.0'?>

<coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"
   xsi:schemaLocation="http://xmlns.oracle.com/coherence/
   coherence-operational-config coherence-operational-config.xsd">
   <management-config>
      <managed-nodes system-property="tangosol.coherence.management">all
      </managed-nodes>
      <default-domain-name>MyDomainName</default-domain-name>
   </management-config>
</coherence>

com.tangosol.net.management.MBeanServerFinderインタフェースを実装して、Oracle Coherence管理フレームワークによるMBeanサーバーの検出方法をカスタマイズします。<server-factory>要素内の<class-name>要素を使用して、実装クラスの完全修飾された名前を追加します。また、<init-params>要素を使用して、初期化パラメータを含めます。<default-domain-name>要素を使用して、クラスをインスタンス化する際に使用する既存のMBeanサーバー・ドメイン名を指定します。

次の例では、MyMBeanServerFinder実装クラスを指定して、その実装クラスにMyDomainNameドメイン名を渡します。

<?xml version='1.0'?>

<coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"
   xsi:schemaLocation="http://xmlns.oracle.com/coherence/
   coherence-operational-config coherence-operational-config.xsd">
   <management-config>
      <managed-nodes system-property="tangosol.coherence.management">all
      </managed-nodes>
      <default-domain-name>MyDomainName</default-domain-name>
      <server-factory>
         <class-name
            system-property="tangosol.coherence.management.serverfactory">
               package.MyMBeanServerFinder</class-name>
         <init-params>
            <init-param>
               <param-type>int</param-type>
               <param-value>0</param-value>
            </init-param>
         </init-params>
     </server-factory>
   </management-config>
</coherence>

tangosol.coherence.management.serverfactoryシステム・プロパティにより実装クラスを指定することもできます。次に例を示します。

-Dtangosol.coherence.management.serverfactory=package.MyMBeanServerFinder

2.2 Oracle Coherence MBeanへのアクセス

Oracle Coherence MBeanにアクセスする前に、JMX管理をクラスタ・メンバーで有効にする必要があります。「JMX管理の構成」を参照してください。この項の例では、Oracle Coherence起動スクリプトの-jmx引数を使用してJMX管理を有効化します。

この項の内容は次のとおりです。

2.2.1 Java VisualVMを使用したMBeanへのローカルでのアクセス

Java VisualVMは、JDK (JDK_HOME\bin\jvisualvm)に含まれる管理ユーティリティで、MBeanの表示およびMBeanとのやり取りの機能が提供されます。MBean機能がJava VisualVMに対するプラグインとして提供されています。このプラグインをJava VisualVM Plugins Centerからインストールする必要があります。ツールから、「Tools」 -> 「Plugins」オプションを使用してVisualVM-MBeansプラグインをインストールします。

Java VisualVMユーティリティを使用してMBeanにローカルでアクセスする手順は次のとおりです。

  1. COHERENCE_HOME\bin\cache-serverスクリプトを使用してキャッシュ・サーバーを起動し、-jmx引数を指定してそのメンバーに対する管理を有効化します。次に例を示します。

    COHERENCE_HOME\bin\cache-server -jmx
    
  2. JDK_HOME\bin\jvisualvmを起動します。「Java VisualVM」ウィンドウが表示されます。

  3. 「Applications」ツリーで、「Local」をクリックして展開し、クラスタ・メンバーのプロセスをダブルクリックします。プロセス情報は、このウィンドウの右側にあるプロセス・タブに表示されます。

  4. 選択したプロセス・タブで「MBeans」タブをクリックし、Coherenceノードを展開してMBeanにアクセスします。

    jvisualvm.gifの説明が続きます
    図jvisualvm.gifの説明

2.2.2 JConsoleユーティリティを使用したMBeanへのローカルでのアクセス

JConsoleは、JDK (JDK_HOME\bin\jconsole)に含まれる管理ユーティリティで、MBeanの表示およびMBeanとのやり取りの機能が提供されます。

JConsoleユーティリティを使用してMBeanにローカルでアクセスする手順は次のとおりです。

  1. COHERENCE_HOME\bin\cache-serverスクリプトを使用してキャッシュ・サーバーを起動し、-jmx引数を指定してそのメンバーに対する管理を有効化します。次に例を示します。

    COHERENCE_HOME\bin\cache-server -jmx
    
  2. JDK_HOME\bin\jconsoleを起動します。Java Monitoring & Management Consoleウィンドウが表示され、「JConsole: 新規接続」ダイアログ・ボックスが表示されます。

  3. 「JConsole: 新規接続」ダイアログ・ボックスで「ローカル・プロセス:」オプションを選択し、クラスタ・メンバーのプロセスを選択します。次に例を示します。

    new_connection.gifの説明が続きます
    図new_connection.gifの説明

  4. 「接続」をクリックします。

  5. Java Monitoring & Management Consoleウィンドウで「MBeans」タブを選択し、Coherenceノードを展開してMBeanにアクセスします。

    example-jmx-jconsole.gifの説明が続きます
    図example-jmx-jconsole.gifの説明

2.2.3 Oracle Coherence MBeanへのリモート・アクセスの許可

リモートJMX管理では、リモート・コンピュータ上のJMXクライアントでOracle Coherence MBeanにアクセスすることが可能です。システム・プロパティはリモート・アクセスを構成するためのもので、多くの場合、MBeanサーバーをホスティングするJVMを起動する際に設定されます。つまり、そのクラスタのMBeanサーバーをホスティングするクラスタ・メンバーを起動する際にシステム・プロパティは設定されます。次の記述では、最低限の構成要件のみが説明されています。JMX管理の構成方法の詳細は、JMXドキュメントを参照してください。

http://download.oracle.com/javase/7/docs/technotes/guides/management/agent.html

セキュリティ保護を有効化せずにOracle Coherence MBeanへのリモート・アクセスを許可するには、次のシステム・プロパティをクラスタ・メンバーの起動時に設定します。システム・プロパティを簡単に使用できるように、Oracle Coherence起動スクリプトのシステム・プロパティが-jmx引数の使用時に自動的に設定されるようにしておきます。

-Dcom.sun.management.jmxremote.port=port
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

com.sun.management.jmxremote.port値を、クラスタ・メンバーの使用可能なポートのいずれかに設定します。JMXクライアント(例: JConsole)のホストとポートを、リモートMBeanサーバーへ接続するときに指定します。

場合によっては(仮想環境またはネットワーク・アドレス変換を使用する場合)、コンピュータのホスト名が誤って識別されたり、JMXクライアントに送信するRMIスタブでデフォルト値(127.0.0.1)が返されたりすることがあります。その結果、JMXクライアントによるMBeanサーバーへの接続が失敗します。RMIスタブに正しいIPアドレスを含めるには、java.rmi.server.hostnameシステム・プロパティを使用してホストのIPアドレスを明示的に設定します。次に例を示します。

-Djava.rmi.server.hostname=IP_Address

RMIプロパティの詳細は、次のRMIドキュメントを参照してください。

http://download.oracle.com/javase/7/docs/technotes/guides/rmi/javarmiproperties.html

2.2.4 HTMLアダプタ・アプリケーションを使用したMBeanへのアクセス

HTMLアダプタWebアプリケーションでは、キャッシュ・クライアントのOracle Coherence MBeanへのリモート・アクセスが可能で、JMXリファレンス実装の一部として同梱されているHTMLアダプタ(HtmlAdaptorServer)を使用します。このアダプタでは、jmxri.jarjmxtools.jarライブラリを両方ともクラスパスに含める必要があります。JMXリファレンス実装は、次のサイトから入手できます。

http://www.oracle.com/technetwork/java/javase/tech/download-jsp-141676.html

HTMLアダプタを使用してMBeanにアクセスする手順は次のとおりです。

  1. COHERENCE_HOME\bin\coherenceスクリプトを編集して、クラスパスにjmxri.jarjmxtools.jarを含めます。たとえば、Windowsの場合は次のようにします。

    -cp "jmxri-1.2.1.jar;jmxtools-1.2.1.jar;%coherence_home%\lib\coherence.jar"
    
  2. スクリプトを使用してキャッシュ・ファクトリ・インスタンスを起動し、-jmx引数を指定してメンバー管理を有効化します。次に例を示します。

    COHERENCE_HOME\bin\coherence -jmx
    
  3. キャッシュ・ファクトリ・インスタンスが起動したら、コマンド・プロンプトでjmx 8082と入力します。これにより、クラスタ・メンバーのポート8082でHTTPアダプタが起動します。

  4. Webブラウザで、アダプタにアクセスします。次の画面で示すように、ホスト名とポート8082からなるアドレスを使用します。

    example-jmx-httpadapter.gifの説明が続きます
    図example-jmx-httpadapter.gifの説明

2.2.5 Oracle Coherence MBeanコネクタの設定

Oracle Coherenceには、クラスタ・メンバーを専用のMBeanサーバー・ホストとして起動するためのプログラムが用意されています。このプログラムでは、Oracle Coherence MBeanへのリモート・アクセスがJMXリモートAPIのRMI、またはJMXリファレンス実装で提供されるHTTPサーバーを使用して実現されます。必要に応じてRMIとHTTPのポート設定を構成して、ファイアウォールを介したアクセスを許可します。次のコマンドを使用して、サーバーを起動します。

java -Dtangosol.coherence.management=all 
     -Dcom.sun.management.jmxremote.ssl=false 
     -Dcom.sun.management.jmxremote.authenticate=false 
     -cp coherence.jar;jmxri.jar;jmxtools.jar 
     com.tangosol.net.management.MBeanConnector [-http -rmi]

JMX RMIを使用したアクセスを許可するには、-rmi引数を含めます。HTTPおよびWebブラウザを使用したアクセスを許可するには、-http引数を含めます。これらの引数を両方とも含めることはできますが、メンバーを起動するには少なくと1つの引数を指定する必要があります。

表2-2は、JMX RMI構成のオプションのプロパティについて説明しています。

表2-2 JMX RMIの構成に使用できるオプションのプロパティ

プロパティ 説明

tangosol.coherence.management.remote.host

JMXサーバーがバインドされているホスト。デフォルト値はlocalhostです。Linuxでは、この値をホスト名またはIPアドレスに変更する必要がある場合があります。

tangosol.coherence.management.remote.registryport

JMX RMIのレジストリに使用するポート。デフォルト値は9000です。

tangosol.coherence.management.remote.connectionport

JMX RMI接続に使用するポート。デフォルト値は3000です。


表2-3は、HTTPの構成に使用できるオプションのプロパティについて説明しています。

表2-3 HTTPの構成に使用できるオプションのプロパティ

プロパティ 説明

tangosol.coherence.management.remote.httpport

HTTPの接続に使用するポート。デフォルト値は8888です。


JConsoleを使用してデフォルト設定でMBeanサーバーに接続するには、次のコマンドを使用します。

jconsole service:jmx:rmi://localhost:3000/jndi/rmi://localhost:9000/server

HTTPを使用してデフォルト設定でMBeanサーバーに接続するには、次のURLにアクセスします。

http://localhost:8888

注意:

認証およびSecure Socket Layer (SSL)を使用したセキュアなアクセスを設定するには、次のJMXエージェントのドキュメントを参照してください。

http://download.oracle.com/javase/7/docs/technotes/guides/management/agent.html