THE DAILY DIGEST

The daily edition.

Essential reading from Rocket Enterprise. Straight to the source.

Archived edition
DAILY EDITION1 story· 3 min read
IN FOCUS

JCL User Exits Are Process-Local: Parent Events, Child Events, and the Event-step-ready Control Point

In Rocket Enterprise Developer / Enterprise Server 12.0 for Eclipse on UNIX, MFJUXIT does not observe one continuous job-wide event stream. Parent and child processes retain separate event knowledge, while Event-step-ready provides a documented parent-process point for changing program and parameter information or abending a step. [1] [2] [3]

Read the full briefing

Scope: Rocket Enterprise Developer / Enterprise Server 12.0 for Eclipse on UNIX; JCL user exits in Mainframe Subsystem Support (MSS).

A JCL user exit is not a single, job-wide observer. Its usable state is bounded by the process in which each event occurs. That distinction matters when an exit is intended to correlate submission, step execution, program calls, and job completion.

When a job is submitted, MSS creates a parent process for job preparation, resource allocation across all steps, and later resource deallocation. Each program execution runs in a separate child process. The exit instance in a child knows only the child events for that one program execution; the parent instance knows the parent events for the entire job. Neither instance knows the events seen by the other (MSS Processes). Consequently, state retained inside the exit cannot be treated as a complete job history across both event streams.

The exit is optional and must be named MFJUXIT unless the MFJUXIT environment variable specifies another module. It receives one parameter: the interface block defined by mfjdxit.cpy. In that block, fields whose names contain -I- are input-only and must not be changed; -U- fields are input/output and may be returned with acceptable modified values. All character data is ASCII (ANSI), and the exit itself must be written in COBOL, use the ASCII character set, and specify the NOOUTDD directive. Rocket supplies sample source under /src/enterpriseserver/exit and the interface copybook under /cpylib (User Exit Invocation, Rules, and Guidelines).

Event placement also depends on submission path. Most events occur in the batch initiator SEP, but Event-job-ready, Event-job-queued, and Event-job-stmt-info occur in an Admin SEP for jobs submitted through ESCWA Region Monitor and Control, and in a Normal SEP for other submission methods. If the exit fails, it is disabled for all later events in that failing process—not globally across every process.

A concrete control point is Event-step-ready, which occurs in the parent process immediately before a job step executes. The exit can examine or change the program name, alias, and JCL-equivalent PARM= string. Returning action-PGM-info applies those changes; returning action-abend ends the step with system abend S822. This event does not occur for TSO sessions (Event-step-ready). The broader facility can monitor and sometimes alter events throughout a job or TSO session, including modifying or replacing a submitted job (Using JCL User Exits).

Takeaway: Design MFJUXIT logic around parent/child process boundaries; retained exit state is process-local, while actionable step changes belong at Event-step-ready.

Rocket Enterprise Developer / Enterprise Server 12.0 for Eclipse (UNIX); JCL user exits in MSS
Documentation references
That’s the briefing.You’ve reached the end of this edition.
More editions

From the archive

View all
Nov 5

ES_LOCKDB Is Per Region in a Typical Cluster—but Shared Across a PAC

Nov 5

Queue Security Is Deny-by-Declaration: TS and TD Queues Must Be in the Security Repository Unless ES_OLD_SEC_TSTD Is Set

Nov 4

ESF Update Scope: ESF Update All Reaches Only the ESCWA Process, esfupdate Reaches Directory Server and Running Regions