How to Troubleshoot the XenDesktop VDA - Support - Citrix

How to Troubleshoot the
XenDesktop VDA
Karen Sciberras
Escalation Engineer
Agenda
• How to troubleshoot effectively
• XenDesktop Architecture
• Troubleshooting VDA Connectivity
• Tools
• Case Studies
Effective Troubleshooting
• Narrowing down the faulting component
• Collect further information for rapid debugging
• Avoids different root causes treated as same issue
• Avoids issue being handed around the teams
• Helps resolving the root cause instead of the symptoms
How to effectively troubleshoot issues?
• Understand the architecture
• Learn the shortcuts and tips
• Preserve the VDA state
XenDesktop Broker System Architecture
• Desktop Delivery Controller
(Broker) Farm
Licensing
• Uses core XenApp
technology
XML
WI
User
• Delivers and controls
DDC Servers
VM Host
(XenServer, Hyper-V, VMware)
Web
Service
• IMA, licensing, Web Interface,
Web Service
access to virtual desktops
•
•
•
•
VDA technology independent
User authentication / single sign on
VM power management
ICA policy decision
AD
VDAs
(VMs, Blade PCs)
XenDesktop Architecture
DDC
VDA
Workstation
Pool Manager
IMAProxy
XML Svc
(VMWorkstation
or blade PC)
(VM or blade PC)
Citrix
Desktop Svc
Citrix ICA
Svc
Drivers
“XTE” Svc
Controller Svc
WCF
IMA
VDA Registration
DDC Server
VDA
WCF
VDA
Desktop
Service
Controller
Service
DDC
п‚Ѓ Service starts, looks up farm OU
п‚‚
DC for
all at
SCPs
in that OU
п‚ѓ Service
Service queries
selects one
DDC
random,
IMA
up DDCKerberos
computerticket
account
п‚„ looks
OS retrieves
for DDC
and initiates a connection through WCF
 Service validates that caller is member
of “Controllers” group, and sets
configuration from XML Blob
XML Blob
LDAP
AD
п‚… DDC service receives connection
 Service looks up VDA computer account
 DDC checks that computer account
(SID) is in published group in IMA
п‚€ Service initiates WCF connection to
VDA and sends XML blob
п‚Љ Call succeeds, VDA marked registered
Troubleshooting VDA Connectivity
XenDesktop Brokering
End user
Web Interface
Launch.ica
Clicks on desktop group
DDC
Request for brokering
StartListening()
Desktop Svc
StartListening()
ICA Svc
(PicaSvc)
ICA Stack (Listening)
VDA
XenDesktop ICA Connection
VDA
End user
ICA Connection
To DDC: Exchange Ticket
CGPService
Desktop Svc
Authentication
Logon
Lock()
SetRemote
PushPrelogonData()
ICA Svc
(PicaSvc)
PicaDisplayMgr
ConnectionAccept()
TcpIp.sys
ICA Stack
Thinwire
ICA Service (PicaSvc)
• Orchestrates ICA connection, components, and features
• Event driven (Connect, Disconnect, Logon, Logoff, etc.)
• State machine per session to handle events
ICA Service Log File
• Most important log file in the VDA
• Allows us to narrow down the faulting component
• How to configure: KB Article CTX118837
• Use trace level 5
• Level 9 is excessive for initial troubleshooting
Anatomy of the PicaSvc log file
• Thread ID
• Entry/Exits
• State Machines Traces
• Session IDs
• PicaSvc log file common pitfalls
• Search terms that need to be avoided. (error, exception, broken)
• Instead search for “fail”
• Filtering the trace messages
Troubleshooting Tools
Troubleshooting Tools
• XDPing
• Clear-text CDF Tracing
• Log files: Workstation Agent log, PortICA log
• CDF Control
• CDF Marker
• PerfMon, PsExec,
Case 1
• RPC_S_INVALID_BINDING is not a real error
• “ConnectAccept failed” is an ICA stack problem
• Next step: CDF
• MF_Driver_Wdica
• Portica_Driver_Picadd
• Portica_Driver_Td
• Provide the CDF log with the PicaSvc log for further analysis
Case 2
• First few SwitchDisplayToLocal failure is not fatal. State
machine shows success.
• No issues found on the VDA
• Next step:
• Collect traces from DDC and Workstation Agent
• Collect network trace from client to verify if ICA Connection attempt
Desktop Delivery Controller Log
• Enable Clear-Text CDF tracing
• Read through Log file using Session Parser
• Historical usage
• Detailed Session data
• Connection tracking per user or per workstation
KB Articles
• XDPing – CTX123278
• DDC and WorkStation Agent Logs – CTX117453
• ICA Service (PortICA Log) – CTX118837
• CDF Marker – CTX124577
• CDF Marker and PSExec – CTX125345
• Session Parser – CTX124012
CDFMarker
• CDFMarker may not send a CDF Trace Message from the Command Line - CTX125346
• How to Use CDFMarker and PerfMon when a Process Intermittently Spikes - CTX125347
• How to Use CDFMarker to Add CDF Tracing to Batch Files and Scripts - CTX125486
• How to Use CDFMarker to Mark an Intermittent End User Issue in a CDF Trace CTX125503
• How to Use CDFMarker and PerfMon to Identify Large LHC Writes - CTX125634
• How to Mark High Bandwidth in a CDF Trace using CDFMarker and PerfMon - CTX125724
• How to Mark a Service Termination in a CDF Trace using CDFMarker - CTX125736
• How to Mark when a Process Crash Occurs in a CDF Trace using CDFMarker - CTX125750
Takeaways
пѓјImportance of troubleshooting effectively
пѓјXenDesktop Architecture and Logon Process
пѓјXdPing
пѓјLog file on the DDC Controller Svc and VDA Desktop Svc
пѓјLog file on the ICA Service
Remote tracing – CDF Control, CDF Marker and PSExec
пѓјSession parser to read DDC log file
Before you leave…
• Recommended related breakout sessions:
• Debugging XenApp and XenDesktop Issues by Lalit Kaushal.
• Session surveys are available online at www.citrixsummit.com
starting Thursday, 7 October
• Provide your feedback and pick up a complimentary gift card at the registration desk
• Download presentations starting Friday, 15 October, from your My
Organiser Tool located in your My Synergy Microsite event account