Execution batch monitoring (XBM) facility

The execution batch monitoring facility allows a user with minimal knowledge of JCL to process data. The user need only provide a valid MVS™ JOB statement and input data. This facility is useful for:
  • Compile-and-go debugging compilers
  • File-inquiry programs
  • Hardware or software system emulators
XBM treats all statements including the JOB statement (up to the next JOB statement or end-of-file) except for the /*XMIT statement as input to a processing program. To use this facility:
  • The XBM= parameter on a JOBCLASS initialization statement must name a cataloged procedure that resides in a procedure library named in the JES2 start procedure.
  • The user must specify that job class on the JOB statement that is submitted.
  • The EXEC statement of the cataloged procedure associated with the specified job class must name the program that processes the user's input data.

When a user submits a JOB statement specifying a job class that is associated with a cataloged procedure, JES2 generates an EXEC statement naming that procedure, and a SYSIN DD * statement. JES2 then makes a copy of the original JOB statement and places it after the generated statements. This JOB statement, and any other JCL statements that the user might have coded, except the /*XMIT JES2 control statement and the input data the user has provided, becomes input to the program named in the procedure. When you code the program to be invoked by the procedure, be sure to handle any JCL statements the program might encounter in the input stream (unless you restrict your users to only the JOB statement). Also, your program must define the DDNAME SYSIN as input.

Installations currently using the XBM facility before JES2 Version 3.1.3 can convert their existing applications with minimal impact to their customers. You must:
  1. Ensure all of your customers have valid MVS JOB cards in their job streams.
  2. Remove the XBATCH parameter from the JOBCLASS(v) and JOBDEF initialization statements.
  3. Specify the name of the procedure you were using to process input for each individual job class on the XBM= parameter of the JOBCLASS(v) initialization statement. JES2 no longer generates the name of the procedure it is invoking, therefore, you need only provide one procedure name for each initiator class.
  4. If your existing processing program reads past end-of-file in an attempt to obtain more data, JES2 issues a bad return code. This version of XBM processes each job individually, and does not support the additional read. You must change your processing program to accept the end-of-file as a valid end-of-input.
  5. If you require the ability to accumulate statistics for a specific class of work, or data related to the number of jobs processed, you must rewrite your processing program to maintain that information between jobs because your program will end between jobs.
  6. Ensure all user JCL contains valid JOB statements. Execution batch monitoring jobs must pass all converter validation before execution.

Note that the majority of the previous benefits of using the execution batch scheduling facility no longer exist. You might want to convert jobs that currently use the facility to jobs with the appropriate execution JCL as soon as convenient. Also, all previous restrictions on dynamic allocation no longer exist.