Lotusscript and Domino musings

 
alt

Lars Berntrop-Bos

 

Tuning the Notes client backend for fun and profit

Berntrop Admin  May 22 2025 04:21:39 PM
After spending some time making the Eclipse RCP side run better, we need to look at the Notes client backend.

Due to the fact that the Notes backend shares a lot of code with the Domino server, there are some surprising possibilities!  It turns out there many "server" notes.ini settings that also work in the Notes client.

Before I discuss using Domino settings in the Notes client, I want to go over some settings that will make debugging easier.

The first of those settings is
; Log Status messages in log.nsf
LogStatusBar=1
That will cause all the messages that appear in the statusbar to also go to the log.nsf.  Sure that will generate mor log documents, but those status messages contain a lot of useful information.

Another is
; Log setting, keep longer
Log=log.nsf, 1, 0, 9999, 30000, 0
This change sets the number of days to keep the log documents to 9999.  The local log.nsf is quite modest in disk space use, and i like to be able to back a bit.
You used to be able to influence the size of the log documents, but around 11 or 12 30000 was blessed as the maximum value.  I noteced because i was using a policy to set the Log to a bigger value, and a small war ensued as the policy set the larger value and code inside the client was resetting the value.  A side effect of that was that the notes.ini got corrupted, as evidently there is not one proces responsible for writing to the notes.ini file. And as soon as you have empty or corrupted lines in your notes.ini, startup times of the Notes client tank, taking minutes to start instead of seconds.  If you recognize this, please open a support case with HCL.

Notice how I comment on the setting by starting the line with a semicolon ';', recommended!

Net I like to keep the Console.log as well, and the Domino settings work fine:
; ConsoleLog settings
Console_Log_Enabled=1
Console_Log_Max_kbytes=100000
Debug_ThreadID=1

Another tip originates from Panagenda's interesting webinars about Notes performance.  After every Notes or DOmino install, patch or update, I make sure to run a "compact -ODS -*".  This makes it so all the nsf, ntf and mail.box files are using the latest On-Disk-Structure, abbreviated to ODS.  I think it is telling that this is fourth column in the admin client Files tab.  I have had instances (ok itwas in 8.5 days) where having ntf templates in the default old ODS meant signicant performance loss in design refreshes on a Domino server on iSeries.
If you want to profit  the latest developments in io and diskaccess technology, you need the latest ODS.  So a no brainer to do. Since the -ODS parameter only does the actual copy-style compact if an ODS upgrade is needed, I usually do an online (meaning I run the command while Domino or Notes is running), then if dtabases were skipped because open, quit Domino or Notes and rerun the compact -ODS in offline mode.

Now let's turn to directories.
I like the temp files to be put in a known place, not in the Windows Temp or Notes Client Data directory:
 
; NotesTemp
Notes_TempDir=C:\HCL\Notes\dirTemp\

As you can see, I like to put my Notes program and Data directories NOT under 'Program Files', with or without (x86).  For starters, a space in the path needs you to use quotes on the command line.  And by default non-admin users cannot write to files stored under Program Files, which is a pain if you have the Data directory there.  Also makes it very easy to exclude the HCL directory from Windows Search indexing.  Windows indexing is a pain, and not very applicable to Notes programs and data.

One of the first Domino settings I discovered date back to R5 days.  I had a 486 laptop, running NT4.  One of the products had a database containing information for a large number of Compaq products.  This databse was often opened for reference, and Designer was not as stable as it is these days.  Especially if you're still learning the ropes and dive in and out of Designer help to look up Notes LotusScript product object properties and methods.  If Designer crashed, a consistency check would ensue , leaving me to twiddle my thumbs and do some coffee rounds for the office.

Unless: you enabled Transactional logging in the client.  For a bit of disk space, the excellent IBM server technology introduced in R5 called Transactional logging speeds up the startup considerably!
So ever since, I have been running my Notes client with transactional logging on.  With the settings adjusted for the Notes client:
; Transaction Log settings
; create new style block-aligned transaction log
Create_R85_Log=1
;  automatic fixup
TransLog_AutoFixup=1
;  do not use all the space for transaction logs
TransLog_UseAll=0
; Circular style (Cirular=0, Archival=1)
TransLog_Style=0
; 1=Favor runtime (fewer writes to transaction log, more changes in memory), 2=Standard, 3=Favor recovery time (more writes to the transaction log)
TransLog_Performance=3
; Transaction Logging enabled
TransLog_Status=1
;  Size of Transaction Log
TransLog_MaxSize=256
; Location of transaction log files
TransLog_Path=C:\HCL\Notes\dirTransLog\

Another setting concerns the buffer pool.  Daniel Nashed published that the Notes client by default keeps a very small one, so:
; BufferPool (so it is not only 8MB)
NSF_Buffer_Pool_Size_MB=128

You can put Full text indexes in a separate directory, making it easier to do maintenance and separating out the clutter.
; FullText Index Dir
FTBasePath=C:\HCL\Notes\dirFT\

On the suject of indexes: a while ago, Domino gained the ability to store indexes outside the nsf file.  This feature is also known as NIFNSF.  It needs Transactional Logging to be active.  And lo and behold, this also works on the client!
; NIFNSF
NIFBasePath=C:\HCL\Notes\dirNIF\
Create_NIFNSF_Databases=1
NIFNSFEnable=1

Caveat: just as on Domino, a database needs a special bit set, be on a new enough ODS, and if not created with the bit set needs a copy-style compact to actually move the indexes out of the database.  A nice side effect is that if you make a backup of the databases, having the full text and view indexes in a separate directory makes the backup smaller and faster, no need for a separate compact -d to drop the indexes.

I'm curious what you think, comment here or find me on the OpenNTF discord https://discord.com/invite/jmRHpDRnH4 !

Recent Entries

    Archives