in Blog, Trainings

Performance tuning the IBM Notes client is a topic we at panagenda are rather passionate about. So passionate, in fact, that we’ve presented about this topic no less than 30 times! Now it’s time for a slightly different angle – virtualization of the Notes client on Citrix XenApp!

All the below tips are written for the IBM Notes MULTI-USER CONFIGURATION client on Citrix on IBM Notes releases 8.x to 8.5.3FP2. While it’s possible to use some of the below tips with other versions, it’s not recommended, or at least not until you’ve thoroughly tested them. And you are going to test these anyway, before using, RIIIGHT?

1. Shared Cache File for all Users

In your %NOTES_PROGRAM%\framework\rcp\deploy\jvm.properties file, search for
jvm.shareclasses.loc=
As of release 8.5, this is configured as
jvm.shareclasses.loc=${rcp.data}/.config/org.eclipse.osgi
which you want to change to
jvm.shareclasses.loc=c:/temp/xpdplat
to allow all users to share ONE cache file, rather than build one each in their data directory.
Also add the following line, if missing:
vmarg.Xnolinenumbers=-Xnolinenumbers

2. Shared Java Classes – see also: http://www-01.ibm.com/support/docview.wss?uid=swg21330177

In your %NOTES_PROGRAM%\framework\rcp\eclipse\plugins\com.ibm.rcp.j2se.win32.x86_1.6.0.20080416-200806200100 file, REMOVE:
<singleJVM>
So the line should look something like this:
vmarg.Dshare=-Xshareclasses:name=xpdplat,controlDir=${prop.jvm.shareclasses.loc},groupAccess,keep,nonfatal

3. Remove config.system.* entries

In your %NOTES_PROGRAM%\framework\rcp\rcplauncher.properties file, REMOVE:
config.system.2=${rcp.home}/rcp/systemdata
config.system.1=-data
Please note that the line:
rcp.install.id=133154848636
MUST be the same across all Citrix servers in order to not have Notes clients re-run provisioning at each launch. The value 133154848636 above is not meant to be copied and pasted, however, but be sure to choose a value from your own environment and duplicate it across your Citrix servers.

4. Set/Increase Eclipse memory

In your %NOTES_PROGRAM%\framework\rcp\deploy\jvm.properties file, ensure that the following default parameters are set:
vmarg.Xmx=-Xmx256m
vmarg.Xms=-Xms64m
This is one entry that has often been recommended to increase to 1024 and 128 respectively, however with  Citrix more than user will be using a client on the same machine – think number of concurrent user sessions multiplied with possible memory requirements for the JVM.

5. Remove arg * values to fix installer errors:

In your %NOTES_PROGRAM%\framework\rcp\systemdata\.config\args.properties file, REMOVE:
arg4=-config
arg5=system
Note: depending on Notes release, it might be the arg2 and arg3 lines you need to remove.

6. In order to prevent registry error due to insufficient end user permissions, do the following:

In your %NOTES_PROGRAM%\framework\rcp\eclipse\features\com.ibm.rcp.portal.feature_6.2.3.20110915-1350\handler.properties file, COMMENT OUT:
exec.command.win32x86=”${plugin.dir}\\${plugin.dir.com.ibm.rcp.ca.utils}\\register_ca.bat” “${rcp.home}” “${plugin.dir}\\${plugin.dir.com.ibm.rcp.ca.utils}\\register_ca.reg”
Then go to your %NOTES_PROGRAM%\framework\rcp\eclipse\features\com.ibm.portal.feature_6.2.3.20110915-1350\handler.properties and COMMENT OUT:
#exec.command.win32x86=”${plugin.dir}\\${plugin.dir.com.ibm.portal}\\register_cai_url.bat” “${rcp.home}” “${plugin.dir}\\${plugin.dir.com.ibm.portal}\\cai_register.reg” “${product.install.dir}” “${plugin.dir.com.ibm.portal}”

8. Edit the shared Notes.ini

In your [IBM Notes Shared Data Directory]\notes.ini file, ADD:
Ports=TCPIP
TCPIP=TCP,0,15,0 -> Note that this sets port encryption to OFF, which is appropriate for Citrix; Port compression adds 5% CPU overhead and with 60 concurrent sessions this would result in needing 3 dedicated CPUs for just port compression
DISABLE_CLIENTRECORD=1 -> This disables logging of client information back into the public address book as all Citrix users share the same machine.
log=,1,0,7,40000 -> This disables logging, which is optional but gains a slight performance improvement
CREATE_R85_DATABASES=1 – make sure that the shared notes.ini does NOT contain CREATE_R8_DATABASES=1

9. Edit the Registry

In your end user registry, make sure that the following entries are set:
HKLM\Software\Lotus\Notes\MultiUser=0x000001
HKLM\Software\Lotus\Notes\9.0\MultiUser=0x000001

10. TEMPLATES IN IBM NOTES SHARED DATA DIRECTORY

Compact all templates in the shared data directory as follows:

  1. TEMPORARILY copy the root notes.ini (as changed in above steps!) from the shared  data directory to the notes program files directory
  2. open cmd.exe
  3. run %NOTES_PROGRAM%\ncompact.exe -ODS -*  [IBM Notes Shared Data Directory] IMPORTANT: Notes.ini must first contain a notes.ini with CREATE_R85_DATABASES=1
  4. DELETE the notes.ini copied in step a.) (=the one in the program dir, NOT in the shared location)
  5. When done, you can copy all templates over to other Citrix servers.

11. Bonus Tip

Last but not least, we strongly advise you to investigate the following CLIENT/DATA DIRECTORY housecleaning options from time to time on clients – naturally, panagenda MarvelClient makes this easy:

  1. clean out ($Policies) views in (client) names.nsf once (only do this upon analysis of startup times; contact panagenda support for details)
  2. compact desktop
  3. compact names.nsf
  4. compact desktop8.ndk
  5. compact bookmark.nsf
  6. compact log.nsf

A special thanks goes to Christian Henseler, who has contributed to much of the above. And for those of you who really want to dig in, check out this fantastic IBM White Paper!
Happy optimizing!

Related Posts


Showing 9 comments
  • Stevan Bajić
    Reply

    Topic 3: You miss that not only “rcp.install.id” should have the same time serial across all servers but “provisioning.manifest.version” needs to have same time serial too.

    Another issue that needs to be mentioned is that if you use IBM ID Vault and the Notes data directory is on a network share and you use a newer version of Windows Server then you should look to install the latest FP and set “OS_DisableMMapFileCopy=1” in notes.ini. Without this you will not be able to get the ID back from ID Vault AFTER you reset the users password. First initial setup of the client works in conjunction with the ID Vault but as soon as you reset the password you will have trouble. The client is trying to get the ID form the ID Vault (which he can) but will fail writing it on a network share that uses SMBv2. Basically rendering the ID useless. Basically you have three options here: Don’t use ID Vault for reseting passwords/IDs, don’t use new versions of Windows or disable SMBv2 for network shares, install latest FP and set “OS_DisableMMapFileCopy=1” in notes.ini.

    Another great source of problems is Microsoft Data Execution Prevention. Enable it on the Citrix server and you will be surprised how fast you get IBM Notes crashing. Crashes by the minute are normal (mainly with the standard client). Don’t be fooled by the fact that all the other enterprise applications work flawless with DEP activated. Notes will not work. Disable it if you run the Notes client on Citrix.

    • Francie Tanner
      Reply

      Hi Stevan and thanks for your feedback! Great tip on the ID Vault issue if the fixpack is missing, also with the MS Data Execution Prevention one, which I was not aware of.

  • Alex Rasmussen
    Reply

    Are any of these hints valid for release 9.x as well ?

  • francie tanner
    Reply

    Hi Alex, sorry for not catching your question earlier but afaik all these are valid for 9.0.1 but as always, please test each setting before implementing. Client clocking can help you see performance times, and our (free) MC Analyze tool also has a section on performance.

  • WimS
    Reply

    I don’t know if this discussion is still open but regarding the compact of the templates
    does the ncompact.exe -ODS -* still exist ? or do you need to replace it with ncompact -c ?
    Beside the CREATE_R9_DATABASES=1 is the NSF_UpdateODS=1 parameter not required as well ?

    Can you give more info about the parameters -ODS & -*. They seem to be undocumented @ IBM (or am I mistaking ?

    Regards
    WimS

  • daniele
    Reply

    Hello,
    I have follow your guide for Windows 2016 with XenApp 7.16 and install IBM 9.0.1FP9IF2 ….
    All work and start.. but the user close Notes Client (not Hang, not Crash) and can’t reopen….
    We need to recreate profile of the user…
    Have you any suggestion?

    • Marc
      Reply

      Hi Daniele, this question is hardly to answer in a short sentence! In general, the posted article is still valid, but environment situations differs sometimes slightly. As an offer, send your questions and a bit more details about what “can´t reopen” exactly means. I´m confident that we´ll find a solution. (support@panagenda.com)

Leave a Comment

Start typing and press Enter to search