Remotely Debugging Java Applications with Domino 11 の翻訳版です。
HCL Domino 11 で Java アプリケーションをリモートでデバッグする
2020年11月5日
著者: Abhaysingh Shirke / HCL Notes/Domino Technical Support Team
V9 または V110のDomino をお使いの場合、以下のサーバー ini を使用して IBM JVM 上で Java エージェントをリモートでデバッグし、Designer クライアントからデバッグ設定でポート 8000 を設定することに慣れているかもしれません。
JavaEnableDebug=1
JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000
これは Domino V10 までは動作しますが、Domino V11 では動作しません。 実際、そうするとクラッシュします! この記事は、Domino V11 上で Java エージェントをリモートでデバッグする方法を探している開発者に役立つ内容です。
Domino V11 は OpenJDK を使用しています。上記の ini を有効にすると、両方の JVM が同じポート (8000) にバインドしようとし、このポートにバインドしようとする 2番目のプロセスが失敗してクラッシュします。この問題を克服するには、デバッグから 8000 番ポートを削除して、他のランダムなポートにアタッチします。
まず、以下の ini をサーバの notes.ini に追加する必要があります。
JavaEnableDebug=1
JavaDebugOptions=transport=dt_socket,server=y,suspend=n
以前のバージョンの Domino で設定されていた ini と比較して、address=8000 を省略してデバッグを 8000 番ポートにバインドしていないことに注意してください。
その後、JVM はランダムなポートを選択します。ランダムなポート番号を知るには、http を終了してロードするか、Web ブラウザーから Java エージェントを実行し、HCL Domino コンソールプログラムからコンソールを確認してください。これらの ini を追加した後、http タスクを再起動する必要があります。
このポート番号は、次のステップで必要になるので、どこかにメモしておいてください。(管理者クライアントのサーバーコンソールにはポート番号の情報は表示されません)
このポート番号を使って、Designer クライアントから Debug にバインドします。ツールメニュー > デバッグサーバーサイド JavaScript > デバッグ設定の管理に進みます。
Debug Configuration(デバッグ設定)ウィンドウが表示されるはずです。ここでは、前のステップで HCL Domino コンソールからメモしたポート番号を指定し、Debug を選択する必要があります。
ステータス・バーには、指定したポート番号でデバッグが接続されたことを確認するメッセージが表示されます。
これで、デバッグ設定の準備が整い、Java エージェントをデバッグする準備が整いました。同じデバッグを行うには、Java コードにブレークポイントを設定する必要があります。あなたは、複数のブレークポイントを設定することができます。
コードにブレークポイントを設定したら、Web ブラウザーからエージェントを実行します。Designerクライアント上に確認ウィンドウが表示され、デバッグパースペクティブウィンドウを開くことができるはずです。「はい」を選択してください。
デザイナーのパースペクティブが、デバッグ・スタック、変数、ブレークポイント管理を表示するビューを含むデバッグ・パースペクティブに変わります。
この時点で、通常の Eclipse デバッガの機能(ブレークポイントの管理、ステップ、継続、変数値の表示など)が利用できるようになります。
スケジュールされた Java エージェント (AMGR) をデバッグするためのステップは変わりません。エージェントがスケジュールされるまで待つのではなく、サーバコンソールから "Tell amgr run" コマンドを使ってエージェントを実行してください。Tell amgr run" コマンドを使用して Java エージェントを実行して、HCL Domino コンソールプログラムからポート番号を取得し、先ほどの手順で行ったようにデバッグ設定でポート番号を設定します。
これで、Domino V11 上で Java エージェントをリモートでデバッグする方法の手順は完了です。我々は、あなたがこの記事を読んで楽しんで、あなたはそれが役に立つことを見つけている願っています。
Happy coding!