Let’s say that you’re a retail establishment that uses XenDesktop or a XenApp hosted application for point of sale. Your customers expect a fast, pleasant transaction, which includes printing the receipt and handing it to the customer . . . without a wait. How can you ensure that happens?

Print jobs are sent across the WAN based on standard network printing or the ICA protocol. When the session printers policy is configured and print job routing is not enabled, print jobs go directly from the XenApp server to the network printer. When auto-created printers are enabled, print jobs are sent from the XenApp server to the client device via ICA and then to the printer. Although it may seem counterintuitive, that extra step is beneficial because it ensures that print jobs traverse the WAN as compressed ICA traffic.

By default, ICA print jobs have the lowest priority because, in general, a short delay is acceptable. But when a customer is waiting for the receipt, delay is unacceptable. So, how should you prioritize print jobs?

First, take a look at your WAN links. If the WAN has overall congestion, chances are that everything is running slowly. Branch Repeater, including the new VPX option, is a great solution for optimizing WAN traffic. Of course, Branch Repeater also optimizes ICA, including ICA print jobs.

Although ICA traffic is inherently compressed and thin, there are some adjustments that can be made to ensure that print traffic is optimized. Let me explain.

ICA traffic is split into virtual channels. The critical virtual channels, also known as Thinwire, are based on Priority 0 (the highest), and these are responsible for sending mouse movements and keystrokes. Printing, on the other hand, is designated as background traffic by default and is assigned to Priority 3 (the lowest). Thus, print jobs have less relevance and may seem to execute slowly.

There are a few ways that print jobs, in this case the customer receipt, can be configured so that the priority is elevated:
• Change the priority of the printing virtual channel. Keeping in mind that this will mean that all print jobs, not just the customer receipts, will be elevated in priority. This is done by changing the registry key HKLM\System\CurrentControlSet\Control\Terminal Server\Wds\icawd\Priority. Open the Priority value and change the value data for CTXCPM from 3 to a lower number. Be careful about promoting printing traffic equal to or higher than Thinwire.
• Configure Branch Repeater such that the CTXCPM virtual channel (Priority 3 by default) is not starved for bandwidth. Being that background traffic has the lowest priority, there may be a tendency to think that it’s not important (although the customer waiting for the print job certainly is important!).
• Allocate sufficient bandwidth for printing. Within Citrix policies, the per-session bandwidth allocation for printing should be sufficient to address the requirement. Even if Branch Repeater is being used, it will not grant additional bandwidth beyond the Citrix policy configuration.
• Use the same print driver for similar print jobs. Second pass and subsequent print jobs that use the same driver can be optimized, whereas those print jobs that use different drivers are unique. Assuming that your customer receipt has a logo on it, as well as a header and trailer, the only unique data is the transaction itself. Where possible, confirm that the Universal Print Driver works fine with your printers, and then configure the Citrix printing policy accordingly.

Anytime you prioritize traffic on your network, it means that something else gets a lower priority. It’s kind of like your “to do” list: not everything can be a top priority when you’re really busy. Of course, if you don’t have a specific need to prioritize printing, it’s best to leave it to the default settings.

As a side note, Citrix is working to enhance printing and has announced Project Laser as part of future HDX Nitro technologies. More aggressive compression will be used to deliver faster print jobs. Stay tuned!

On August 25th, I’ll be presenting the TechTalk session Optimizing XenApp/XenDesktop Across the WAN. We’ll deep dive into the ICA protocol, including dissecting a few packets and much more, as well as address how you can optimize your XenApp/XenDesktop traffic with and without Branch Repeater. Please join me!

Jo Harder, Senior Architect
@joharder