特殊な管理 > サイトメンテナンス > Java Management Extensions (JMX) の使用 > リモート JMX 監視
  
リモート JMX 監視
Windchill のデフォルト設定を使用した場合、サーバー側プロセスは、同じマシンおよびユーザーアカウントから要求された JMX 接続のみを許可します。
* 
この "ローカル接続" 機能は、IBM JVM では使用できません。IBM JVM を使用して Tomcat またはサーバーマネージャに接続するには、リモート JMX 接続を設定する必要があります。また、通常、Windows サービスは異なるユーザーアカウントで実行されています。これを変更しないと、Windows サービスとして実行されているプロセスを、ローカル監視機能を使用して監視できません。
この設定をそのまま使用すると、安全で適切な設定がデフォルトとして設定されます。
ほかのマシンとユーザーアカウントから、サーバープロセスを確認したいことがあります。JConsole および VisualVM は、デフォルト設定で許可されているタイプの接続を形成できる JMX コンソールです。
JConsole を使用したリモートマシンの管理
JConsole を使用してリモートマシンを管理する場合、接続するマシン上の特定のサーブレットエンジン、サーバーマネージャ、またはメソッドサーバーのホスト名とポート番号を指定する必要があります。JConsole 接続ウィンドウにある「リモートプロセス」オプションを使用して、この情報を入力します。
また、リモートマシンがリモート管理を受け入れるよう設定する必要があります。リモート管理を受け入れるようにマシンを設定する方法の詳細については、以下のサイトにアクセスしてください。
http://docs.oracle.com/javase/6/docs/technotes/guides/management/agent.html#gdenl
VisualVM を使用したリモートマシンの管理
VisualVM を使用してリモートマシンを管理する場合、接続するマシン上の特定のサーバーマネージャまたはメソッドサーバーのホスト名とポート番号を指定する必要があります。VisualVM の接続ウィンドウにある「File」メニューから「Add JMX Connection」を選択して、この情報を入力します。
また、リモートマシンがリモート管理を受け入れるよう設定する必要があります。リモート管理を受け入れるようマシンを設定する方法の詳細については、以下のサイトにアクセスしてください (JConsole に関する情報は VisualVM にも適用されます)。
http://docs.oracle.com/javase/6/docs/technotes/guides/management/agent.html#gdenl
サーバーマネージャとメソッドサーバーへの JMX 接続の設定
* 
セキュリティで保護されていないので、この設定はテスト目的でのみ使用してください。これらの設定の変更方法および安全性の高い JMX 接続の設定方法については、次の Web サイトにあるマニュアルを参照してください。
このように、メンテナンスに関しては、テクニカルサポートへの問い合わせなどが簡単になるため、このセクションで説明するプロパティを使用することをお勧めします。また、Windchill Configuration Assistant を手動で実行し、SSL ではない認証リモート JMX 接続を設定することもできます。Windchill Configuration Assistant を実行する際、以下のプロンプトに y で応答します。
Do you want to enable authenticated (non-SSL) remote JMX access (y/n)?
メソッドサーバーとサーバーマネージャは、サーバーマネージャでは、複数のメソッドサーバーを起動し、古いメソッドサーバーが応答しなくなると新しいメソッドサーバーを起動する点などが異なります。
メソッドサーバーは、wt.properties 設定の wt.jmx.rmi.minPort および wt.jmx.rmi.maxPort で指定された範囲で最初に使用可能なポートを選択します。
* 
(wt.jmx.rmi.port プロパティを使用して) Windchill メソッドサーバーに 1 つの固定 JMX RMI ポートを割り当てないでください。代わりに、各メソッドサーバーが、wt.jmx.rmi.minPort および wt.jmx.rmi.maxPort で指定されているポート範囲から使用可能なポートを取得できるようにします。
指定されたメソッドサーバーに直接接続するために必要な情報は、サーバーマネージャレベルで JMX MBean 属性を使用して公開されます。xconfmanager ユーティリティを使用して、以下のプロパティを設定します (この例は複数行で表示されていますが、xconfmanager コマンドは 1 行で入力してください)。
xconfmanager -s wt.manager.cmd.common.jmx.args="-Dcom.sun.management.jmxremote
-Djmx.remote.protocol.provider.pkgs=wt.jmx.remote.protocol
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.ssl.need.client.auth=false"
-s wt.manager.cmd.ServerManager.jmx.args="-Dwt.jmx.rmi.port=<open_port>"
-t wt.properties -p
<open_port> には、開いている TCP/IP ポートの番号を指定します。これは、リモート接続時に指定するポート番号です。
* 
xconfmanager コマンドに -p オプションを含めて、これらの変更を必ず反映させてください。
* 
これらの設定は JMX Properties MBean を使用して追加できますが、サーバーの再起動も必要です。MBean を使用したプロパティ値の修正を参照してください。
ファイアウォールが存在する場合のリモート接続
ファイアウォールは通常、RMI をブロックするように設定されています。ただし、RMI は、JDK の "JSR 160" JMX リモート通信に組み込まれているワイヤプロトコルです。JSR 160 によって JMX リモートプロトコルの一般的なアーキテクチャが指定されますが、それ以外のプロトコルは JDK の最新サポートバージョンに含まれていません。
Windchill には、JmxProxyServlet と呼ばれる JMX JSR 160 リモート通信用の特殊な非透過 HTTP(S) プロキシが備わっています。ネットワークアクセスに関して、このプロキシは、Windchill Web アプリケーションへの通常の HTTP(S) アクセスのみを要求します。
この JSR 160 savvy JMX コンソール、およびこのガイドのこれまでのセクションを読んだ結果として確立した JMX RMI 接続を使用するには、以下の手順を実行します。
1. 以下のファイルを、codebase/lib から Java JDK の jre/lib/ext ディレクトリへコピーします。
WtHttpClientAddOns.jar
WtJmxClientConn.jar
そのためには、ブラウザで以下の URL へ移動してこれらのファイルを選択し、Java JDK の jre/lib/ext ディレクトリに保存します。
http(s)://yourHostAndPort/yourWebAppName/lib
2. JMX コンソールで、以下の JSR 160 接続 URL を指定します。
service:jmx:ptchttp://yourHostAndPort/yourWebAppName/servlet/JmxProxyServlet?jmxurl
=service:jmx:rmi://jmxTargetHost/jndi/rmi://jmxTargetHost:jmxTargetPort/jmxrmi
この URL で指定する内容は以下のとおりです。
http - https を使用する場合は https
yourHostAndPort - 使用する Web サーバーのホストとポート。
yourWebAppName - Windchill Web アプリケーションの名前 (Windchill_10 など)。
jmxTargetHost および jmxTargetPort - それぞれ、JMX RMI を使用してプロキシサーブレットが接続するホスト名とポート。
JConsole では、ステップ 2 で必要な URL を指定するには、コマンドラインに入力するか、JConsole 接続ウィンドウの「リモートプロセス」オプションを使用します。
必要な URL の作成プロセスを簡単にするユーティリティが存在します。このユーティリティを使用するには、ステップ 1 で指定した JAR が互いに元の名前で JDK jre/lib/ext ディレクトリに存在する場合、このディレクトリにインストールする必要はありません。
コマンドラインで、以下のコマンドを入力します。
WtJmxClientConn.jar と同じディレクトリから入力する場合:
...java -jar WtJmxClientConn.jar -usage
任意の場所から入力する場合 (WtJmxClientConn.jar がクラスパスにある場合):
...java com.ptc.jmx.client.Main -usage
* 
ヘルプを使用して、コマンドラインまたはユーティリティを入力して JMX サービスの URL を作成し、必要に応じてその URL を使用して JConsole を起動できます。Windows の場合、WtJmxClientConn.jar をダブルクリックするだけで、グラフィックバージョンのユーティリティを起動できます。