Friday, November 6, 2009

Provisioning XenApp Servers with SmartAuditor and MSMQ

A warning about Citrix SmartAuditor and Provisioning: if you have multiple Provisioned XenApp servers running the Agent, you are likely to run into recording issues--segments will be periodically dropped making some recordings seem to be "Live" forever, others will stop in the prematurely, and yet others will simply not play at all. The result depends on which part of the recording is dropped.

We are working on extending the XenApp Prep tool to take care of this.

The issue stems from the fact that the unique identifier for the Message Queuing Service on each Provisioned XenSpp Server is being duplicated --something which Microsoft has indicated is a "no-no." Since there are many servers with the same ID, when the MSMQ on the SmartAuditor Server-side performs a routine clean-up of its cache, what are actually new recording segments will be interpreted as older segments (because all segments bear the same MSMQ ID from the Provisioned XenApp servers, but their counters will be out of order) and will simply discard them.

The workaround is to perform the following steps (and this must be done on the XenApp master image each time before the image is switched back into Standard Image Mode):

On XenApp
1) In Private Image Mode, perform whatever changes to the master image.
2) Before shutting down, stop both the SmartAuditor Agent Service and Message Queuing.
3) Go to HKLM\SOFTWARE\Microsoft\MSMQ\Parameters\Machine Cache and delete the REG_BINARY value QMId.
4) Move up to HKLM\SOFTWARE\Microsoft\MSMQ\Parameters and create a DWORD value called SysPrep and set this value to 1.
5) Shutdown and Switch to Standard Image Mode.

Source: http://blogs.msdn.com/johnbreakwell/archive/2007/02/06/msmq-prefers-to-be-unique.aspx

The SysPrep flag will trigger a regeneration of the QMId REG_BINARY value just before the service starts. This regeneration takes place on start-up across all of the target hosts using the same vDisk thus allowing them to each have their own unique identifier for MSMQ.

The QMId will be different upon each reboot--even for the same target server. If you are just using SmartAuditor, this will NOT be a problem. However, if you are using some other software that utilizes MSMQ that is dependent for some reason on HOST-A and HOST-B having consistent QMId values, then this will present a problem. In which case, I'd wait for the XenApp Prep tool.

For those not using Citrix SmartAuditor or XenApp, but provision Windows member servers which use MSMQ, the solution will be a bit more complicated.

Note: before implementing any solution discussed here, consult the application vendor. The following depicted here is merely a suggestion and Citrix makes no guarantees, warrantees, and so on and so forth... TEST TEST TEST before doing anything to Production!

In Private Image Mode, before shutting down, set the Message Queuing service to Manual. Then deploy a script (via a Local Policy for the Computer or maybe as a GPO in an OU) that does the following:

1) Uses WMI to query for the computer's UUID.
2) Convert the return value to a string while stripping out the dashes "-."
3) Check the Registry for the presence of the QMId value. If it exists, delete it and move on...
4) Create the QMId REG_BINARY value and pass the modified UUID value to it.
5) Start MSMQ

We implemented this workaround using VBScript and it works well. There may be some delays if WMI has issues on start-up. As long as the value put into the QMId REG_BINARY conforms with being a 32-bit hex value, it should work. The result will be that each target device will have a unique but static QMId because whether the target is hardware of a Virtual Machine, the UUID for that host will always remain the same (unless you swap out the CPU of a hardware machine).

http://forums.citrix.com/thread.jspa?threadID=254805

Applications Appear to be Unresponsive During Session Launch because of Inaccessible Print Servers or Orphaned Printers

Symptoms

Applications appear to be unresponsive during session launch because of inaccessible print servers or orphaned printers.

Cause

Most users have Network Printers defined on their computers while at the work place. If the same users now bring their computers home (typically a laptop) these printers although still defined on the user’s machine are no longer available because the print server is not reachable from the user’s home network.

So if the user then makes an ICA connection from home to the workplace XenApp picks up these printers and tries to make them available for their session.

Because these printers are in an offline or unavailable state it can cause the loading of the session to be delayed for 15 seconds or more depending on how many Network Printers are defined on the user’s computer.

http://support.citrix.com/article/CTX122425

How to Enable Tracing for Web Interface Sites

http://support.citrix.com/article/CTX122427

Hotfix CPVS51SP1E002 - For Citrix Provisioning Services 5.1 and 5.1 SP1

Issue Resolved in this Hotfix

This Hotfix addresses the following issue reported against Citrix PVS 5.1 and 5.1 Service Pack 1 (SP1) release:

TR-9084: When using XenServer 5.0 or greater a streamed guest may experience hanging conditions while running a network intensive application. This only effects guests running Windows XP and Windows 2003.

http://support.citrix.com/article/CTX123266

In Windows Vista or in Windows Server 2008, when there are right-aligned tabs, the tabs are misaligned in an application that uses rich edit controls

SYMPTOMS
On a computer that is running Windows Vista or Windows Server 2008, you edit content in an application that uses rich edit controls. However, the tabs in the application are misaligned.

For example, if you change a left-aligned tab to a right-aligned tab, all the tabs after the left-aligned tab are changed to right-aligned tabs.

Note This issue does not affect the tabs that appear before the left-aligned tab.

http://support.microsoft.com/default.aspx?scid=kb;en-us;975848&sd=rss&spid=12925

Tuesday, November 3, 2009

Citrix Printing Tool 3.1

Citrix Printing Tool 3.1 helps configuring and troubleshooting the Citrix Printing subsystem on XenApp, XenApp Online Plugin, and XenDesktop.

Quick list of features :

When run on a XenApp server (4.0,4.5,5.0):

• Configures the advanced features for the Citrix Print Service (DefaultPrnFlags, Citrix Universal Printer properties, font handling, and so on).

• Displays information about the important DLLs and EXE files related to Citrix printing subsystem.

• Displays active policies for the ICA sessions in the farm (Note: on 4.5 and 5.0/2003, it requires fix #218994 currently being validated).

• Re-installs the Citrix Universal Print Driver (UPD) v3 driver (Win2000 and Win2003 systems only).

• Event log review: displays the printing related events from the farm servers’ event logs and links to related Citrix Knowledge Base articles when required.

• With the /passthrough switch, the ICA client tab is available on the server.

• The server list is listed in alphabetical order.

When run on a Desktop Delivery Controller (XenDesktop 3.0):

• Configures the DefaultPrnFlags implemented in the Citrix Print Service for the Virtual Desktop Agent (Virtual Desktop Agent) and pushes them to the VDAs.

When run on machine with XenApp Online Plug-in:

• Clears the retained printer properties.

• Enables client side debug mode for EMF and XPS printing.

• Forces the local printer settings into the ICA session.

• Forces the “old” printing path for 10.x and 11.x clients.

A list of settings for DefaultPrnFlags can be found here: CTX109193



http://support.citrix.com/article/ctx122962

Saturday, October 31, 2009

Remote Desktop Load Simulator

The Remote Desktop Load Simulation toolset is used for server capacity planning and performance/scalability analysis.

In a server-based computing environment, all application execution and data processing occur on the server. Therefore it is extremely interesting to test the scalability and capacity of servers to determine how many client sessions a server can typically support under a variety of different scenarios. One of the most reliable ways to find out the number or users a server can support for a particular scenario is to log on a large number of users on the server simultaneously. The Remote Desktop Load Simulation tools provide the functionality which makes it possible to generate the required user load on the server.
http://www.microsoft.com/downloads/details.aspx?FamilyID=c3f5f040-ab7b-4ec6-9ed3-1698105510ad&displaylang=en