For Domino customers on v9 or 10, you might be familiar with debugging a Java agent remotely on IBM JVM using the following server ini’s and set Port 8000 in Debug Configuration from the Designer client:

JavaEnableDebug=1
JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000 

This will work up to Domino v10 but not on Domino v11. In fact, doing so will cause it to crash! This article is going to help developers looking for a way to debug Java agents remotely on Domino v11. The pre-requisites are: 

  1. Domino v11 or above on Windows Server 2016 / 2019.
  2. HCL Domino Console.
  3. Notes, Designer and Administrator Client v11 or above.
  4. Java agent to be debugged.
  5. Any Web Browser to run Java agent. 

Domino v11 uses OpenJDK. With the above ini’s enabled, both the JVMs would attempt to bind to same port (8000) and the second process that attempts to bind to this port would fail and crash. To overcome this problem, the idea is to remove the Port 8000 from the Debug and attach it to some other random Port. 

First, you will need to add the below ini’s to the server’s notes.ini.  

JavaEnableDebug=1 
JavaDebugOptions=transport=dt_socket,server=y,suspend=n 

Note that we are not binding the Debug to Port 8000 by omitting address=8000, as compared to ini which was set on earlier version of Domino. 

The JVM will then pick a random port. To know the random Port number, simply quit and load http or run your Java agent from web browser and check the console from HCL Domino Console Program. You will need to restart http task after adding those ini’s to make it work. 

Note down this Port number somewhere as you would need it in next step. (The server console in the Administrator Client doesn’t show the Port number information.)

With your Port number, you are going to bind to the Debug from the Designer client. Go to Tools menu > Debug Server-side Javascript > Manage Debug Configuration

You should land on the Debug Configuration window. Here you need to mention the Port number which you noted down from the HCL Domino Console in the earlier step and then select Debug. 

You should see this message in Status bar which confirms Debug has connected on the Port number you mentioned.

You are now ready with the Debug configuration and set to debug your Java agent. You’ll need to set the breakpoints in your Java code to debug the same. You can set multiple breakpoints. 

Once you have set the breakpoints in your code, run the agent from the web browser. You should see a Confirmation window on Designer client to open Debug perspective window. Select Yes. 

The Designer perspective will change to Debug perspective which contains views for displaying the debug stack, variables and breakpoint management. 

At this point, the usual Eclipse debugger features will become available (managing breakpoints, stepping, continuing, viewing variable values, etc). 

The steps to debug a scheduled Java agent (AMGR) will remain the same. Instead of waiting until the agent is scheduled, run the agent from server console using “Tell amgr run” command. Get the Port number from HCL Domino Console Program by running Java agent using “Tell amgr run” command and then set the Port number in Debug configuration as we did in the earlier steps.  

This completes the steps on how you can debug Java agent remotely on Domino v11. We hope you enjoyed reading this article and you have find it helpful.

Happy coding 🙂 

 

 

Comment wrap
Further Reading
article-img
Digital Solutions | August 23, 2021
Introducing Domino v12.0.1 and HTMO 3.0.3 Beta Program!
After the successful launch of HCL Domino v12.0 in June 2021, we are approaching the next milestone: We’re happy to announce two new beta programs at once, HCL Domino 12.0.1 and HTMO 3.0.3 have both launched a Beta Program today! You are invited to join the beta program to test our latest release and provide feedback to development teams.   We’re calling on our community to share open, effective, and thoughtful review and testing of our software product. Your input is essential to how we develop our products, and we will continue to listen to you every step along our roadmap.  What you can expect from this first beta of Domino v12.0.1: HCL Notes Client Domino Online Meeting Integration The Notes Client 12.0.1 is providing native integration of online meeting platforms like Zoom, Webex, GoToMeeting, Teams and of course Sametime Meetings. So, from within the Notes calendar users can now more easily schedule online meetings on their preferred platform without having to install a plug-in. Improved Workspace Design with High Resolution Icons The new Notes client is finally allowing to use high resolution icons for your databases, which makes a big difference to the look and feel of your workspace! No need to stick to small and old style 32x32 pixel database icons anymore. We have already updated our standard templates with new icons, will you update yours? Advanced Properties Box You have asked for it, we have delivered: an all-new and resizable document property box: Thanks to Panagenda, the new "advanced properties" box allows to search for field names or values, it also provides the requested ability to copy to clipboard or export to a CSV file: What's new in Notes v12.0.1? https://help.hcltechsw.com/notes/beta/12.0.1/whats_new_01.html HCL Domino Designer We have already provided a 64Bit Notes client (in beta as of now), and based on your request are now providing a 64Bit Domino Designer client. Also, Domino Designer v12.0.1 provides the ability to include high quality icons for rendering and enables developers to optimize the database full...
article-img
Digital Solutions | August 18, 2021
New Tech Updates for HCL Domino, Notes, Traveler, Verse, and Connections
While you may have been on a summer vacation, we at HCL have been busy improving our products! Here is a small overview of what happened in the last couple of weeks and what you can expect soon from your most favorite collaboration platform.  Group 3 Language Translations for Notes and Domino 11.0.1  Good news for many of our customers: HCL Notes 11.0.1 is now available in more languages.   You asked for it (DOMINO-I-831 and NTS-I-842) - In addition to the 16 languages the Notes client was already providing, we are delivering the following language translations:  Danish  Finnish  Norwegian Catalan Hebrew Hungarian Slovenian Thai Turkish  Install kits for the HCL Notes Standard and Basic Client V11.0.1 in those languages can be found at our License and Download Portal under the Notes/Domino version 11.0.1.   Of course, we are also providing the Multilingual User Interface (MUI) kit for those languages, as well as the Install Shield Tuner files to customize your installation.  Group 3 language translations for the Notes Client v12 are being worked on. Level up for our Domino Rest API  In June, we started the beta program for our new Domino Rest API. Now in August, it’s time for the next iteration. Shifting gears to Beta 2 will introduce several improvements customers were asking for:  ODATA support was added for reading/writing from/to Domino, which is especially of interest for e.g., Salesforce customers who want to store data in Domino A new Domino server add-in task is provided to start/stop/reload the Domino Rest APIs and show its status from the Domino server console An installer is now allowing to install the Domino Rest APIs on a Domino Linux server. Previously only a docker container was provided  For more details, about the new features please refer to the changelog of this project.  Please note: The Domino Rest APIs are still in beta — the first eGA release is scheduled to be shipping with Domino v12.0.1 later this year. Customers interested in joining the beta program can find the required files available for download at our License and Download Portal.  HCL Traveler 12.0 updated with Fix Pack 1  Fix Pack 1 for...
article-img
Digital Solutions | June 11, 2021
Announcing the Domino REST API Beta Program  
Today, we’re announcing the start of the beta program for our new Domino REST API, formerly known as “Project Keep.” This is the latest addition to our ongoing Domino Early Access Program. The Domino REST API will introduce hundreds of new APIs that aperture to information on Domino — further extending access to your Domino data. It’s a modern take on the REST API for opening Domino access to a world of standards — and API-first developers. What is it?   Domino REST API is a new feature that runs alongside the server and allows you to expose your Domino data in the form of standardized Open-API-based methods securely and easily. Using a browser-based admin UI, application owners can define which data will be made available for view or update on a REST API. It extends the Domino principles of reader/author document access definitions into the world of Internet protocols.  It also includes Swagger UI which allows the visualization and interaction with APIs without having any of the actual implementation logic in place. The APIs are automatically generated from an OpenAPI (formerly Swagger) specification with visual documentation, making it easier to later implement the back-end code.  What is special about the new Domino REST APIs?  Secure by default, with fine granular controls per form, field and user basis  Implements latest open standards  HTTP/2-ready, for server-to-server or client-to-server communication API-first design with full interactive documentation  Low barrier to entry as it runs on a Domino server and/or your Notes client  Admin UI and Postman samples included  State-of-the-art JWT access token integrated with your existing IdP infrastructure What can be accessed via the Domino REST APIs? You can access content like views, documents, and fields, as well as database design, agents, and ACL settings. And, of course, featuring DQL queries to quickly access the data you are looking for.  Built-in declarative security ensures the API will only allow access to fields the caller is authorized to see or update. This can effectively prevent computed fields to be overwritten and limits participants in a workflow to update their fields only.   How to participate   The Domino REST API is now available as a...
Close