XenApp 6 and 6.5 Documentation Scripts Updated October 9, 2011

Fellow CTP Wilco van Bragt, e-mailed me and told me that in my XenApp 6.5 script the Health Monitoring & Recovery (HMR) policy setting was not formatted properly. It took a little while to figure out how to work with the XML data returned by that policy setting. This also needed to be fixed in the XenApp 6 documentation script.

Here is what the policy setting looked like before:

Computer settings:
Server Settings\Health Monitoring and Recovery\Health monitoring - Value: Enabled
Server Settings\Health Monitoring and Recovery\Health monitoring tests - Value: <HMRTests xmlns:
xsi='http://www.w3.o
rg/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' version='0'><Tests><Test name='Citrix IMA Serv
ice test' file='Citrix\IMATest.exe' description='This test queries the service to ensure that it is running by enumerat
ing the applications available on the server.' interval='60' threshold='5' allowRunningCustomHmrTests='true' timeout='6
0' recoveryAction='AlertOnly' /><Test name='Logon Monitor Test' file='Citrix\LogonMonitor.dll' arguments='/SessionTime:
5 /SessionThreshold:50 /SampleInterval:600' description='Logon/logoff cycles are monitored to determine whether there i
s a problem with session initialization or possibly an application failure. If there are a lot of short cycles within
a short time period, a problem is assumed to exist.' interval='1' threshold='5' allowRunningCustomHmrTests='true' timeo
ut='1' recoveryAction='AlertOnly' /><Test name='XML Service test' file='Citrix\RequestTicket.exe' description='This tes
t requests a ticket from the XML service running on the server and prints the ticket.' interval='60' threshold='5' allo
wRunningCustomHmrTests='true' timeout='60' recoveryAction='RemoveServerFromLoadBalancing' /><Test name='Terminal Servic
es test' file='Citrix\CheckTermSrv.exe' description='This test enumerates the list of sessions running on the server an
d the session user information, such as user name.' interval='60' threshold='5' allowRunningCustomHmrTests='true' timeo
ut='30' recoveryAction='AlertOnly' /></Tests></HMRTests>

Here is what it looks like now:

Server Settings\Health Monitoring and Recovery\Health monitoring - Value: Enabled
Server Settings\Health Monitoring and Recovery\Health monitoring tests - Value:
	Name: Citrix IMA Service test
	File Location: Citrix\IMATest.exe
	Description: This test queries the service to ensure that it is running by enumerating the applications available on the server.
	Interval (seconds): 60
	Time-out (seconds): 60
	Threshold: 5
	Recovery action: AlertOnly

	Name: Logon Monitor Test
	File Location: Citrix\LogonMonitor.dll
	Arguments: /SessionTime:5 /SessionThreshold:50 /SampleInterval:600
	Description: Logon/logoff cycles are monitored to determine whether there is a problem with session initialization or possibly an application failure. If there are a lot of short cycles within a short time period, a problem is assumed to exist.
	Interval (seconds): 1
	Time-out (seconds): 1
	Threshold: 5
	Recovery action: AlertOnly

	Name: XML Service test
	File Location: Citrix\RequestTicket.exe
	Description: This test requests a ticket from the XML service running on the server and prints the ticket.
	Interval (seconds): 60
	Time-out (seconds): 60
	Threshold: 5
	Recovery action: RemoveServerFromLoadBalancing

	Name: Terminal Services test
	File Location: Citrix\CheckTermSrv.exe
	Description: This test enumerates the list of sessions running on the server and the session user information, such as user name.
	Interval (seconds): 60
	Time-out (seconds): 30
	Threshold: 5
	Recovery action: AlertOnly

Looks a little better now. Here is the relevant PowerShell code:

If($Setting.HealthMonitoringTests.State -ne "NotConfigured")
{
	line 3 "Server Settings\Health Monitoring and Recovery\Health monitoring tests - Value: "
    # remove the spaces in the [ x m l ] you see below in front of $XML
    # the code format utility I am using uses that for its own use
	[x m l]$XML = $Setting.HealthMonitoringTests.Value
	ForEach($Test in $xml.hmrtests.tests.test)
	{
		line 4 "Name: " $test.name
		line 4 "File Location: " $test.file
		If($test.arguments)
		{
			line 4 "Arguments: " $test.arguments
		}
		line 4 "Description: " $test.description
		line 4 "Interval (seconds): " $test.interval
		line 4 "Time-out (seconds): " $test.timeout
		line 4 "Threshold: " $test.threshold
		line 4 "Recovery action: " $test.recoveryAction
		line 0 ""
	}
}

NOTE: This script is continually updated.  You can always find the most current version by going to http://carlwebster.com/where-to-get-copies-of-the-documentation-scripts/

, ,

About Carl Webster

Webster is a Sr. Solutions Architect for Choice Solutions, LLC and specializes in Citrix, Active Directory and Technical Documentation. Webster has been working with Citrix products for many years starting with Multi-User OS/2 in 1990.

View all posts by Carl Webster

One Response to “XenApp 6 and 6.5 Documentation Scripts Updated October 9, 2011”

  1. pady Says:

    hi Carl Webster

    I’m running a Citrix XenApp5 with windows 2008 Serverfarm with around 50 servers in it,
    after about 2 weeks my users start getting a logon delay of 2 to 30 minutes.And after getting my publish desktop its open Credentials dailog box
    i m follow up with microsoft team as well as CITRIX for TMs but they are not proper solutuion to me
    please help me out for the trouble

    Reply

Leave a Reply