User login

Test Infrastructure: Notes 8 client within Citrix

Test Infrastructure: Notes 8 client within Citrix

http://www.ibm.com/i/c.gif

 

 Product documentation

 

Abstract

Citrix Presentation Server (formerly Citrix MetaFrame Server) is a remote access/application publishing product that allows people to connect to applications available from central servers. One advantage of publishing applications using Citrix Presentation Server is that it lets people connect to these applications remotely and securely.To the end-user, the application appears as if it was installed and running on their computer (seamless desktop integration), whereas in reality, the application is running on the Citrix Presentation Server, usually hosted in their corporate environment. Networks using Citrix Presentation Server can be likened to a mainframe-terminal system, where a central powerful computer does most of the processing work and smaller, much less powerful machines provide the user interface.
Citrix Presentation Server is built on Citrix Systems' thin-client protocol, called ICA (Independent Computing Architecture). ICA transmits high-level window display information and clients are available for different operating systems including MS Windows (16-, 32- and 64-bit), Mac, Linux and other UNIX-like systems. The server is hosted on a Windows machine.

In a real-world scenario, Notes Client would be published on the Citrix Presentation Server and each end-user would access it from their own individual (dumb) terminal. However in a test environment multiple end-users are emulated to run on a single client machine (in practice there are 2 or more client machines, but each still hosts multiple end-users). Therefore the client machine needs to be set up to run multiple users each with their own individual Notes client session, even though each user is actually accessing the same Notes client install on the server.

 

 

Content

Overview

The IBM Lotus Domino System Verification Test (SVT) team tested several environmental configurations for the Lotus Notes® client 8.0 release. This document describes testing done with Citrix.

A Notes multi-user configuration is not supported with a Citrix environment. The multi-user Notes client is not Terminal Services aware, and so the Installer creates an incorrect NOTES.INI file and places it in the wrong location, in %SYSTEMROOT% instead of "Documents and Settings\AllUsers\Applications\Lotus\ Notes\Data". In brief, the fix is to move the ini file to the correct location and ensure that the following lines are included:

[Notes]
KitType=1
SharedDataDirectory=C:\Documents and Settings\All Users\Application Data\Lotus\Notes\Data\Shared
InstallType=6


The install is explained in more detail below.

Background:

Citrix Presentation Server (formerly Citrix MetaFrame Server) is a remote access/application publishing product that allows people to connect to applications available from central servers. One advantage of publishing applications using Citrix Presentation Server is that it lets people connect to these applications remotely and securely.To the end-user, the application appears as if it was installed and running on their computer (seamless desktop integration), whereas in reality, the application is running on the Citrix Presentation Server, usually hosted in their corporate environment. Networks using Citrix Presentation Server can be likened to a mainframe-terminal system, where a central powerful computer does most of the processing work and smaller, much less powerful machines provide the user interface.
Citrix Presentation Server is built on Citrix Systems' thin-client protocol, called ICA (Independent Computing Architecture). ICA transmits high-level window display information and clients are available for different operating systems including MS Windows (16-, 32- and 64-bit), Mac, Linux and other UNIX-like systems. The server is hosted on a Windows machine.

In a real-world scenario, Notes Client would be published on the Citrix Presentation Server and each end-user would access it from their own individual (dumb) terminal. However in a test environment multiple end-users are emulated to run on a single client machine (in practice there are 2 or more client machines, but each still hosts multiple end-users). Therefore the client machine needs to be set up to run multiple users each with their own individual Notes client session, even though each user is actually accessing the same Notes client install on the server.

Set-up of Notes Basic Multi-User install for Citrix testing


After successfully installing the Operating system, install the Citrix server and configure the licenses if you have them ready. You can still progress without them.

(0) To be able to generalize the initialization of each Notes Client instance as much as possible in notes.ini, map a drive letter to the user's name path (
FOLDERID_Profile *):

http://www-1.ibm.com/support/docview.wss?uid=swg27010471&aid=1

SET DaS=Documents and Settings
net use P: "\\<DNS server name>\%DaS%\%username%"

e.g. net use P: "\\myserver.example.com\%DaS%\%username%"


End users only need to have user rights, not Admin rights.

Because this test environment does not utilize an Active Directory server, the home directory (containing the file
user.id) had to be set for each user.
A shared folder (called HomeDrives) on the Citrix Server 1 machine was created, with the share name HomeDrives$.
On our test scenario groups in the shared permission properties consisted of the following:
Remote Desktop Users (e.g. [server name]\Remote Desktop Users) Full Control, Change & Read
REMOTE INTERACTIVE LOGON Full Control, Change & Read
TERMINAL SERVER USER Full Control, Change & Read
Users (e.g. [server name]\Users) Change & Read

In Computer Management->System Tools->Local Users->Users : Properties->Profile under Home folder, click Connect radio button and specify H:.
In the To: field specify the user's home directory folder: \\<dns-servername>\<shared directory>\%userprofile% (will be resolved by windows to the current user's name).
http://www-1.ibm.com/support/docview.wss?uid=swg27010471&aid=2

In the lab scenario for 8.0 testing, the \\<dns-servername>\<shared directory> was set on Citrix Server 1.

(1) Install Lotus Notes Client 8 Basic by selecting Multi-User installation on the Data drive (C:\Program Files\ibm\Lotus\notes).
This helps in creating a default configuration in the
FOLDERID_ProgramData folder.

(2) Because the installer does not properly discover the terminal server as a multi-user OS, it places the notes.ini file in the
C:\Windows directory, where it should be deleted because it is not properly populated.

(3) Create notes.ini and ConfigFile.txt files in
FOLDERID_ProgramData+LNdata (i.e. C:\Documents and Settings\All Users\Application Data\Lotus\Notes\Data).

Notes.ini

[Notes]
Directory=P:\Local Settings\Application Data\Lotus\Notes\Data
SharedDataDirectory=C:\Documents and Settings\All Users\Application Data\Lotus\Notes\Data
Cache=P:\Local Settings\Temp\Cache.ndk
View_Rebuild_Dir=P:\Local Settings\Temp
Configfile=C:\Documents and Settings\All Users\Application Data\Lotus\Notes\Data\ConfigFile.txt
KitType=1
;InstallType 6 Client Only"
InstallType=6
KeyFileName=P:\Application Data\Lotus\Notes\Data\User.ID
PercentAvailSysResources=2
Ports=TCPIP
TCPIP="TCP,0,15,0"
;Parameters "for R7"
Auto_Save_Enable=1
LOGSTATUSBAR=1
IM_NO_SETUP=1
ExitNotesPrompt=1
SpellInitOnLoad=1
JavaEnableJIT=1
JavaJITName=jitc
;CONSOLE_LOG_ENABLED=1
##### All Users predefined section ends here ++++


ConfigFile.txt

KeyFileName=P:\Application Data\Lotus\Notes\Data\User.ID
Domino.Name=<DNS of Domino server>
Domino.Address=<ip address of Domino server>
Domino.Port=TCPIP
Domino.Server=1
AdditionalServices=-1
IM.Server=0
AdditionalServices.NetworkDial=0
Replication.Threshold=9999
Replication.Schedule=0


(4) Because the installer does not properly discover the terminal server as a multi-user OS, the registry key to indicate this to the notes.exe is not properly set. Launch regedit and modify:
[HKLM\Software\Lotus\Notes\DataPath] Remove the value.
[HKLM\Software\Lotus\Notes\MultiUser] Change the value from 0 to 1.
[HKLM\Software\Lotus\Notes\8.0\DataPath] Remove the value.
[HKLM\Software\Lotus\Notes\8.0\MultiUser] Change the value from 0 to 1.

http://www-1.ibm.com/support/docview.wss?uid=swg27010471&aid=3

Changing these values allows multi user Notes Client setup.

(5) Disable the Multi-user Cleanup OS service through the GUI tool (The Notes Client is not using the Notes roaming feature and there is nothing to be cleaned up):

a.     Go to Start Menu --> Run, and type services.msc in the Open field.

b.     Locate the Multi-user Cleanup service.

c.     Right click on the service and go to "Properties".

d.     Drop down the "Startup Type" list, and choose "Disabled".


(6) The directory
FOLDERID_ProgramData+LNData\Common stays unchanged, all is fine.

(7) In the directory
 FOLDERID_ProgramData+LNdata\Shared, carefully remove any template you don't need in your environment, but be careful not to remove any essential Notes Client system templates.
NOTE: The work balancer of the Citrix farm distributes work between Citrix servers in the farm. This generally works very well, even at peak times. However it can still happen (within seconds) that multiple users get assigned to one Citrix server. The caveat unfortunately is if those users still have to run through the initial setup of the Notes client and by chance launch notes.exe at the very same moment. Those 2 users try to access the templates in the
FOLDERID_ProgramData+LNdata\Shared directory at the same time. Those files are read-only on OS-level by OS-ACL but Notes itself tracks how often NSFs and NTFs are accessed and allows only a single instance of Notes Client to do so.

At least one user may encounter a failure and receive the error
"This database is currently being used by someone else. In order to share a Notes database, all users must use a Domino Server instead of a File Server."
which will cause the setup to stop.

The workaround would be to replace the full design element filled up NTF-files by NTF-link files which redirect the open database action onto a Domino server:
<DNS name of domino server>!!<template filename>.ntf (these templates could reside in subdirectory too.)
i.e.
pernames.ntf:
server1.acme.com!!pernames.ntf

Note / Exception:
Only log.ntf should stay as an original template on the Citrix server, because this template is used very early on by the Notes executable, well before the client establishes a connection to the Domino server to pull the design from there. For all other templates it will minimize the chances that two users try to access a template at the same time during their initial Notes Setup and at least one would receive the error. (You could omit log.ntf completely: the Notes Client will run but just constantly report in the status bar that it is missing the log.ntf file).

The remaining templates get replaced (except the log.ntf !) with link files, pointing to a domino server. Sample file list:

       39 alog4.ntf
       43 archlg50.ntf
       43 autosave.ntf
       43 bookmark.ntf
       43 busytime.ntf
       40 cache.ntf
1,090,560 canadien.dic
6,157,991 de-DE-Reform-Spell-531E.dic
6,157,991 deutsch2.dic
       43 headline.ntf
       43 journal6.ntf
1,184,256 log.ntf
       40 mail8.ntf
       42 mailbox.ntf
       43 pernames.ntf
       43 perweb50.ntf
1,612,800 uk.dic
1,595,392 us.dic
  223,744 us.med

Note on Permissions to C:\Documents and Settings\All Users\Application Data\Lotus\Notes\Data\Shared folder:

When users log in to multi-user Notes, the following error may appear:
"The Notes client requires an up to date bookmark template, BOOKMARK.NTF. Please obtain a copy and restart Notes."
You can work around this problem by manually enabling Write permission on the shared data folder.

To change permission's on the Shared folder:

1. Log in to a workstation with the Multi-User installation using the Administrator account.
2. Right-click on the folder: C:\Documents and Settings\All Users\Application Data\Lotus\Notes\Data\Shared
3. Select Properties - Security tab - Users group
4. Enable Write permission and save changes
5. Check other groups have permissions as well : all groups and users should have all permissions EXCEPT the Users group, which does not have the Full Control permission.


When the users start Lotus Notes for the first time, the standard configuration wizard starts for client configuration.
This is what will happen when the user logs on for the first time:

A. The
FOLDERID_Profile (users profile in C:\Documents and Settings) will be created or pulled from the Active directory profile file-server

B. The drive letter P: is mapped to the (Citrix-server's) local userprofile directory (
FOLDERID_Profile)

C. When the users start Lotus Notes for the first time the standard configuration wizard starts for client configuration, or the configuration is read from ConfigFile.txt

D. The data directory for the user will be created in FOLDERID_LocalAppData (the users profile directory in the following path.
C:\Documents and Settings\%UserName%\Local Settings\Application Data\Lotus\Notes\Data.)

E: The userloginNotes.cmd checks whether the NotesData directory exists in CSIDL_APPDATA of the just pulled userprofile directory:
C:\Documents and Settings\%UserName%\Application Data\Lotus\Notes\Data.
If it exists, it creates the directory tree
C:\Documents and Settings\%UserName%\Local Settings\Application Data\Lotus\Notes\Data.
and in there NSF-link files to the existing NSF in the userprofile.
It copies the user.dic




Appendix A:
It is recommended to test a crashing client in Citrix environment, how the Citrix Server and all the logon & logoff scripts behave if the Notes Client hasn't been able to cleanup its environment properly. To crash a client there is a utility on Lotus Sandbox (
http://www-10.lotus.com/ldd/sandbox.nsf/Threads/CCCA569E9B9810D185256C5300448031?OpenDocument) called nCrash.dll. Add the following line to Notes.ini:
AddInMenus=crash.dll

Appendix B:
New notes.ini parameter in Notes 8 to be tested:
DISABLE_CLIENTRECORD=1
This parameter has not been implemented in the 8.0 test scenario, because there were no clustered Citrix servers in the farm with a configured work balancer.


Appendix C:
Most notes.ini entries could be implemented and provided in the OS system environment by adding a prefix NOTES_. The advantage would be that those will be read first, before the Notes Client reads the values from the notes.ini file, which skilled end-users could modify. For example, NOTES_TCPIP=TCP,0,15,0 would load the Notes client each time with unencrypted network connections to avoid unnecessary CPU load, because the main connection between the Citrix-based Notes Client and the Domino Server may occur in the same encapsulated data center.

Another advantage:
Single point of administration for the whole Citrix sever farm without touching various OS batch scripts or Domino Policy docs.

NOTES_Directory=P:\Local Settings\Application Data\Lotus\Notes\Data
NOTES_SharedDataDirectory=C:\Documents and Settings\All Users\Application Data\Lotus\Notes\Data
NOTES_Cache=P:\Local Settings\Temp\Cache.ndk
NOTES_View_Rebuild_Dir=P:\Local Settings\Temp
NOTES_Configfile=C:\Documents and Settings\All Users\Application Data\Lotus\Notes\Data\ConfigFile.txt
NOTES_KitType=1
;InstallType 6 Client Only"
NOTES_InstallType=6
NOTES_KeyFileName=P:\Application Data\Lotus\Notes\Data\User.ID
NOTES_PercentAvailSysResources=2
NOTES_Ports=TCPIP
NOTES_TCPIP=TCP,0,15,0

Appendix D:
Abbreviations
To ease the length and readability of this documentation, abbreviations from
http://msdn2.microsoft.com/en-us/library/ms649274.aspx are used for some system paths, e.g.:

FOLDERID_Profile C:\Documents and Settings\%UserName%
FOLDERID_ProgramData C:\Documents and Settings\All Users\Application Data
FOLDERID_RoamingAppData C:\Documents and Settings\%UserName%\Application Data
FOLDERID_LocalAppData C:\Documents and Settings\%UserName%\Local Settings\Application Data
and the subdirectories
\Lotus\Notes or \Lotus\Notes\Data are represented by adding +LN or +LNdata

CSIDL_COMMON_APPDATA+LN is where the common notes.ini and configfile.txt will reside
CSIDL_COMMON_APPDATA+LNdata\Shared is where the templates will reside
CSIDL_APPDATA C:\Documents and Settings\username\Application Data

Notes Basic Testing with Citrix


The goal of this testing was to verify sustained user activity levels were at an acceptable performance level over a period of 7 days for multiple users logging into and performing actions on a single Notes Client via Citrix.

http://www-1.ibm.com/support/docview.wss?uid=swg27010471&aid=5

Rational Performance Tester was used to test Notes 8 with Citrix. The script covered the following:
(1.0) creating and sending an email with an attachment to multiple users
(1.1) switching views and opening and closing other emails
(2.0) creating a test calendar entry with an attachment and mailing to multiple users
(2.1) switching views and opening and closing other calendar entries

The users were run on two Citrix clients which had the IBM Rational Agent Controller installed. 25 users were split over both these machines.

Results:
Overall this SVT test was successful. No issues specific to the Notes Client or Domino were found, and it was determined that a multi-user Notes Client install accessed by users through Citrix works well and is stable.
Resource usage on the Rational Performance Tester machine meant we were limited to a maximum of 25 users for this particular setup, though a shorter run of 50 users was completed with no noticeable degradation to the performance of the Citrix clients, Citrix servers or, importantly, the Domino servers.
Additional hardware is planned for the 8.01 test time frame which should allow the performance of a greater number of users to be monitored.