Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

You encounter printing issues after a new OEM print driver, a printer hotfix, or a service pack is installed on a Windows Server 2003-based clustered printer server


View products that this article applies to.

Symptoms

On a Windows Server 2003-based clustered printer server, you install one of the following:
  • A new OEM printer driver
  • A printer hotfix
  • A service pack that updates the Unidrv.dll file or the Ps5ui.dll file
After you take this action, you may experience one or more of the following symptoms:
  • The printing performance is decreased.
  • Print jobs take a long time to be completed.
  • Delays occur when you try to view printer properties.
  • Failures occur during a cluster node join process.

↑ Back to the top


Cause

This problem may occur if you install a new OEM printer driver, a printer hotfix, or a service pack on a Windows Server 2003-based clustered printer server that has many Microsoft Universal Print driver (Unidrv)-based Printer Control Language (PCL) printer drivers or many PostScript (PScript5)-based PS printer drivers installed.

When you install a new OEM printer driver, a printer hotfix, or a service pack that updates the Unidrv.dll file or the Pscript5.dll file, the clustered printer server may have to spend a long time regenerating the parsed binary printer description files (.bud files and .bpd files) that are used to increase spooler efficiency for these drivers. (If you do not have the specific hotfixes installed, it may take the clustered printer server up to three weeks to perform this task.) This is a one-time parsing operation per physical node and does not occur after the parsed binary .bud and .bpd files are successfully generated.

Binary .bud and .bpd files that are generated from generic printer description (GPD) files must be regenerated, because the GPD parser file version has changed. After the Unidrv-based PCL printer drivers and the PostScript-based PS printer drivers are parsed, the spooler can again receive print jobs. Because of this situation, we recommend that you schedule new OEM printer driver, printer hotfix, or service pack installations on clustered printer servers that have many Unidrv-based PCL or PostScript-based PS printer drivers in a timeframe that allows for up to four hours for .bud file compilation.

↑ Back to the top


Workaround

If the server has Windows Server 2003 Service Pack 1 installed, you can apply the following hotfixes to ease the performance issues. However, these hotfixes may not resolve this issue completely.
  • Hotfix 916961. This hotfix updates the Localspl.dll file. For more information about this hotfix, click the following article number to view the article in the Microsoft Knowledge Base:
    916961 FIX: You experience slow performance when you try to print or when you view printer properties in Windows Server 2003 S about this hotfix
  • Hotfix 893225. This hotfix updates the Comdlg32.dll file and the Spoolss.dll file. For more information about this hotfix, click the following article number to view the article in the Microsoft Knowledge Base:
    893225 Printing performance problems on Windows XP Service Pack 2 and Windows Server 2003
Or, you can install Windows Server 2003 Service Pack 2. This service pack contains these two hotfixes.

In Windows Server 2003 Service Pack 1, the Rundll32.exe PSetupUpgradeClusterDrivers process has to run until it is completed to allow for the successful upgrade of printer drivers. This could require up to three weeks unless you have the post-Service Pack 1 hotfixes (hotfix 916961 and hotfix 893225) installed. If you have the post-Service Pack 1 hotfixes installed, this requires from one to four hours.

If you upgrade to Windows Server 2003 Service Pack 2, you must browse to the following folder and then sort the folder by date.

C:\Windows\System32\Spool\Drivers\GUID\Drivers\w32x86\3

You notice that .bud files and .bpd files are being updated.

Note It may require from one to four hours for these files to be updated on a server that is running Windows Server 2003 Service Pack 2.

If you cannot wait for the server to complete the parsing of all the Unidrv-based PCL printer drivers, you must manually remove all cached binary printer description files (.bud files) and then let them be automatically re-created later. To do this, follow these steps:
  1. Take the print resources offline, and then stop the spooler service.
  2. Export the following registry key:
    HKLM\Software\Microsoft\Windows NT\CurrentVersion\Print\Cluster\ClusterUpgrade
  3. Delete the ClusterUpgrade registry key in Registry Editor.
  4. Browse to the following directory, and then delete all the .bud and .bpd files in the directory:
    C:\windows\system32\spool\drivers\GUID\drivers\w32x86\3
  5. Restart the spooler service, and then bring the print resources online.
Note After you follow these steps, the first print job to the print queue may fail. However, all the later print jobs are successful.

↑ Back to the top


More information

When this issue occurs, you may notice the following:
  • A Rundll32.exe process is executing with the following command:
    rundll32.exe ntprint.dll,PSetupUpgradeClusterDrivers \\ServerName
    Note When you have Windows Server 2003 Service Pack 2 installed, the Rundll32.exe process is not displayed.
  • The presence of the following registry entry indicates the print resources that have yet to be completed on a given node:
    HKLM\Software\Microsoft\Windows NT\CurrentVersion\Print\Cluster\ClusterUpgrade <GUID for the cluster resource>
    Note In this registry entry, the placeholder <GUID for the cluster resource> represents the GUID for the cluster resource.

    As soon as the PSetupUpgradeClusterDrivers process is complete on a given node, the GUID value for the associated resource will be deleted. If all the GUID values are deleted, the ClusterUpgrade registry key is also deleted.
  • In the event log, the following event is logged:

    Event Type: Warning
    Event Source: Print
    Event ID: 20
    User: NT AUTHORITY\SYSTEM
    Description: Printer Driver [Manufacturer] [Name] for Windows NT x86 Version-3 was added or updated. Files:- UNIDRV.DLL, UNIDRVUI.DLL, UNIDRV.HLP, [specific printer driver files], locale.gpd, p6disp.gpd, p6font.gpd, pcl5eres.dll, pclxl.dll, pclxl.gpd, pjl.gpd, stdnames.gpd, ttfsub.gpd, unires.dll.

  • If you sort the following directory by date, you notice the .bud and .bpd files that are being updated:
    C:\windows\system32\spool\drivers\GUID\drivers\w32x86\3
  • When you check the Cluster.log file in the C:\Windows\Cluster directory, you may notice the following:
    0000163c.00001120::2003/03/25-12:00:00.001 INFO [DM] Setting value of DsKeyUpdate for key Resources\<GUID_for_print_resource>\Parameters\Printers\[PrintQueueName] to 0x40000000
    
    ==========================================
    Second node cannot successfully start the cluster service and fails to join: 
    cluster.log entries:
    WARN [GUM] Join attempt for type 1 failed 5083
    WARN [NM] RpcExtErrorInfo: Error info not found.
    WARN [DM] GumEndJoinUpdate with sequence xxxxxxxxxx failed with a sequence 
    mismatch
    may also see continuous entries:
    INFO [Qfs] WriteFile 1a8 (hbin) 32768, status 0 (0=>0)
    INFO [Qfs] ReadFile 1ac (hbin) 32768 32768, (0=>0) 0 status 0
    

↑ Back to the top


References

For more information, click the following article number to view the article in the Microsoft Knowledge Base:
832219 Users cannot print after you install a service pack, update rollup, or printer hotfix on a server in Windows 2000 or in Windows Server 2003

↑ Back to the top


Keywords: KB967499, kbprb, kbsurveynew, kbtshoot, kbexpertiseadvanced

↑ Back to the top

Article Info
Article ID : 967499
Revision : 1
Created on : 2/23/2009
Published on : 2/23/2009
Exists online : False
Views : 268