Microsoft KB Archive/173682
Article ID: 173682
Article Last Modified on 6/29/2004
- Microsoft SNA Server 3.0 Service Pack 4
- Microsoft SNA Server 4.0
This article was previously published under Q173682
Multiple print jobs destined for the same physical printer are sent to the SNA Server print service; the print sessions are configured to use a PDT file. The print service processes only one job at a time until all are printed, rather than spooling multiple jobs at once. You can see this problem in SNA Server Manager when you view the status for the configured print sessions; only one print session at a time is in a spooling state.
If a PDT file is not being used for the print sessions, all print sessions that have been sent a print job will be in a spooling state.
The SNA Server print service calls the StartDocPrinter() API to open a connection to a printer when a print session is configured to use a PDT file. The StartDocPrinter() API returns a printer handle to the print service when the call completes successfully. When multiple print jobs are sent to different print sessions configured to print to the same printer, the print service calls StartDocPrinter() multiple times, using the printer handle that was returned by the initial StartDocPrinter() call to open multiple connections to the printer. The first call to StartDocPrinter() succeeds, but subsequent calls fail with an ERROR_INVALID_PRINTER_STATE error. The print service tries to open the connection to the printer every few seconds for each of the failed connections, so all of the print jobs eventually print as the previous jobs complete.
The StartDocPrinter() API does not allow multiple connections to be opened to the same printer using the same printer handle. The printer handle can be reused after the intial print job is completed.
Microsoft has confirmed this to be a problem in SNA Server versions 3.0 and 3.0 Service Pack 1 (SP1). This problem was corrected in the latest SNA Server version 3.0 U.S. Service Pack. For information on obtaining this Service Pack, query on the following word in the Microsoft Knowledge Base (without the spaces):
S E R V P A C K
With the fix applied, the SNA Server print service always opens a new printer connection for each new print session. Each print session will then get a different printer handle, which allows all print jobs to be processed concurrently when a PDT file is used.
Keywords: kbbug kbfix kbnetwork KB173682