Review of QMS (CPU Management System)
Shawn M. Gordon
President SMGA


How often do you have jobs aborting because of a collision between jobs that can’t run together? How often do you have jobs waiting to execute because the job limit is to low to keep the previously mentioned problem from happening? How often are you manually tweaking jobs to make sure you have neither of the previous situations happening? Well if any of this is true for you, then QMS from Technikal is probably a product you will want to look at.

QMS (Queue Management System) is a product that allows you to define and management multiple job queues on the HP 3000. It is not a job scheduler, but rather allows the ability to define multiple job limits for different types of jobs. I tested QMS on my 925 running MPE/iX 5.0


I just gave a little overview of what QMS is, but a little example is in order I think. Currently on the HP 3000 you have just one job limit, this controls the total number of jobs that can be executing at any given time. This starts a serious guessing game when you have a number of background jobs running, some intermittent jobs starting, and then a string of jobs that must run in a serial fashion. Now imagine if you could specify that a total maximum number of 20 jobs could be executing at any given time, but any job that logs on as QTREND,MGR.PAYROLL can only have one execute at a time, and that there can be only two jobs logged on as COMPILE,MGR.DEV. This leaves you with 17 potential job slots open for other kinds of jobs, and keeps all those payroll jobs from logging on at the same time, or development from hogging your system by limiting them to only two compiles at a time. This is exactly what QMS allows you to do.

Take a look at Figure 1 for an example of the interface with a help window popped up. Basically you set up an arbitrary name for the Queue, like COMPILE. The next field is pretty obvious, this is the job limit for this particular queue. So even if the global job limit is 20, you could set your COMPILE job limit to be 1 or 2 or whatever. The next field, FENCE, acts like the MPE JOBFENCE, basically if a job is introduced with a priority equal to or less than the FENCE for the queue, it will go into a deferred state, even if the MPE jobfence is set at a level that would normally introduce the job. I’m not sure under what circumstances you would want to set this to anything over 0, but it’s there for control.

Now we get to the PRI field, this is interesting, this allows you to set priorities for job queus to force one to evaluate before another. The real purpose here is if your global job limit is 20, and you have 20 executing jobs, and jobs lined up in QMS queues, the queue with the higher priority will get to release it’s jobs before the queue with the lower priority.

The next two fields, Days and Time, give you an incredible amount of granular and dynamic control over the job queus. You can have them only be active on certain days or time ranges if you want. Typically you will have them always apply, but maybe you want to open up the compiles during the night and weekends, QMS allows you to have that level of control.

Once we have defined a queue, it is time to assign jobs to the queue, figure 2 shows an example of TESTQUEUE with two jobs assigned to it. QMS allows you to have up to 100 jobs per queue, but with the wildcarding that QMS allows, you would almost never go over about 30 entries I would imagine. Speaking of wildcarding, the job line allows you to use the wildcard @ anywhere in a string, so you could have @,MA@GER.SYS,PR@ as a job name if you wanted.

Next you can control the INPRI of streamed jobs, if you specify that the INPRI should be 7 and the job is streamed with a 10, then QMS will adjust it down to 7. If you leave the field blank, then QMS will leave it alone. The SKIP field tells QMS to bypass this job, so if you had some wildcarded entries that was going to have an affect on a couple of jobs that you didn’t want to be affected, you could simply enter them and specify the SKIP flag.

I like the last field, NOTIFY, this allows you to enter a logon string that QMS will attempt to do a TELL to when the specified job logs on. This is pretty handy if you are trying to monitor certain events.

Once you have everything configured you either launch the job, or submit the changes to the job already running, you don’t have to take down the background job for the changes to take affect. QMS will then quietly sit out there and manage your environment for you. This will obviously take a little trial and error before you get everything correct, it’s almost impossible to get this all covered the first time.

Usability (also installation)

Technikal has done a really slick job of developing an installation routine. It is a Windows based program that will take advantage of either your Reflection, Sessions or Minisoft terminal emulator to upload and install the software.

As mentioned earlier, the software uses a very slick Windows like interface running on a reguler terminal. It is very easy to set up and use once you learn how to navigate the software, which only takes a few minutes.


QMS sits and quietly runs, the whole time cleanly shuffeling your batch jobs around and letting them go into an execute state. I never had it abort or hang. The configuration program works very well, but there are a couple of quirks in the interface, which should be cleared up by the time you read this,
maybe even by the time I finish writing this.


QMS is only going to help your performance, not hurt it. There is a negligable impact on performance when QMS is doing it’s work. The interactive interface is pretty much instant, which is amazing when you look at the nice psuedo-windowing that they are doing in the interface.

Supportability (including Doc)

Support is terrific, every time I called I got a human on the phone that immediatly answered my questions. The documentation. The documenation is very good, and my only real problem with the documentation is the same one I had with CMS, and that is the tutorial is almost the last chapter of the book, it really
should be at the front in my opinion. The MS Windows hypertext help file is also very convenient.


There is a feature I would like to see in the software, that isn’t really a lack, but just something I would like to see. Most shops have a number of background jobs running, that should be running at all times, or within certain time frames. I would like to see an option that allowed you to set up a ‘watch’ queue of jobs to check for. This should also allow you to fire some arbitrary event, this way you could let another job check for you, of course if QMS were to logoff, then you would be out of luck. I spoke to Technikal about the idea, and they liked it, so odds are good it will be in the software by the time you read this review.

Software like QMS is a must have for some people, and a ‘why bother’ for others. If you have a moderatly complex batch environment, even with a batch scheduler, I think you will get a benefit from QMS, it’s easy and friendly to use, and gives you the kind of control that you need. The Windows style interface is attractive and well implemented, I think you’ll like it, I know I found it very useful.

At-a-Glance box

QMS version 1.00.A0
Technikal, Inc.
P.O. Box 14854
Clearwater, FL 34629
FAX 813-784-5976

Call, write or FAX for information and/or a free demo.

$2,495 per copy, with support being $500 per site and one 79 page manual, and an MS Windows help file.