Printer Pooling Improvements in Windows NT 4.0 Service Pack 6

ID: Q242035

IMPORTANT: This article contains information about editing the registry. Before you edit the registry, make sure you understand how to restore it if a problem occurs. For information about how to do this, view the "Restoring the Registry" Help topic in Regedit.exe or the "Restoring a Registry Key" Help topic in Regedt32.exe.

The information in this article applies to:
  • Microsoft Windows NT Server version 4.0 SP6
  • Microsoft Windows NT Workstation version 4.0 SP6
  • Microsoft Windows NT Server version 4.0 SP6, Terminal Server Edition
  • Microsoft Windows NT Server, Enterprise Edition version 4.0 SP6


SUMMARY

Functionality has been added to Windows NT 4.0 Service Pack 6 (SP6) to improve printer pooling in Windows NT. The following problems are addressed:

  • A print job hanging on a printer in a printer pool should resume after the error condition has been resolved.


  • A print job should not be sent to a printer from a printer pool if the printer is not available. (An exception is a printer status indicating a low-toner state, which is not considered an error. Even if the printer is in this state, the job is sent to the printer.)


  • If the print job is not printed within a configurable amount of time, the spooler should be able to redirect the job to the next available printer in the pool.



MORE INFORMATION

To obtain the latest Windows NT 4.0 service pack, click the link below:

http://www.microsoft.com/Windows/ServicePacks/
WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.

For information about how to edit the registry, view the "Changing Keys and Values" Help topic in Registry Editor (Regedit.exe) or the "Add and Delete Information in the Registry" and "Edit Registry Data" Help topics in Regedt32.exe. Note that you should back up the registry before you edit it. If you are running Windows NT, you should also update your Emergency Repair Disk (ERD).

Two registry values have been created under the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Providers
These values can only be configured per server:
  • RestartJobOnPoolError (REG_DWORD) - configures the time (in seconds) after which a job in the pool should be restarted if the port is in an error state and the error condition has not been resolved.


  • RestartJobOnPoolEnabled (REG_DWORD) - Any value greater than zero enables this behavior, 0 disables it.


To make this work, the spooler must know whether the port is in an error state. Therefore, the port monitor must update the spooler with the device status.
Some printing pools scenarios that explain the functionality include:
  • The most common case is to print a job to a pool/printer that is out of paper. The time for updating the printer status is long enough that the printer buffer becomes full before the spooler determines that the port is in an error state and stops writing to the printer. Because of this, you are informed that writing to printer did not succeed. If the restarting behavior is enabled after ten minutes:


    • If you click Retry, the job is restarted after ten minutes.


    • If you click Cancel, the job is deleted.


    • If you do nothing, the job is restarted after ten minutes and the window is closed when job is restarted.


    • If the restarting behavior is not enabled, the window remains on the screen until you click one of the available options.


  • If the error state persists more for longer than the time set by the RestartJobOnPoolEnabled value, the job should be restarted on another port.


  • If the port is in an error state but recovers before the time for restarting expires, the job should continue to be printed on the same port.


  • If Simple Network Management Protocol (SNMP) is disabled, the job stops responding (hangs) on the same port even if restarting is enabled.


  • If SNMP is enabled but the printer does not support SNMP, the job hangs on the same port even if restarting is enabled.


  • If SNMP is enabled but the printer turned off, the job hangs on the same port even if restarting is enabled.


  • If restarting is disabled, the job hangs on the same port (the same as the current behavior).


  • If restarting is enabled after a time less than the time needed for the spooler to determine the status of the device and take the proper action (this a per-port monitor setting), the job hangs until the spooler is informed of the device status and it is restarted afterwards.


NOTE: This fix also includes the fix for the issue described in the following Microsoft Knowledge Base article:
Q239907 Too Many Local Printers Can Cause Unsuccessful Boot
If you install this fix and then upgrade to Service Pack 6, you lose all printers if you do not set the UseSoftwareHive registry setting as discussed in the article listed above.

Additional query words:

Keywords : kbenv kbtool NT4SP6Fix
Version : winnt:4.0 SP6
Platform : winnt
Issue type : kbinfo


Last Reviewed: January 28, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.