A bit of background information; If a printer driver does crash the spooler service on a Terminal Server, but the driver seemed to work when initially tested, it's typically when multiple users try to use the same printer driver simultaneously, because the driver has poor performance when multi-threading. Thankfully, Citrix provide a very useful tool called StressPrinters.
Obviously, tracking down which printer driver is bad is time consuming, but the idea behind this (free) tool is that you can run it on a Citrix Server against any and all printer drivers to see which ones crash the spooler. You can tick boxes to enable multiple simultaneous connections (to reflect your live environment in this testing). Running this tool is temporarily destructive - ie, it *will* crash the spooler at some point. So it's definitely a tool for use when a server has been removed from the production farm for testing. It can also be used to compare the following among various drivers: • CPU load incurred while creating a printer using a particular driver • Time required to successfully create a printer using a particular driver If a customer asks me whether they can autocreate a certain printer in Citrix, I always try the Citrix Universal Printer driver first. If that doesn't work (and those intances are becoming fairly rare since UPDv4) then I run StressPrinters against the driver, simulate 5 concurrent creations and see what happens. If it doesn't crash the spooler, I use it. Unfortunately, running network connected printers from a print server requires that the drivers are on the TS box - and this is where StressPrinters is incredibly useful. With regard to general Spooler stability, it's worth knowing that the Spooler service is not designed with Terminal Services in mind, and unfortunately it's the most common weak link in any production terminal server, but by following the steps I've outlined you can normally control the problem. The community hoped that Windows 2008's Print Spooler would be user-mode (ie, it'll only crash the spooler for that user, not the entire system) but having looked at RC0 of Windows 2008, it's not looking particularly likely. :-( One more thing to consider is that applications can crash the Print Spooler too. This is less common, but there are some versions of apps such as Adobe Acrobat Reader which have been known to break the service - although I haven't heard of this recently, it's still possible - but harder to track down - this would be a case of fishing through Resource Manager to find out which apps were in use when the spooler died. A very labour-intensive task, but it's where to start looking if all your printer drivers StressTest okay. With regard to HP printers, it's normally not necessary to run the tool, because HP are helpful enough to release a document every quarter or so which indicates which printers they've tested under Terminal Services/Presentation Server and if so, which driver to use. In my experience, it pays to follow this guide very closely (ie, just updating to the latest and greatest driver is usually a quick route to getting yourself a support headache). That HP document is available here; At the time of writing the latest version is January 2008.
|