Choosing a printer model for use in your Citrix XenApp or XenDesktop environment is both important and challenging. Printing from a Citrix Environment has a storied history littered with tales of user woe ranging from crashing servers to poor session log-on performance. There are third-party print driver solutions and the evolution of several first party products and features to deal with these headaches. This article is designed to help the network administrator and management navigate the printer acquisition process—from a technical perspective—in a way that has the least impact on user session performance. There aren’t many hard rules to process but rather preferred ways of operating with an analysis of the sometimes necessary trade-offs.
Strategies for Delivering Printers to Users
The first thing that needs to be understood is how users are accessing their printers. The way users access printers is important because system stability and performance depend on it. We’ll take a moment to look at each of these strategies with a quick note on their respective advantages and disadvantages; however this section will be light on details as the real focus of what is to be accomplished is in the next section—Deciding on a Printer.
Session Printers only exist for a user within their own session on the application server. This type of printer is not typically shared between users on the same Citrix application server (system administrators are an exception to this) and are the preferred way to deliver printer access to users. Below are different types of Session Printers and explanations that may help you decide on a print delivery method for your application hosts.
- Network Printers are printing devices that are automatically created at session start and are accessed from a print server. The user’s printer connection is directly between the user’s session on the application host and a print server where the printer is shared. In this scenario the Citrix software attempts to route print jobs from the application host directly to the print server. This has the advantage of saving network overhead and is straightforward to manage as the client device is not a factor for printing.
- Locally Attached Client Printers are a type of session printer where the print device is attached directly to the Citrix client device (examples of these devices may be thin client terminals or a Microsoft Windows based laptop). All print processing occurs on the application server and the print job is routed through the ICA session from the application server to the client device. Finally the device sends the print job to the locally attached printer using USB, LPT or COM ports. This type of session printer may use the Citrix Universal Print Driver or a manufacturer supplied print driver however the latter is not preferred. This method of routing print jobs is the only option for locally connected printers and has the disadvantage that all print processing overhead falls on the application host.
- Client Printers on the Network are redirected through the ICA session to the application host from the client device. When a print job is created it is processed on the application server. The application sends the print job to the client device, the client device then sends the print job to the print server, and then finally the print server sends the job to the print device. This approach is not desirable as all print processing occurs on the application server. Network bandwidth is wasted as the print job is routed through several locations where a more direct network path may exist between the application server and the print server. Similar to the Locally Attached Client Printers the session printer may use the Citrix Universal Print Driver or a manufacturer supplied print driver which is not preferred.
Server Local Printers are printers that are configured in the Windows operating system. These printers are available to all users on the application host and all of the print job processing takes place on the server. Processing print jobs on the server is undesirable because of the additional CPU overhead that comes with processing print jobs locally and the instability may be introduced by the introduction of third-party print drivers to the application host. A couple general rules of thumb would be to keep as many print drivers as possible off of your Citrix application hosts and defer processing of print jobs whenever possible to dedicate print server systems.
Deciding on a Printer
Citrix states that approximately 90% of printing issues are printer driver related. Print driver stability and functionality will be paramount in delivering a healthy and well-functioning application hosting environment. There are several approaches to identifying the drivers that can produce the best results for your environment.
- Whatever printers are used in the application hosting environment, try to use the Citrix Universal Print driver whenever possible. The Citrix Universal Print Driver will give users across the board a consistent print dialog and interactive experience from all application hosts. It is also a well-tested and stable driver that is unlikely to cause problems during user logon or while generating print jobs.
- If there is a requirement that a manufacturer provided print driver be used, this is sometime unavoidable, check vendor compatibility lists or contact the vendor directly to inquire about any known issues. If at all possible get the vendor or manufacturer to make a direct recommendation for you.
- Isolate the print driver if necessary. This is a feature of the Windows operating system (Windows Server 2008 R2 or later) that can be used to limit the impact poor print drivers can have on your application hosts or print servers. Doing this may increase system overhead but can also improve server stability. It is a work-around for poor drivers, not a complete solution to the problems, and users may still be impacted by driver instability as this feature doesn’t correct the core issue. The goal here is limit that impact.
With all that understood we need to know what printers to begin with. The problem is that Citrix does not provide us a single complete list of known “good” working printer drivers—other than the venerable Citrix Universal Print driver. The printer model that is chosen will dictate the printer drivers we will be working with for better or for worse. Citrix has moved much of the responsibility for making sure drivers and models are compatible to third-party vendors by allowing them to make submissions to the “Citrix Ready” support program. A lot of information has been aggregated from these vendors and made available on the Citrix Ready website. The site hosts a database of over 25,000 applications and devices can be searched through. The way to get the best results from the site would be to know what device you’re interested in ahead of time and search the repository. However, if a device model, let alone a product line has not been decided on this tool may not prove to be useful as there no listing and classification of items on this site.
In many cases you may know what print vendor you want to work with already—in which case depending on the vendor there may be hope that this will be easy! Many print vendors maintain their own lists of supported models for use in Citrix XenApp or XenDesktop environments. The following are several examples of just that:
- Canon Citrix Ready Certified Printer Driver
- Hewlett-Packard model list
- Ricoh driver list
- Sharp Devices (Pages 8 through 28)
- Xerox Supported print models
Much of deciding which printers to use from these vendor lists will include your typical factors when buying a printer for use in any environment, (cost, PPM (pages-per-minute), toner capacity, etc). What is unique to the application hosting environment is knowing how the user is going to connect to the printer from within the application hosting environment.
If the user travels frequently to customer locations—like a sales person—and needs to process and print transactions from the Citrix application hosting environment, then redirected locally attached client printers may be unavoidable. Selecting a model that functions properly with the Citrix Universal Print driver over a USB connection to the client would be preferable to a device that requires a manufacturer supplied driver.
In another scenario if a network printer is being selected it would be best to select a device that will likely support advanced printer functions (e.g. stapling, double-sided printing) from the Citrix Universal Print Driver. If this is not possible then it would be preferred to use installed print drivers that come with a Citrix Ready certification and support from the printer vendor. In a worst case scenario, the only option available to the Citrix Administrator may be to go with a manufacturer’s driver with known issues and simply use Windows Server to isolate the print driver. The driver may crash-and-burn, but hopefully it will not take the entire application host or multiple user sessions with it.
With the choice of printer out of the way the most important steps come next. Testing the target model of printer from your application hosts in a real world scenario will be key in deeming this process a successful one.
Testing the Solution
Citrix provides some synthetic print testing solutions. These synthetic tools should be used in combination with “real world” testing scenarios.
Some of the tools for print driver evaluation in your Citrix environment include the following:
- StressPrinters – http://support.citrix.com/article/CTX109374 – this tool tests the impact a particular print driver has on the user login process.
- Citrix Print Tool – http://support.citrix.com/article/CTX122962 – for older versions of XenApp/XenDesktop can be used to perform various maintenance tasks.
- Microsoft Print Management utility – this software is bundled with Windows Server 2008 or later and can be found in Programs and Features in the Turn Windows Features On/Off area. This utility can be used to review what print drivers are install on the system and remove them if necessary.
Before finalizing the decision on a printer, test the speed and output of the device when generating print jobs from all of your applications while using all of their possible functions. Test everything you possibly can from Windows test pages to all of your applications. Review the correctness of the output from all Microsoft Office applications and PDF files; while doing so be sure to try small documents as well as the occasional larger document. If the line of business application has multiple critical types of print jobs then print using all of these functions. Run these printing tests as a system user—do not use an account with Administrator level access.
Testing the print device up front may require extra effort from the administrator but it will mean less headaches for users and administrators alike later on.
If there is only one thing you take away from this article it is this, when selecting a print model for use in your XenApp or XenDesktop environment pay close attention to the device driver software involved. The strategy you choose for print delivery is secondary in importance to what print driver is used on your application hosts and print servers. The former can help mitigate potential issues while the later can eliminate them altogether.