SYSOUT work selection is the process of selecting SYSOUT output
groups (JOEs) from JES2. Increases in the numbers of JES2 JOEs and
JES2 devices that are processing JOEs can result in a performance
decline during SYSOUT work selection for SAPI devices, which include
SAPI printers and any applications that select SYSOUT for printing.
In this case, JES2 SAPI POST and GET SYSOUT work selection optimization
algorithms are available to help improve SYSOUT work selection performance.
The two algorithms reduce sequential searching, which in turn reduces
the volume of JOE investigation that is required for POST and GET
operations.
Note: To use these optimization algorithms, no changes
to SAPI applications are required. After enablement, work selection
merely uses an alternate code path. The two optimization algorithms
are independent of one another and can be enabled in any combination.
Both algorithms are designed for SAPI applications that select on
Class, Destination (route code), Disposition, or any combination thereof.
- SAPI POST work selection optimization algorithm
- SAPI applications identify output characteristic interest and
JES2 POST notifies applications when work with required characteristics
is received. SAPI POST optimization uses a cached results algorithm
and a binary tree to reduce the CPU overhead that is incurred with
notification.
- SAPI GET SYSOUT-Index work selection optimization algorithm
- SYSOUT-Index augments function provided by SYSOUT class queues.
SYSOUT-Index optimization classifies work JOEs by Class, Destination
(route code) and Disposition. JOEs with any combination of these attributes
are chained off an index JOE which resides within the JES2 checkpoint.
An index JOE is a unique type of JOE in addition to the work JOE,
characteristic JOE and Free JOE. The totality of all index JOEs comprise
SYSOUT-Index optimization.
Four balanced binary trees are contained
within each index JOE. The following combinations of JOE attributes
can be chosen as a search key:
- Class/Destination (route code)/Dispostion
- Class
- Destination (route code)
- Disposition
These four binary trees can be used to efficiently implement
JOE selection for a range of work selection requests that use these
attributes. For SAPI GET operations, SYSOUT-Index optimization can
reduce the number of JOEs that are investigated. To benefit from SYSOUT-Index
optimization your SAPI applications must be selecting based on one
or more of the four JOE attributes. If your SAPI applications are
not selecting based on the four attributes, then the cost to maintaining
the binary tree structure might be greater than its benefit. If this
is the case, you could consider restructuring your select output to
take advantage of the SYSOUT-Index structure.
Note: If you are selecting
held output, the SYSOUT-Index structure helps to organize the held
output on your system. This can alter the order in which output is
presented to the SAPI application, but also provides significant improvement
over the alternative selection process for held output.
Index JOEs contain the SYSOUT-Index binary trees. Once created,
index JOEs are not freed even if the number of work JOEs chained drops
to zero. The number of unique JOE combinations of Class, Destination
and Disposition dictates the number of index JOEs which is required.
As new output is created, existing index JOEs are used. Large JES2
environments can use 2,000-3,000 index JOEs. Use the following command
to return the number of index JOEs that are currently used:
$doutdef,joeuse
$HASP836 OUTDEF
$HASP836 OUTDEF CURRENT JOE UTILIZATION
$HASP836 TYPE COUNT
$HASP836 -------- --------
$HASP836 WORK 50000
$HASP836 CHAR 440
$HASP836 INDEX 300
$HASP836 FREE 34000
If
the number of index JOEs that are in use becomes excessive, you can
disable and then re-enable SYSOUT-Index to reduce their number. Subsequently,
any index JOE that had no chained work JOE is freed. There is no disruption
of service when SYSOUT-Index is disabled; SYSOUT class queues that
were defined prior to z/OS v2r1 will be used and work selection performance
will return to the prior level.