z/OS JES2 Installation Exits
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Programming considerations

z/OS JES2 Installation Exits
SA32-0995-00

  1. Exit 51 can be used to alter the new phase for the job. However, the new phase must be a later phase than the current one. If the new phase is not later, the change will be ignored.
  2. If a JCT address is passed to the exit, the job has completed the current phase of processing including writing out the JCT. After the exit completes, the JCT will not be written by JES2. Installations should avoid updating the JCT in exit 51. Instead, earlier exits (such as exits 20 and 50) should be used to alter the JCT.
  3. JCT extensions can be used to pass information from earlier exits to exit 51. Input processing can create both local and SPOOLed JCT extension. These can be used to pass information from user environment exits (such as 52, 53, and 54) to process in the JES2 main task. Local extensions are also supported in exits 2, 3, 4, and 20 so that a common set of services can be used for all job input processing.
  4. Code in exit 51 must check the X051NOCH bit in X051COND and not attempt to change the phase of the job if this bit is on. In addition, if the X051RBLD bit is on in X051COND, the job is on the rebuild queue (an error queue) and will be deleted when it is no longer busy. Jobs on the rebuild queue should not be processed, because errors have already been detected in the checkpointed data structures. They are passed to exit 51 to allow complete tracking of the job.
  5. Internal reader and NJE over TCP/IP processing occurs outside the JES2 address space. However, the code must reach across into the JES2 address space to perform some key functions (like build JQEs and queue them to the next phase). This processing is accomplished using a new service call $JQESERV. There is also a set of PCEs (the JQE Request Processors) in the main task that handle these requests (10 of them in all). It is under these PCEs that the $QMOD is done and that exit 51 is called. The code is careful not to $WAIT for any extended length of time so that the JQE Request Processors can process as many requests as possible. Adding a $CBIO to write the JCT in exit 51 will limit the number of jobs that can be processed by a given JQE Request Processor to one per $JCT write. The design point for internal readers was a single reader submitting hundreds of jobs at once and completing input processing as fast as possible. If this is the environment you are in, the extra I/O will impact performance. If jobs are arriving at a more leisurely rate, you can wait for a $CBIO.
  6. Do not issue a $GETMAIN storage request for subpool 0 (the default for $GETMAIN), or for subpool 240 or 250, which are translated to subpool 0 for authorized callers. Doing so would establish subpool 0 with an assigned key of 0, which can cause problems for a job step application that shares subpool 0 and requests subpool 0 storage, thereby obtaining the storage in key 0. To avoid this issue the exit should issue a $GETMAIN request for subpool 229 or 230, which are high private subpools intended for use by authorized functions, whereas subpools 0-127 are in low private subpools and are part of the user region.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014