We have a desktop Java application running within a Citrix Metaframe server farm and the performance, specially while starting up the app, is very unreliable.
Sometimes it takes 15 seconds and sometimes it takes over a minute. It's really unpredicatable.
Is there any way to optimize running Java desktop applications within Citrix Metaframe Terminal server sessions to a more reliable performance level?
Are there any optimization directed specifically toward Java, such as pre-load JVMs or something like that?
Any help would be greatly appreciated.
We were plagued with this for several months, starting in January-February 2009. An MS support team finally determined it was caused by excessive registry locking, emanating from the IE browser helper object (BHO) for Java.
I don't think the root cause was java per-se, as we had not made any changes to Java for a long time. Our workaround was to add a deny acl for all users to the Java libraries that are used for the bho:
(Java 6):
C:\Program Files\Java\jre6\bin\jp2ssv.dll
C:\Program Files\Java\jre6\bin\ssv.dll
May break some applications, but worked for us with JRE6. Doing this for older versions of JRE5 did break some applications.
Do this happen when this is the only application running? Java apps normally do not have any issue with Citrix.
Also do you get the same results when launching the app at the console?.