Printers Enter Offline State While Using Citrix Universal Print Server

Printers Enter Offline State While Using Citrix Universal Print Server

book

Article ID: CTX138854

calendar_today

Updated On:

Description

When there is more printing activity, printers mapped to a Citrix Universal Print Server goes offline. Alternatively, some applications might become unresponsive or fail when opening a print dialog box.

Resolution

Recommended: Customers should upgrade to UPS 7.6.x, as the following is not relevant for current versions of UPS.

Citrix Technical Support has a code change that can be applied to expose a Registry Key allowing the permanent configuration of the number of XTE worker threads. The code change is not available for download at this time. Call Citrix Technical Support to acquire the change.

An immediate method to mitigate the issue is to edit the httpd.conf file on the print server. The caution to this method is that the changes made to the httpd.conf will be obliterated if either the server is rebooted or if the Citrix Universal Print Service is restarted.

Httpd.conf File Change

To make the httpd.conf file change add or find for <IfModule mpm_winnt.c>.
Below that section, two values are added or changed: ThreadLimit and ThreadsPerChild. Following is an example of a modification to the values in this section:
 
<IfModule mpm_winnt.c>
   ThreadLimit 1919
   ThreadsPerChild 1920
   MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_winnt.c>
   ThreadLimit 150
   ThreadsPerChild 151
   MaxRequestsPerChild 0
</IfModule>

How many threads must be used

Citrix Technical Support is investigating ways to right-size this value. However, following formula can be used to identify how many threads are needed:
  1. Determine an average of how many printers per Citrix Universal Print server are mapped in a user’s ICA session.

  2. How many users in all will be mapping printer to a given Citrix Universal Print Server.

  3. Multiply #1 and #2, this gives you the number of threads needed. Use this value for the ThreadLimit value in the httpd.conf file.

  4. For the ThreadsPerChild value, add 1 to the value used for ThreadLimit.


Problem Cause

Certain print dialogs cause UPClient (the client side component of Citrix Universal Print Server) to make excessive connections to the print server. These connections eventually prevent the print server from taking on additional connections and any new printers appear offline. 

To verify this is the case, go the XTE log file on the Citrix Universal Print Server. The log file is located at C:\Program Files(x86)\Citrix\XTE\logs\error.log.

In the log file, find one or both of these entries:
[Fri Aug 16 15:37:29 2013] [warn] Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting
[Fri Aug 16 15:40:27 2013] [warn] (OS 64)The specified network name is no longer available.  : winnt_accept: Asynchronous AcceptEx failed. GetLastError=64 (The specified network name is no longer available.\r\n).

The first entry is the warning indicating that the Citrix XTE Server is out of worker threads. The second warning with the (OS 64) error is a report of a WinSock error caused by a failed attempt by the client to connect to the service. There might be many of these entries - each entry corresponding to a failed connection attempt.

It is important to understand that both warnings must be present for the symptoms to synchronize with the cause.

Issue/Introduction

This article provides a fix for printers offline state while using Citrix Universal Print Server 1.x