8-character job classes
Background
This function allows for the creation and deletion of meaningfully named job classes at any time, in addition to the 36 1-character classes already in existence. Classes are created with the $ADD JOBCLASS command. Because all 36 available 1-character classes already exist, it follows that any new class created with $ADD, or specified at JES2 initialization time, is at least 2-characters long. New classes created with the $ADD command are automatically included in the selection list by ThruPut Manager that is, jobs submitted with that class will be analyzed, etc. If this is not desired, the TM CLASS DEL command should be used to exempt the class from ThruPut Manager processing.
The simple fact that a class name is now unpredictable introduces a new problem at job submission time – what if the class specified on the JOB statement does not exist? The unfortunate answer to that question is that the job is failed immediately, and this can now happen even for the old 1-character classes because they can be marked as “inactive,” although they cannot be deleted. An “inactive” class is treated exactly the same way as a missing class when specified at job submission time.
Classes can be deleted using the $DEL JOBCLASS command, but only if the class is already “inactive.” A class is marked “inactive” by using the $T JOBCLASS(x),ACTIVE=NO command, but this will only succeed if there are no jobs queued to that class.
Eight-character classes to be used by Workload Manager or ThruPut Manager initiators carry no special consideration; but, classes to be used by traditional JES2 Initiators may pose a problem because there is a limit of 8 classes per JES2 Initiator (if any one of them is an 8-character class). If more than 8 classes are required, the solution is to combine them into a job class group.
A group is implicitly defined when the first class is added to it. Classes are added to a group using the $T JOBCLASS(x),GROUP=y command.
A class can only belong to one group, but any number of classes can belong to the same group, and up to 8 groups (and/or classes) can be assigned to an initiator. So, we now have a way to have literally hundreds of classes associated with a single initiator, perhaps not the best idea, but certainly possible.
Traditionally, classes are assigned to JES2 initiators based on their perceived importance to the organization – the more important, the earlier in the list. While that still has merit for individual classes assigned to an initiator, it does not when the class is within a group and the group is assigned to an initiator. Classes within a group are processed in a round robin fashion; JES2 remembers its place in the group when it selects a job and then, when it’s time to look for another job, starts looking at the next class in the group, only going back to the first class when the last class in the group has been scanned.
In other words, if you have a legitimate reason for having more than 8 classes in a specific order on a JES2 initiator, you cannot translate that to the 8-character class world.
Highlights with ThruPut Manager
ThruPut Manager provides a number of benefits to the new 8-character class environment.
Reduces number of classes needed
ThruPut Manager generally reduces the number of classes required; this is particularly true for ThruPut Manager AE and ThruPut Manager AE+. ThruPut Manager allows the use of 8-character classes for all of its specialty classes and thus does not require use of a 1-character class. For example, if today your analysis class is 9 and you have a General Services class of 2 you could change them to ANALYSIS and GS, respectively, freeing up the 1-character classes 9 and 2 for other use.
JAL handles classification of jobs
Another benefit is the buffer between the end user and the installation provided by the Job Action Language, which allows the introduction of the new descriptive classes without requiring any JCL changes. The new classes can simply be assigned in JAL, removing the risk of a user error when selecting a class.
Classes maintained in JES2 checkpoint
All classes, including the TM selection class list, are now maintained in the JES2 checkpoint and therefore apply to the entire JESplex. ThruPut Manager classes are all defined or modified using the TM CLASS command only. TMPARM statement is allowed for legacy reasons, but classes defined on the TMPARM are ignored.
TM CLASS is updated
The syntax of the TM CLASS command has not changed other than it now accepts larger class name fields. The display format of the TM CLASS command has changed. The 1-character and 8-character class format shown below:
One-character class format
DTM3233I TM CLASS LIST
ANALYZE=9 DEFERRED=DX
SELECT=ABCEFGHIJKLMNOPRSTUVWYZ012345678
NO ON_DEMAND CLASS
SLM - PCS=1
GENERAL SERVICES=2
Eight-character class format
DTM3233I TM CLASS LIST
Analysis..... ANALYSIS
Deferred..... D,X
Selectable... A,B,C,D,DPROD,E,ERNIE,F,G,H,I,J,K,L,M,N,O,P,R,S,T,U,W,X,Y,Z 0,1,2,3,4,5,6,7,8,9
Exempt....... Q
On_Demand.... None
PCS. 1
General Srvcs GS
Default None
Messages accommodate new class size
ThruPut Manager messages that contain class information have been modified to allow for the larger value. In most cases, the field has been moved to the end of the message. In other cases, the message has been reformatted, as in the JOB command example below.
One-character class format
DTM0220I JOB DISPLAY
JOB01737 $DCSTEST AWAITING EXECUTION Q PRIO 9 ANY
Eight-character class format
DTM0220I JOB DISPLAY
JOB01738 $DCSTEST AWAITING EXEC FOR 35 MINS
CLASS : ERNIE
PRIORITY: 9
SYSAFF : ANY
Specification of a DEFAULT job class
ThruPut Manager adds functionality to allow the specification of a DEFAULT job class to be used in situations where an invalid class has been specified either in JCL or JAL. If a DEFAULT job class has been specified, it will always be used in cases where an invalid class is encountered, instead of failing the job. The DEFAULT job class is specified on the TM CLASS command and maintained in the JES2 checkpoint.
TM CLASS SET DEFAULT(class)
This support does require the addition of JES2 Exits 02 and 52. JAL descriptors are available to indicate that the original input class was invalid.
For legacy reasons, as explained earlier, the classes on a TMPARM statement are ignored, and a message is issued, in favor of the TM CLASS command.