milo@ndmath.UUCP (Greg Corson) (12/18/86)
Does anyone out there happen to have any (hopefully free) software that allows a single print queue to drive more than one printer at a time? In other words...I have one print queue and several printers. Whenever a printer becomes free I want the next job in the queue to start printing on that printer. There might be as many as 3 identical printers on the system at one time and I don't want to leave the load-leveling job to the users. It would be really nice if each printer could have a "forms type" indicating the type of paper loaded. Then jobs would go to the first printer with the right type of forms loaded. This could be really useful as the lab may eventually have a Laser Printer, 3 band printers, several decwriters and a number of plotters of different types. It would be nice if the users only had to remember what type of forms they wanted and have the system route them to the right printer/plotter automatically. Greg Corson seismo!iuvax!kangaro!milo
dpk@brl-sem.ARPA (Doug Kingston <dpk>) (12/19/86)
The Multi-Device Queueing System was written here at BRL about 4-5 years ago to handle just that type of situation, and has been in production use here ever since with some slow evolutionary enhancements. The current release is version 2.11. It can be obtained via anonymous FTP from BRL-VGR.ARPA (arch/mdqs.tar[.Z]) if you have Internet access or by mail at the address below, but be sure to include a tape (9 track, all popular densities supported). MDQS knows about queues and devices. There are mappings from queues to devices with some server. More than one queue can map to a device, or a single queue can map to more than one device. There are servers to transfer requests to other machines for processing via TCP/IP or UUCP. There is a server for processing batch jobs after restoring the runtime environment. Devices have "forms". Requests only get processed on devices with the proper forms. There is the normal complement of status, and control programs for the queueing system. It runs on either BSD or SYSV systems. (And yes RMS, you can have it for GNU if you want.) Cheers, -Doug- Doug Kingston Computer Science and Mathematics Branch Systems Engineering and Concepts Analysis Division U.S. Army Ballistic Research Laboratory Attn: SLCBR-SECAD (Kingston) APG, MD 21005-5066
mark@ems.UUCP (Mark H. Colburn) (12/19/86)
In article <161@ndmath.UUCP> milo@ndmath.UUCP (Greg Corson) writes: >Does anyone out there happen to have any (hopefully free) software that >allows a single print queue to drive more than one printer at a time? > >In other words...I have one print queue and several printers. Whenever >a printer becomes free I want the next job in the queue to start printing >on that printer. There might be as many as 3 identical printers on the >system at one time and I don't want to leave the load-leveling job to >the users. > >Greg Corson >seismo!iuvax!kangaro!milo You neglected to say what version of system you are using, but it is possible to do this kind of spooling using the System V lp spooler. By correctly specifying printers and classes a user can send to a specific printer, or a specific class of printers. A class is a group of printers that share a similar characteristic. For example, we have three NLQ dot matrix printers here at the office. If a user wants the file to be printed out as fast as possible, they may issue the command 'lp -dlq <filename>' where '-d' specifies the destination, and 'lq' is a class of printers which contains the three NLQ printers. The file would get printed on the first available printer in that class. If a user wanted the file printed on a specific printer, (i.e. the one nearest his or her office, they would use the command 'lp -dprinter1 <filename>' where 'printer1' is the name of the printer nearest them. There are a lot more features, but I will refrain from reciting them all here. If you have System V and LP, then it might be the answer that you are looking for to solve your problem. -- Mark H. Colburn UUCP: ihnp4!meccts!ems!mark EMS/McGraw-Hill ATT: (612) 829-8200 9855 West 78th Street Eden Prairie, MN 55344
brandon@tdi2.UUCP (Brandon Allbery) (12/25/86)
Quoted from <99@ems.UUCP> ["Re: Multi-spoolers"], by mark@ems.UUCP (Mark H. Colburn)... +--------------- | In article <161@ndmath.UUCP> milo@ndmath.UUCP (Greg Corson) writes: | >Does anyone out there happen to have any (hopefully free) software that | >allows a single print queue to drive more than one printer at a time? | > | >In other words...I have one print queue and several printers. Whenever | >a printer becomes free I want the next job in the queue to start printing | >on that printer. There might be as many as 3 identical printers on the | >system at one time and I don't want to leave the load-leveling job to | >the users. | | You neglected to say what version of system you are using, but it is possible | to do this kind of spooling using the System V lp spooler. By correctly | specifying printers and classes a user can send to a specific printer, or a | specific class of printers. +--------------- I have (nearly) written a print spooler (destined to be the UNaXcess Spooler) which currently (almost) runs under System V. (I began writing it to solve a perceived problem with the "lp" spooler: it (1) lacks a forms handling feature, and (2) lacks a feature to automatically use the nearest free printer in a class to the person/program doing the spooling.) It is as yet incomplete, but if you need something fast I can send you a shar file of what is written; what needs to be done isn't too much, if you want a "basic spooler" system (parts I haven't started yet are a full pagination system and generic print mode interpreters, but you could probably do without them; so could we). As I said, it's written for sVr2.2; the features specific to sys5 (that I know of) are mainly the spooler control via kill(-(pid_of_spooler), SIGTERM) to inform the spooler and its descendants (de-queuers/print drivers) of changes of state -- pqspool does a setpgrp() and sVr2 has the feature that if you send a signal to the negative of a process group leader's pid (i.e. to -proc.p_pgrp), the signal is sent to all processes in the pgrp. This could probably be removed, most easily by pqspool trapping the signal and forwarding it to all processes in its driver list, since it works rather like a printer "init" process. Yell if you want it. [BTW: other programs I've offered: for some reason, the path from tdi2 to mirror is a "you can't get there from here" affair, and I perfer mod.sources for source postings. HELP!!! I have three programs waiting to go out -- UNaXcess 1.0.1, unisys, and sadp!] ++Brandon -- ``for is he not of the Children of Luthien? Never shall that line fail, though the years may lengthen beyond count.'' --J. R. R. Tolkien Brandon S. Allbery UUCP: cbatt!cwruecmp!ncoast!tdi2!brandon Tridelta Industries, Inc. CSNET: ncoast!allbery@Case 7350 Corporate Blvd. INTERNET: ncoast!allbery%Case.CSNET@relay.CS.NET Mentor, Ohio 44060 PHONE: +1 216 255 1080 (home) +1 216 974 9210
ignatz@aicchi.UUCP (Ihnat) (01/07/87)
A fellow named John Collins, over the 'Big Water' (in England) distributed a spooler over net.sources a couple of years ago that we've been running ever since on the office machine. It offers multiple printer support, along with forms support, printer initialization, a simple accounting mechanism, a fairly nice control interface (allowing suspension and cancellation of jobs on a per-job basis), etc. It uses only vanilla signals to communicate between processes that comprise the spool package, and doesn't use 'signal- answerback' signalling, so it is (rather rarely) subject to lost-signal hits; but it's proven to be the best package we've found for the features offered. I haven't spoken with John for a year or so; I really should give him a call, as he indicated that he was then planning some enhancements that would be 'nice'. I understand that h is (or was then!) marketing it in the UK, but released it in the US because he didn't care for the hassles of trying to defend it overseas. (don't ask me about legality; I'm just the bitbeater in this instance.) I agreed to be willing to be a source and semi-support on this side of the ocean, but I suspect I ought to talk to him again. In any case, the package as released at that time is available through me (I think its distribution predates mod.sources); Caveat Utilitor. Bug reports accepted, action as possible. Enough interest, and I'll try to track John down... -- Dave Ihnat Analysts International Corporation (312) 882-4673 ihnp4!aicchi!ignatz || ihnp4!homebru!ignatz