Operating System - OpenVMS
cancel
Showing results for 
Search instead for 
Did you mean: 

Queue Load Balancing In The Modern World

 
Robert Atkinson
Respected Contributor

Queue Load Balancing In The Modern World

Back in the days of LN03's and the like, the VMS print symbionts had a direct connection to the print engine and could tell what the printer was actually up to. This enabled it to know if the printer was busy or not, so load balancing was easy.

 

In the modern world, where COLD text is printed, manipulated and then sent to a Windows queue, this doesn't really work so well.

 

My question (finally got there) is how do others cope with this tricky problem. I'm going to invoke some load balancing techniques within DCL, but it would be much better if VMS knew what a printer was doing again. Does DCPS have anything in it that can do this. Is there any way to manually interrogate the printer status and feed this back to the symbiont?

 

Thanks, Robert.

 

8 REPLIES 8
Bob Blunt
Respected Contributor

Re: Queue Load Balancing In The Modern World

Robert, some background info would be helpful...  OpenVMS (or VMS) version, printer types, queue setup, DCPS version you're using, etc.

 

DCPS depends on full bi-directional communication for supported printers to work best and driving printers from another O/S muddies these waters.  In general, however, you're mostly right if you're spooling to printers that are controlled by some other environment.  There are products that can be purchased from other vendors that might work better in a mixed printer world.  In my opinion, though, if you're trying to keep that control on your VMS systems then you need to focus on using printers that more closely resemble "The Good Ole Days."  Some still exist and you and your company will have to decide if they fit your needs or if you're stuck trying to fit an OpenVMS peg into a Windows hole.  Put another way?  I feel your results will vary depending on the printers (and their setup) that you use.  Most current PC-friendly printers that I'm experiencing don't seem to  have readily available Postscript (or other printer language) interpreters.  And since VMS doesn't have the native ability to generate direct printer control for some of those units (with or without DCPS) most of the burden of control has to be given to the PC world.

 

Even in an office with a variety of printer types our results were not always predictable.  I had setup direct queues to HP LaserJets, HP Color LaserJets and, for a short time, a few remaining DEC printers.  Although I had made sure that our local printers had both Ethernet interfaces and PostScript interpreters those printers didn't always work as expected.  I never was able to get output from one of our MFPs with Ethernet but the DEC printers were more predictable.  The HP laser printers seemed to work better with Windows but we lacked any tie-in software that allowed us to get better results from VMS printing.

 

Focusing on the printers that are listed as supported by recent releases of DCPS can help some but I can't remember if that resource gives explicit requirements for connectivity from VMS TO those printers.  I would expect that they'd work best if setup as directly as possible.  But if you're stuck with sharing printers spooled and controlled by another O/S then you might look around for other software that might make it better.  GrayMatter and Northlake are two vendors that come to mind.

Hoff
Honored Contributor

Re: Queue Load Balancing In The Modern World

As an incremental step, consider using network-based printers (and get the intermediate boxes out of the way), or use something akin to the EXECSYMB package and roll your own queue-management logic.    

 

To move past this design, you may (will?) have to figure out how to connect into the Windows box in parallel to and asynchronous to the printing activity, and particularly determine when the Windows box is done with its processing, and use this to set up a customized print symbiont or analogous "back-pressure" for that task.

 

Moving toward a more recent solution, you're running what amounts to a compute grid and not "just" some printer queues, and you'll be locating and porting over some grid-scheduling software, or (less desirably) rolling your own grid software.  VMS, unfortunately, doesn't provide clients for modern grids, and comparatively few (if any?) of the tools that manage compute clusters ("clusters", but not in the sense that VMS uses) have been ported over to VMS.  And this case has the added complexity of the Windows boxes, and any solution will necessarily have to involve communications with those.

 

In an overview of a typical grid-like design, you'd have VMS boxes producing "stuff" and (for this part) the Windows boxes waiting for and consuming and processing the "stuff" for printing.  The Windows boxes would then push the jobs to the printers, or advertise that they've now produced some "stuff" and whatever is driving the printers is waiting to fetch and process that.  Whatever's running your grid would be passing around the "stuff" events, and the requests for "stuff".

 

The underpinnings of this might be based on AMQP...

 

The boxes I'm usually dealing with (well, other than the VMS boxes) are typically configured as members of grids, and (for instance) source code compilations drop down the "rabbit hole" and are processed on compute servers on the network.  For these particular builds, this is based on the distcc tool, though there are other options.  For other stuff, Xgrid.  And there are a number of other tools and protocols that can schedule jobs.

 

This is fairly old technology, all things considered. (It's past what VMS typically offers, but it's commonly found on other platforms.)  But yes, something is going to have to manage that herd of VMS and Windows boxes here.

Robert Atkinson
Respected Contributor

Re: Queue Load Balancing In The Modern World

I guess my hope was that there was at least a documented API within the symbiont that could be hooked into, where I could force the status of the remote printer. I did think about ExecSymb, but I'm a little wary about basing such a critical process on Freeware.

 

The Engineering guys are in London next week for the UK TUD, so perhaps I'll throw this one in there direction and watch their faces :)

 

Thanks, Rob.

 

Mike Kier
Valued Contributor

Re: Queue Load Balancing In The Modern World

I used EXECSYMB in a production environment at two different employers - one for printing prescription labels on an image-based Zebra thermal printer and another to perform an FTP file transfer and send an email link to the document - I would have no hesitation using it in any production environment - the sources are available and the VMS symbion APIs are well documented.

Practice Random Acts of VMS Marketing
Hoff
Honored Contributor

Re: Queue Load Balancing In The Modern World

There has traditionally been no good facility for modifying an already-modified symbiont.  

 

There are discussions of the PSM-related pieces around, and varying success at modifying existing symbionts.  And AFAIK, there's no way into the existing DCPS symbiont pieces documented, nor particularly feasible.

 

I'd also suggest a recalbration around your view of Freeware code, too,  That's increasingly what you'll be working with and depending on, going forward, whether within your environment, or with tools such as Apache, witjhin VMS, and otherwise.

 

A server queue would probably be fairly close to what you want, where that queries the printers, and dispatches the jobs appropriately.  But you're back-dooring your way into grid management and distributed scheduling, so I'd suggest going into this project with your eyes toward the larger environment.  (Not intending to solve it all at once certainly, but rather to avoid implementations and decisions that would constrain your environment later.)