プログラミングの概要とユーザーインターフェース


Java コードをリモートでデバッグする
Lotus Notes クライアント JVM (Java 仮想マシン) の制御下で実行される Java コードをデバッグするには、JPDA (Java Platform Debugger Architecture) をサポートする Eclipse などのデバッガを使用します。JPDA について詳しくは、java.sun.com/products/jpda を参照してください。Eclipse および Eclipse デバッガについては、www.eclipse.org を参照してください。Lotus Domino サーバー上で実行される Java コードはデバッグできません。

Java コードをデバッグするには、次の手順を実行してください。

1. Lotus Notes クライアントで Java デバッグを有効化します

2. エージェント、Web サービス、またはスクリプトライブラリで Java デバッグを有効化します

3. デバッガを JVM に接続します

メモ Java エージェントのデバッグは Release 7 で新しく追加された機能です。

注意 Java デバッグはセキュリティで保護されず、また、パフォーマンスを低下させます。必要時以外は、Java デバッグを無効化してください。

Lotus Notes クライアントで Java デバッグを有効化する

Lotus Notes クライアントでは、以下のコンテキストでの Java デバッグをサポートしています。それぞれのコンテキストで、独自の JVM が使用されます。各コンテキストでは、一度に 1 ユーザーのみがデバッグできます。


スクリプトライブラリの Java コードは、呼び出し元コードのコンテキストで実行されます。

Lotus Notes クライアントで Java デバッグを有効化および無効化するには:

1. [ツール] - [Java デバッグプリファレンス] を選択します。[Java デバッグプリファレンス] ダイアログボックスが表示されます。

2. フォアグラウンドデバッグを有効化するには、[クライアント エージェント/アプレット] を選択し、Lotus Notes コンピュータとデバッガコンピュータを接続するポート番号を指定します。無効化するには、選択を解除します。

3. バックグラウンドデバッグを有効化するには、[ローカルでスケジュールしたエージェント] を選択し、Lotus Notes コンピュータとデバッガコンピュータを接続するポート番号を指定します。無効化するには、選択を解除します。

4. Web プレビューデバッグを有効化するには、[Http プリビュー] を選択し、Lotus Notes コンピュータとデバッガコンピュータを接続するポート番号を指定します。無効化するには、選択を解除します。

空いていると思われるポート番号を選択します。これには、試行錯誤が必要となることがあります。

Java デバッグは、デフォルトでは無効化されています。

フォアグラウンドまたはバックグラウンドのプリファレンスを変更した場合は、Lotus Notes を再起動する必要があります。Web プレビューのプリファレンスを変更した場合は、プレビューを再起動する必要があります。

エージェント、Web サービス、またはスクリプトライブラリで Java デバッグを有効化する

Java デバッグを有効化するには、[エージェント] プロパティボックスまたは [Web サービス] プロパティボックスの [基本] タブに移動するか、[スクリプトライブラリ] プロパティボックスに移動し、以下をチェックします。


Lotus Domino Designer の外部でデバッグする Java を コンパイルする場合は、コンパイル時に -g オプションを指定します。

エージェントまたは Web サービスを変更した場合はその後に、デバッガがアクセスできるファイルにソースコードを書き出してください。

デバッガを JVM に接続する

以下の手順は、Eclipse デバッガの使用を前提としています。他のデバッガを使用する場合は、手順を変更する必要があります。

1. デバッグ対象のエージェントまたは Web サービスが含まれている Lotus Notes クライアントを、Java デバッグを有効化して起動します。

2. デバッガを開始します。

3. Java プロジェクトを作成し、Java パースペクティブに切り替えます。たとえば、[ファイル] - [新規] - [プロジェクト] を選択し、[プロジェクト] ウィンドウで [Java] を選択します。次に、プロジェクトの名前を入力して [完了] を選択し、Java パースペクティブに切り替えます。または、プロジェクトがすでに存在する場合は、そのプロジェクトを開きます。

4. ソース Java ファイルを呼び出します。たとえば、左側のペインでプロジェクトフォルダを右クリックし、[呼び出し] を選択します。次に、ソースファイルを参照して選択し、それらを呼び出します。


5. Lotus Notes で、デバッグするエージェントまたは Web サービスを開始します。

6. Eclipse で、デバッガを Lotus Notes JVM に接続します。たとえば、[実行] - [デバッグ] を選択し、デバッグ設定の名前を入力します。次に [接続] タブを選択し、プロジェクトを選択し、Lotus Notes コンピュータのホスト名またはアドレスを入力し、Lotus Notes クライアントの Java デバッグポート番号を入力します。さらに、(初回または設定を変更した場合のみ) [適用] を選択し、[デバッグ] を選択します。Lotus Notes クライアントと Eclipse が同じコンピュータで実行される場合のホストアドレスは、127.0.0.1 です。

デバッガに接続すると、JVM の実行スレッドを参照できるようになります。エージェントのスレッドは、次のように表示されます。


エージェントのスレッドを一時停止して、スレッドを制御することができます。この時点で、通常のデバッガ機能が利用可能になります (ブレークポイントの設定、ステップ実行、続行、変数値の表示など)。

Java エージェントの実行時間は、デバッガを JVM に接続できるだけの長さであることが必要です。たとえば、プロシージャー開始時に、sleep ステートメントでループを挿入する方法で、実行を遅らせることもできます。

Lotus Notes とデバッガが別々のコンピュータで実行される場合に、「Failed to connect to remote VM」というエラーが表示されたときは、おそらく指定したポートが別のプロセスで使用されています。別のポート番号を指定し、Lotus Notes を再起動してみてください。

セキュリティに関する注意点

ネットワークを介した Java デバッグは、セキュリティで保護されません。デバッグを行わないときは、Java デバッグを無効化した状態で Lotus Notes または Web プレビューを再起動してください。