Hannover and Citrix

by Volker Weber

Yesterday I talked to a friend about the difficulties of running Lotus Notes in multiuser environments. Traditionally Notes has installed in a directory /Notes directly off the root directory with a directory /Notes/Data to hold its data. The directory moved around, first to /Lotus/Notes, then to the /Programs tree. If you tried to run multiple user you moved the ./Data directory to the user' home directory, still sharing the program directory. You just needed to make sure that you were calling the correct notes.ini.

If you install the Notes Plugin for the Workplace Managed Client (WMC) on Linux, you will find that it wants to install to the user's home directory, thus allowing you to run more than one instance on the same machine. At first look this seems to violate the policy of installing shared components outside of the home directory. You will find however that only a minor part of the Rich Client Platform is shared. All the plugins are provisioned for each individual users according to policies on the management server. They are data.

This leads us to an often overlooked issue with the WMC. As you may be aware of, the WMC runs inside a Java Virtual Machine. This VM runs in the user space and from the outside it looks like 'all data'. This is not a problem as long as you are running a single instance of a WMC. As soon as you run more than one instance, you need to load each of them into a separate memory space. There are only data segments and no code segments that could be shared. At this point you can kiss your plans to run WMC or "Hannover" on Citrix goodbye.

There you have it: A good reason why Lotus will continue to deliver "Notes Classic".


Good point, Volker. Although I believe the Microsoft JVM supports JIT compilation, it's not clear to to me that this would make any difference.

Richard Schwartz, 2006-04-17

Alleviated to some degree by this

Stefan Tilkov, 2006-04-17

The widespread usage of CITRIX will be definitly a big issue for WMC implementations.
CITRIX has gone mainstream in corporate environments despite the fact that you will need 1 Server CPU per 10 concurrent Users.
CITRIX is popular because it allows to transform the FatWindows Client World to a "controlled" server environement.

Although is it not smart to implement huge serverfarms but it is cheaper than migrating current Windodws applications.

WMC is about changing the computer paradigm from Fat Windows Clients to webbased SmartClient runing on LINUX or Windows wiht efficient use of todays client hardware ressources.

Olaf Boerner, 2006-04-17

I haven't really thought this through yet, but what happens if there are noExecute flags in the memory for data segments? Does the JVM by-pass this? Would this be a possible security issue?

Ragnar Schierholz, 2006-04-17

This is a day one issue with Java that's only now being partially addressed. When bytecode is loaded from .class files, the in-memory version isn't the same as the disk version which makes it difficult to put in read-only shared memory pages. This was also an issue with ROMable Java code. Some vendors have adopted their own solutions for that.

Stefan's link to the class data sharing support in 1.5 is a partial solution but it's specific to Sun's JVM. WMC uses IBM's JVM. I'm not sure if IBM's JVM supports class data sharing. And even if it does, the fact that each user on the same machine gets his own copy of the plugins makes sharing moot.

I wonder where the Notes DLLs are put in the Hannover environment? If they're buried in per-user plugins as well, you won't even get sharing for native code.

Bob Congdon, 2006-04-17

I figured this problem out a while ago, hence my question on here...


Ben Rose, 2006-04-18

Old vowe.net archive pages

I explain difficult concepts in simple ways. For free, and for money. Clue procurement and bullshit detection.


Paypal vowe