Load balancing LPD print queues

To load balance LPD print queues, do the following:

  1. Open the Print Management console and create identical Print-to-Me queues on every DRE print server. The Print-to-Me queues on all DREs must have the same name (including share name), driver (name and version), permissions and configuration.
  2. Install the LPD Service role on every DRE.
  3. Verify that the LPD Service is running correctly and can receive print jobs via LPR. by pausing the Equitrac Print-to-Me Queue and then running the following command from another computer on the network that has the LPR port monitor installed. Modify the parameters to suit your environment.
    LPR -S 1.2.3.4 -P PrinterName -o DocumentName.txt
  4. Create a simple batch file with a command to stop the EQ DRE service, and save the batch file to a local directory on each DRE.
  5. Go to Administrative Tools > Services and open the Print Spooler service and configure the Recovery options for the Print Spooler service to run the batch file upon failure.
  6. Open Task Manager and end the Print Spooler process (spoolsv.exe), and confirm that once the Print Spooler service has stopped, the EQ DRE service has also stopped. Repeat this process on each EQ DRE.
  7. On the NLB appliance, do the following: (consult your NLB appliance vendor for support):
    • Configure the Virtual Service IP Address (VIP) in the same subnet as the DRE server.
    • Set the Ports to 515.
    • Set the Protocol to TCP.
    • Set the Load balancing Forwarding Method to Direct Routing (i.e. layer 4/direct routing/direct server return/N-Path).
    • Ensure the Persistent checkbox is selected. Affinity/Persistence/Stickiness must be enabled.
    • Set the Check Port for server/service online to 2938.
  8. If you wish to use hostnames when specifying the LPD server on each client, then on the DNS server, create a hostname and corresponding “Host (A)” record to match the previously created VIP. If you wish to use only IP Address, then you can skip this step.
  9. On a client workstation, create a standard TCP/IP print queue, with an LPR port configured to point to the previously created hostname and VIP.
    For mass creation and deployment of local LPR print queues, the following scripts can be run:
    • Install the print driver (usually served from a shared folder on a file/print server):
      cscript C:\Windows\System32\Printing_Admin_Scripts\en-US\prndrvr.vbs -a -m "Print Driver Name" -i \\server\folder\printdriver.inf 
    • Create the LPR port:
      cscript C:\Windows\System32\Printing_Admin_Scripts\en-US\prnport.vbs -a -r PrintLPD -h 10.10.10.205 -o LPR -n 515 -q EQFY -2e 
    • Create the print queue, assign the print driver and attach the LPR port:
      cscript C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs -a -p Local_QueueName -m "Print Driver Name" -r "PrintLPD" 
  10. Print a job to the newly added LPR print queue and verify that it processed successfully. The job is listed in the Equitrac Print Queue Viewer on the first DRE.
  11. On the DRE that was just printed through, stop the print spooler service, and verify that the EQDRE service also stops.
  12. On the client workstation, verify that the load balanced print queue is still online.
  13. Submit another print job and verify that it processed successfully. The job is listed in the Equitrac Print Queue Viewer on the second DRE.
    In order to verify which DRE the job is sent to, you may need to access the NLB appliance’s traffic logs.
  14. Start the print spooler service on the first DRE, and verify that the EQDRE service restarts.
  15. Log into a release device and verify both jobs are listed for release.