C-Share JES2 exit points
If your installation uses any of the exit points required by ThruPut Manager you must ensure that the ThruPut Manager exits are always invoked. This appendix outlines the special considerations that must be taken into account.
Required Calling Sequence
After TMT7126, ThruPut Manager will automatically insert its JES2 exits to the front of the list at all JES2 exit points used by ThruPut Manager. This ensures that the ThruPut Manager JES2 exits will always be invoked—do not attempt to override this unless you have specific, well understood reasons to do so. If you do need to override the ordering, code a JES2 EXIT statement after the LOADMODs for DTMJ2SV7 and DTMJ2MV7 that includes your exit as well as ThruPut Manager's exit. For example:
LOADMOD(DTMJ2SV7) STORAGE=CSA
LOADMOD(DTMJ2MV7) STORAGE=PVT
…
EXIT(36) ROUTINES=(USRXIT36,DTMJ2X36)…
If you add additional exits at points 19 or 24, ensure that the EXIT statements are added above the ThruPut Manager LOADMOD statements (meaning ThruPut Manager will insert its exits 19 and 24 before your additional exits) or take special care to ensure that DTMJ2X19 and/or DTMJ2X24, respectively, are included on the EXIT statement(s) if placed after the LOADMODs. ThruPut Manager may not initialize if these instructions are not followed.
All ThruPut Manager exits have been carefully designed to ensure that subsequent exit routines at the same exit point are called; however, exits 8, 14, and 49 might require special consideration, as described in this chapter.
Return Codes from ThruPut Manager JES2 Exits
Many of the standard exit points in JES2 allow return codes that preempt calls to subsequent exits taken at the same entry point. The following tables describe the codes returned by ThruPut Manager JES2 exits. Use these tables in conjunction with the list or return codes for the specific exit, as documented in the JES2 Initialization & Tuning Guide. Careful study of the JES2 return codes and these tables allows you to ensure that your installation’s exits still work correctly in a ThruPut Manager environment. Where the return code is non-zero, another exit is not called.
DTMOMX05 — JES2 Exit 5 | |
---|---|
0 | Command was not a ThruPut Manager command. No action taken. |
4 | Not used. |
8 | Internal ThruPut Manager Interface Command. Processed ok. |
12 | Not used. |
DTMOMX07 — JES2 Exit 7 | |
---|---|
0 | Always returned. |
All others | Not used. |
DTMOMX08 — JES2 Exit 8 | |
---|---|
0 | Always returned. |
All others | Not normally used. |
DTMOMX10 — JES2 Exit 10 | |
---|---|
0 | No action taken. |
4 | Unused. |
8 | ThruPut Manager has suppressed the message. |
DTMOMX14 — JES2 Exit 14 | |
---|---|
0 | ThruPut Manager has determined that this is not a request to select a job for execution. |
4 | Not used. |
8 | A job has been selected for execution. |
12 | No jobs are eligible to be selected. |
DTMOMX19 — JES2 Exit 19 | |
---|---|
0 | Initialization statement is not a ThruPut Manager initialization statement. |
8 | TMPARM initialization statement processed. |
All others | Not used. |
DTMOMX24 — JES2 Exit 24 | |
---|---|
0 | ThruPut Manager environment analyzed and found to be correct. |
All others | Not used. |
DTMOMX49 — JES2 Exit 49 | |
---|---|
0 | Always returned. If the flag X049SKIP in the byte X049RESP is set to B’1’, the job has been skipped. |
All others | Not used. |
The JES2 Job Exit Mask
The JES2 Job Exit Mask associated with each job and located in the field JOBMASK in the JCT, can cause certain job-related exits to be bypassed. ThruPut Manager is sensitive to changes involving JES2 exits 7 and 8; therefore, you must ensure that any manipulation of the Job Exit Mask does not prevent the ThruPut Manager exit routines from being called.
Sharing JES2 Exit 8
ThruPut Manager introduces a new phase of processing into your system, called Job Analysis. A consequence of this new phase of processing is that JES2 Exit 8 (HASPSSSM JCT Read/Write) is invoked in the user’s address space during Job Analysis. Of course, it is invoked again during normal job execution. Depending on the purpose and logic of your installation Exit 8 routine, this might be undesirable. The ThruPut Manager JES2 Exit 8 routine is designed so that you can eliminate the calls to Exit 8 during the Job Analysis phase.
To prevent calls to other Exit 8 routines, you can change the source module for DTMJ2SV7 supplied with ThruPut Manager, so that return codes are passed to other exits based upon the processing decisions made by ThruPut Manager’s use of Exit 8.
ThruPut Manager Exit 8 returns via a “return code” routine. This routine is shipped in source form. In this source there is a mapping table (shown below) that maps the return codes from Exit 8 to the “return code” routine and the corresponding return to your routines.
The table, as supplied, maps all return codes to 0 so your routines are always called. You can modify this mapping to influence the subsequent calling of your routines.
The following table shows the relationship between the codes returned by ThruPut Manager Exit 8 to the source stub and the actual return codes returned at the completion of Exit 8. (This represents the way ThruPut Manager is delivered to you.) The completion return codes are the ones that affect your routines.
To stub | To your routines | Action |
---|---|---|
Code | Completion Code | |
0 | 0 | The exit took no action since the job was not eligible for ThruPut Manager processing. |
non-zero | 0 | Job was processed by Job Analyzer. |
Sharing Exit 14 and Exit 49
Exit 14 and Exit 49, the Job Queue Work Select QGET exits, can be shared without concern with one exception. If the purpose of the exit is to select jobs for execution, it could conflict with the ThruPut Manager use of the exit. Under these circumstances, contact ThruPut Manager Customer Support.