Upgrading Notes client to V12 on Terminal Server

I worked with my friend and lady geek, Marianna Tomasatti, at a customer to perform an upgrade of the Notes client to V12.0.2 FP1 on Terminal Server Windows 2019 Datacenter (multi-user installation) because the Notes clients had some issues.

Since the previous version was V9, in the user’s home directory W: there was a folder named IBM, and the path to the client data directory was W:\IBM\Notes\Data.

V12 creates a directory named W:\HCL\Notes\Data when installing for the first time so what we expected was that launching the Notes client, the setup wizard started.

To our surprise, the client started normally and not in setup mode! We double checked and found that the notes.ini in the old W:\IBM\Notes\Data was used and the directory W:\HCL\Notes\Data was not created.

We could simply not understand why this behavior… so I put forward the wild idea “maybe the client tries to find a notes.ini in any directory and if it finds it, it uses that one”. Being like-minded, Marianna did not laugh at me, because she is a very experienced Notes administrator and has seen many strange things in her career so even the wildest of the ideas could have some possibility to work.

With the help of the customer Terminal Server administrator, we checked what files the client was trying to open and we found out that it tries, in order


And if it finds the notes.ini file in there, uses it.

This makes sense, since the naming of the default directories of Notes/Domino have changed over time from Lotus to IBM and now to HCL, but we did not know that the client tried to find the notes.ini in those directories!

The solution was then to rename W:\IBM to W:\IBM_username because the client would not check a directory with that name.

In fact, after the rename, we launched the Notes client again and the setup wizard started.

The new HCL Software Download Portal

Personally I do not know a single person in the Domino community that is happy with the actual Flexnet download site to get the kits of the various HCL products. There are many issues, and I won’t go into details here, but is enough to say that many people have complained. The good news is that HCL is listening and acting.

HCL made a quiet introduction of the new Software Download Portal allowing initially access only to the participants of the Domino V14 beta program. The feedback was good, so they now added all the Domino and related product versions, and the access is open to anyone that has the credentials for the Flexnet old site.
The splash screen still shows the warning that the site is open only for the V14 beta, but is not true anymore

Once logged in you will see this screen

And if you select “HCL Domino” you will see that all the various products are there for you to download, obviously according to the entitlement you have.

For example if you select Domino, you have the options to download V11.0.1 or V12 and the relative Fixpacks and Interim Fixes

Download is very fast and on the various product pages there are links to the documentation and system requirements.

This is definitely a big improvement that will make our life much easier when we need to find and get a install kit.

Kudos to HCL for listening to the community and resolving a problem that made us unhappy.

Engage 2023

Engage 2023, my impressions

From 24 to 27 April Engage was held in Amsterdam, the most important event for us who work in the field of collaboration with HCL products.
As usual Theo Heselmans organized an outstanding event; the location, the Felix Meritis was an ancient building from 1776, originally the seat of a scientific-cultural Academy and kept the charm of the time intact. The only ones to complain were my legs, the rooms were arranged on 4 floors to be done strictly with stairs 🙂
Let’s get to the contents. HCL confirmed what was announced last year, namely that the focus for Domino is application development, but this does not mean abandoning the mail and calendar part.
The future for development is Volt MX Go, if you don’t know it yet, it’s time to start looking at it, the Early Adopter program is active, the software is available and you can start using it to develop new applications.
XPages remain alive, and this is part of the tradition started since the days of Lotus, to maintain backwards compatibility of products. If you have applications developed with XPages, they will continue to work for years to come. However, XPages will not be enriched with new features, so HCL recommends starting to use the new tools which will instead have many developments in the coming years.
Another thing that has been seen is the considerable development that the Domino REST APIs have had, and continue to have.
As mentioned, the mail and C&S part is not left out, in fact HCL has made an agreement with OnTime to give their product, which is absolutely the best for managing group calendars, included in the Domino license. The same that was done years ago with Panagenda’s MarvelClient. Even if you only use Domino for email and have no applications, you can rest assured that HCL is continuing to invest in that area as well.
Sametime continues to be actively developed, and the new Program Manager, Trevor Tallackson, was introduced. I’ve known Trevor for years, up until now he was in Sametime L3 support, and he’s really good. Personally I find it great that the new PM is someone who comes from the team that develops and supports the product, I take it as a guarantee that HCL believes in Sametime and I can’t wait to see how it will evolve in the future.
I can’t talk about DX or Connections, there were too many interesting sessions and I couldn’t follow any related to that.
As for me personally, it was one of the best events ever, I had a lot of fun doing the “Tips and tricks for Domino administrators” session with my friend Marianna Tomasatti from GT Tech, we had a lot of participants in the session, honestly more than I imagined, and there were questions at the end. I hope this means that you enjoyed the session and found it useful.
You can find the presentations made during the event on the Engage website, https://engage.ug

Me with the wonderful ladies I had the honor and the pleasure of presenting with.

Sametime monitoring dashboard on Docker

Sametime 12.0.1 introduced a new feature, a monitoring dashboard based on Grafana


But on Docker it was not working, in various panels, for example those related to meetings it showed “no data”. Some of us reported this to HCL and they told that a fix would be provided for FP1.

In fact if you look at the fix list for FP1 here, you will see this: SAME-46471 – Update to support the Meetings Dashboard on Docker.

I found a small issue, though. For me the dashboard does not show correctly the meeting numbers. Even if you have one or more meetings active , it always shows 0

I had a chat with the Sametime Wizard, Tony Payne from HCL, and he suggested me to edit the file docker-compose-monitoring.yml and change from
      image: google/cadvisor:latest


      image: gcr.io/cadvisor/cadvisor:latest

After I did that and restarted the server, the dashboard works perfectly 🙂

If you are interested in Sametime, and I assume you are if you are reading this, I strongly suggest you to attend at Engage the session “Ad08 – Real life challenges and configurations when implementing HCL Sametime” on Tuesday, April 25 at 13:30 – 14:30 done by Erik Schwalb and Herwig Schauer of HCL. I had a meeting with Erik and he showed me a preview of what they will talk about, I can guarantee you that this session is very interesting and useful.

Upgrading Sametime to 12.0.1 FP1 – update

Just like I wrote some time ago about upgrading from 12.0 to 12.0.1, this upgrade is extremely simple and fast, but you have to take some small steps before doing it.

Make a backup copy of the directory where you installed Sametime, e.g.
cp -r /sametime /sametime.bck

This is needed because not all the customization you did will be preserved, in my case I found out that the /sametime/sametime-config/web/branding and /sametime/sametime-config/web/acme-certs directories were not kept. I found out this, because not having the certificates my server did not start correctly.

So after the upgrade, just copy the missing directories from the backup directory to the install directory before starting the server.
NOTE: In FP1 the ST containers no longer run as root, so the sametime-config directory and all its subdirectories are not owned by root:root but by 1000:1000; if you copy the directories from the backup to the working directory check and (if required) change the ownership of the files and directories you brought back from the backup directory.

As I wrote in a previous post about upgrading Sametime, if you have integrated mail you will have to edit docker-compose.yml and change again SAMETIME_EXTERNAL_WAR_INTEGRATION=true.

To upgrade, unzip Sametime_Premium_12.0.1_FP1.zip in the directory where you have installed sametime. Make sure to overwrite all the files, on a test server I made a mistake and did not upgrade install.sh, so in the end I ran the 12.0.1 install file, which is not a good idea 🙂

Once unzipped, just run ./install.sh, it will ask you if you want to upgrade the existing Sametime, answer Y and that’s all. If you are not running the install as root, it will prompt you for the sudo password towards the end, when it updates the permissions in the ‘sametime-config’ directory.

The Domino 12 Update Certification is now available for 8.5 Certified Administrators

HCL software Academy has changed the requirements for the Domino V12 Update Certification exam.


This certification exam is for individuals who can provide proof of one of the IBM Domino Certifications below:

  • IBM Certified System Administrator – Notes and Domino 8.5
  • IBM Certified Advanced System Administrator – Notes and Domino 8.5
  • IBM Certified System Administrator – Notes and Domino 9
  • IBM Certified Advanced System Administrator – Notes and Domino 9

From LotusScript to ChatGpt and vice versa

My developer colleague, Fabio di Paola, has done some experimenting with ChatGPT and he successfully used it with LotusScript.

He published an article, in Italian, on our blog, here.

To save you the hassle of translating, here it is in English:

OpenAI.com’s ChatGpt is kind of the main topic of the last few months, we’ve all tried to use it and we’re thinking about how to use it in real cases. Precisely in the light of these considerations, the first question we asked ourselves was “but will I be able to use it within a Domino application?”

The answer is Yes , it can be done : we are investigating it these days and the first results are positive ; It’s true that sometimes, from theory to practice, surprises are always discovered and therefore the last word is never said, but here I feel optimistic. LotusScript can query ChatGpt and receive its response.

OpenAi has released APIs to connect to ChatGpt but, at least for now, they are limited to Python and node.js . In addition several communities have already published code libraries to connect to ChatGpt from other languages. It’s hard to think that something like this will ever be done for LotusScript .

But going to see how the calls are made and trying to experiment on the ChatGpt playground you can understand the mechanisms that underlie the calls to ChatGpt.

The first thing needed, regardless of the code used, is the API key for authentication: this is obtained by registering on the site and then going to the details of your account under ApiKeys It is a string of 51 characters which must then be passed
to every call.

At this point I started building a first prototype in LotusScript, the main parts are two:

  • The NotesHTTPRequest class to send the request and get the response
  • The construction of the Json to be sent and then the parsing of the return Json

For the NotesHttpRequest there is little to say, just remember that the API key must be managed as a header of the request.

For the Json part there are obviously various possibilities to build it and then to parse it, obviously the important thing is to follow the ChatGpt rules: here too, using the playground you can easily understand how to build it, which parameters to pass and how.

A typical example is this:

"model": "text-davinci-003",
"prompt": "Ask here the question.",
"temperature": 0,
"max_tokens": 100,
"top_p": 1,
"frequency_penalty": 0,
"presence_penalty": 0,
"stop": ["\n"]

Also to parse the response there are several possibilities, you can use the NotesJSONNavigator class in LotusScript or a library already present on the net like this one https://www.openntf.org/main.nsf/project.xsp?r=project /JSON+LotusScript+Classes in OpenNTF.

At the end of all what I got is a form in which to enter the question with a button that sends it, parses the answer and writes the answer itself in a field below, all using only LotusScript :

I add a curiosity: among the questions I asked ChatGpt I asked if he knows LotusScript (with an affirmative answer) and then I asked if he could write me the LotusScript code to send requests to ChatGpt. Again the answer was yes but the code he gave me had several errors.

I replied pointing out the various errors and corrections were proposed to me which were equally incorrect. As far as I understand at the moment ChatGpt doesn’t “learn” from its mistakes, so it’s possible that asking it the same questions again will result in the same errors.

Problem with Prometheus in Sametime monitoring dashboard

I set up the monitoring dashboard in Sametime, using the provided JSON files; in case you don’t know how to do that, you enable it running this command

docker-compose -f docker-compose.yml -f docker-compose-monitoring.yml up -d


Today I discovered that my Prometheus container kept crashing, and in the logs I found lines like these:

corrupted block 01GQT2R33ASC29W57NF4WEZKP3: open data/01GQT2R33ASC29W57NF4WEZKP3/chunks: no such file or directory;
 corrupted block 01GQW0HNMW76WDHNY6T8CMEVQ0: open data/01GQW0HNMW76WDHNY6T8CMEVQ0/chunks: no such file or directory;
 corrupted block 01GQGDRDRKSS062T1762WACX5H: open data/01GQGDRDRKSS062T1762WACX5H/chunks: no such file or directory;
 corrupted block 01GQJBHXKJW38754FR7CZGTWZN: open data/01GQJBHXKJW38754FR7CZGTWZN/chunks: no such file or directory;
 corrupted block 01GQM9BGT78HDQXM2EZ2BP5P8S: open data/01GQM9BGT78HDQXM2EZ2BP5P8S/chunks: no such file or directory;
 corrupted block 01GQP75073Q7FRW2MEGE1T5869: open data/01GQP75073Q7FRW2MEGE1T5869/chunks: no such file or directory;
 corrupted block 01GQR4YKN8XJS7FY30VYR24VTG: open data/01GQR4YKN8XJS7FY30VYR24VTG/chunks: no such file or directory"

In fact looking at the directory structure under /tmp/prometheus, the default directory where Prometheus store files I found this:

The solution was to delete the directories that didn’t have a “chunks” subdirectory and restart the Prometheus container. The dashboard started working again.