Notes クライアント JVM (Java 仮想マシン) の制御下で実行される Java コードをデバッグするには、JPDA (Java Platform Debugger Architecture) をサポートする Eclipse などのデバッガを使用します。JPDA の詳細については、java.sun.com/products/jpda を参照してください。Eclipse と Eclipse デバッガについては、www.eclipse.org を参照してください。Domino サーバー上で実行される Java コードはデバッグできません。
Java コードをデバッグするには、次の手順を実行してください。
Notes クライアントでは、以下のコンテキストでの Java デバッグをサポートしています。それぞれのコンテキストで、独自の JVM が使用されます。各コンテキストでは、一度に 1 ユーザーのみがデバッグできます。
スクリプトライブラリの Java コードは、呼び出し元コードのコンテキストで実行されます。
Notes クライアントで Java デバッグを有効化および無効化するには:
空いていると思われるポート番号を選択します。これには、試行錯誤が必要となることがあります。
Java デバッグは、デフォルトでは無効化されています。
フォアグラウンドまたはバックグラウンドのプリファレンスを変更した場合は、Notes を再起動する必要があります。Web プレビューのプリファレンスを変更した場合は、プレビューを再起動する必要があります。
Java デバッグを有効化するには、[エージェント] プロパティボックスまたは [Web サービス] プロパティボックスの [基本] タブに移動するか、[スクリプトライブラリ] プロパティボックスに移動し、以下をチェックします。
デバッグ情報を含めて Java をコンパイルする
Domino Designer の外部でデバッグする Java をコンパイルする場合は、コンパイル時に -g オプションを指定します。
エージェントまたは Web サービスを変更した場合はその後に、デバッガがアクセスできるファイルにソースコードを書き出してください。
以下の手順は、Eclipse デバッガの使用を前提としています。他のデバッガを使用する場合は、手順を変更する必要があります。
呼び出されなかったソースコードは、デバッグの対象となりません。実行スレッドは参照可能で、変数にもアクセスできますが、ソースコードを参照したり、ブレークポイントを設定したりすることはできません。
デバッガに接続すると、JVM の実行スレッドを参照できるようになります。エージェントのスレッドは、次のように表示されます。
Thread(AgentThread: JavaAgent)(Running)
エージェントのスレッドを一時停止して、スレッドを制御することができます。この時点で、通常のデバッガ機能が利用可能になります (ブレークポイントの設定、ステップ実行、続行、変数値の表示など)。
Java エージェントの実行時間は、デバッガを JVM に接続できるだけの長さであることが必要です。例えば、プロシージャー開始時に、sleep ステートメントでループを挿入する方法で、実行を遅らせることもできます。
Notes とデバッガが別々のコンピュータで実行される場合に、「Failed to connect to remote VM」というエラーが表示されたときは、おそらく指定したポートが別のプロセスで使用されています。別のポート番号を指定し、Notes を再起動してみてください。
ネットワークを介した Java デバッグは、セキュリティで保護されません。デバッグを行わないときは、Java デバッグを無効化した状態で Notes または Web プレビューを再起動してください。