HCL Domino 11 で Java アプリケーションをリモートでデバッグする

2020/11/11 - 読み終える時間: 3 分

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 エージェントをリモートでデバッグする方法を探している開発者に役立つ内容です。

  • Windows Server 2016 / 2019 上の Domino V11 以降
  • HCL Domino Console
  • Notes、Designer、Administrator クライアント V11以上
  • デバッグ対象の Java エージェント。
  • Java エージェントを実行する任意の Web ブラウザー。

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!

このブログについて

HCL Japan の Software 部門の複数担当者で HCL Software 全般について記しています。