Problem with getting CUPS 1.3.5 to print to paused printer queues
h.blischke at srz.de
Wed May 21 07:54:42 PDT 2008
Basil Udoudoh wrote:
> The problem that we are having seems to be a problem with the current implementation of CUPS on Leopard. We are running it on the current generation 20'' iMac. We are not able to create a local print queue that will print successfully to our on-campus print management system. Our Current print management system handles printing as follows:
> 1. User prints on local machine to a local printer queue configured to print to the print management server.
> 2. The print job is then pushed to our print management server, into a print queue on that server that is always paused.
> 3. User goes to one of the designated on-campus print release stations and releases the job.
> 4. The print management software then takes the job out of the paused queue and prints it to its designated printer, based on which print release station is printed to.
> The problem that we seem to be having is every time we try to connect, through CUPS, to the paused queue on the print server, the printer throws a "Printer Offline" message. Our procedure for setting up the local print queues are as follows:
> 1. Name the printer, which in our case is named black-drop.
> 2. Set up the connection to the print server, which is an ipp connection.
> 3. Set up the printer driver, which would be the HP LaserJet 9000 series driver
> 4. Watch in horror as the print jobs sent to this local queue caused the Printer to throw the "Printer Offline" message.
> We have scrutinized the failing printing process closely and have discovered other tidbits of information about the problem that we are having:
> 1. When a print job is sent to the local queue on the Leopard machine, the local printer seems to connect to the server correctly and place the job in the remote queue correctly, but when it sees that the remote print queue that it is connected to is paused, it immediately cancels the job on the remote queue, changes the status on the local printer to "Printer Offline" and holds the job there indefinitely. We have confirmed this by checking the printer management systems completed jobs list.
> 2. CUPS does not seem to have a problem printing to printers that are in our print system, but not paused. We created a local printer using the same procedure described above, but pointed it at a printer that is managed by our print management system, but is not paused. This time around it connected to the printer through the print management system correctly and printed correctly.
> 3. We have tried to change the CUPS Printer policy and tried to add ipp uri options to our printer configuration. We tried to change the printer error policy to "retry-job", but this did nothing, because this does not seem to be an error. We tried to add the ipp uri options "waitprinter=false" and "waitjob=false" to the ipp configuration for the printers, but this also did nothing. We added these options in every imaginable combination, adding them separately, together, and together with the order switch, but still got no results
> 4. We have tried to bypass CUPS on the local machine by using the lp call in the terminal. When used, lp successfully prints to our printer management system.
> This seems like a feature that was added to CUPS, because it did not happen on our previous Tiger machines when we followed the same procedure. We figure this is a feature because the local printer seems to be taking on the characteristics of the remote printer, which would be good for most people, but not good for us because we need the local printers to print to the remote printers no matter what condition they may be in, since this remote printer is nothing more than a virtual queue that just holds the jobs until they are sent to a real printer. The current printer management model does not seem to be the problem, since all of the Windows machines and the Tiger machines that we have work correctly in the system. We are working with a proprietary model, that is coincidentally built on a CUPS backend, but we are looking to purchase a commercial solution that will use the same method of print management: paused virtual print queues that will store all the jobs until they a
re sent to real printers. I guess the question we have is: how do we make CUPS on the local machine ignore the fact that the remote machine print queue may be paused, and print to it anyway.
Due to a similar situation (printing to Xerox DocuSP driven production printers
the queues of which usually are in a state to accept jobs but not printing)
we hacked the IPP backend and implemented an additional device_uri option
named "ignore-stopped", for example:
This stacks the jobs on the paused queue regardless if the real printer is paused or not.
Drop me an e-mail if you are interested in this hacked backend. You need to recompile
1.3.5 from the sources unless you could use our compiled binaries (sparc Solaris 10,
Linux x_86 (32 Bit), UnixWare 7.1).
H.Blischke at acm.org
More information about the cups