At one of my customer place, we need to publish mstsc.exe (RDP Client) through XenApp 4.5 on Windows 2008 x64. Users complained about a weird keyboard behaviour. While typing in their session, users stated using shift for the first letter, the second letter was upper case as well. I’va made a quick video to show you this issue, you can watch it bellow :
On the Citrix Web Interface, one ICA file is used as a template for ICA file creation, default.ica. I edited this file to check what was in :
[WFClient] COMAllowed=Off CPMAllowed=On ClientName= KeyboardTimer=50 MouseTimer=10 OutBufCountClient=118 OutBufCountHost=118 OutBufLength=512 PersistentCacheEnabled=On ProxyFavorIEConnectionSetting=Yes ProxyTimeout=30000 ProxyUseFQDN=Off RemoveICAFile=yes TransparentKeyPassthrough=Local TransportReconnectEnabled=On UpdatesAllowed=Off VSLAllowed=On Version=2 VirtualCOMPortEmulation=Off
In the WFClient (section bellow) I found the line KeyboardTimer=50 which mean at the end of the specified time period the keyboard data are sent to the server. I didn’t wanted to modify this value without beeing able to test it before, so I right clicked on the published Remote Desktop icon to download the launch.ica file (generated with the defgault.ica and the 50ms value) saved it and the edited it changing the keyboardTimer value to 25 then 15 then 10 and finnaly 5. I had the issue until the last value 5ms tested.
Now I need to make some more test to check if the bandwith consumed is really highter compare with the 50ms default value. I will update this post with the statistics result (Edgesight)
Update : 1st July 2010
I’ve used Citrix Edgesight to check what’s going on while I run some test toward ICA Session Traffic and ICA Session I/O. To run this test I created a script which open notepad and type a text (about 30/40 lines) so the same text input will be use for all the tested values.
I made this test with KeyboardTimer=50 (default), KeyboardTimer=25 and KeyboardTimer=5 and here are the results :
I did blank the “non needed” data to avoid confusion and as you might notice, there is not a huge difference between these different values. I decided to commit the change for wan users and I will check in deeper statistics will real usage on weeks/month, before/after the change.
I wanted to blog this issue because this is an annoying one and you might search a long time around the mstsc configuration, registry tips and tunning before finding out this was the KeyboardTimer value in the default.ica file on the Citrix WebInterface. You can also add the line KeyboardTimer=## (your value) to your WFCLIENT.INI file in your user profile directory, it should make the trick if you don’t want to commit this change for everyone using the WebInterface.