KB Article #182039

CFT Abend when submitting an JCL (Postproc, log switch or account switch) - $HASP106

Problem

Transfer CFT installed and running fine except when a JCL is submitted to the Reader.



Any EOT or switch JCL result in an Abend of CFT, in the submitted JOB sysout we have the below JES message:

$HASP106 JOB DELETED BY JES2 OR CANCELLED BY OPERATOR BEFORE EXECUTION


The issue is the same using an STC or a JOB for CFTMAIN


The same JCL is working just fine when not submitted by CFT or copied to the Internal Reader using an IEBGENER(2).


The same JCL submitted by CFTUTIL (PCFTUTIL procedure(1)) result in an Abend of CFTUTIL

(1)-Using PCFTUTIL to submit a JCL:
//CFTIN DD *
_FMSUB PARM = 'MY.ENV.INSTALL(TESTJCL)'
/*

(2)-Using IEBGENER to submit a JCL:

//STEP01 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSUT1 DD DISP=SHR,DSN=MY.ENV.INSTALL(TESTJCL)
//SYSUT2 DD SYSOUT=(A,INTRDR),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=80)





Resolution

When CFT (or CFTUTIL) is submitting a JCL to the Internal Reader, an Access method control block (ACB) is used with a pointer to read back the JOBID from the Reader.


For the reported issue, we found that the customer was using several JES 2 exits for different purpose.

One of the EXIT, the EXIT54, was messing the control block making CFT failing into an Abend.
The customer's exit was not set with a JOB MASK so CFT JCLs could have been excluded.

The purpose of the Exit 54 was to search in the submitted JCL for a specic JCL card and to add it if not present already.

As a solution, manually adding that JCL card in the CFT JCLs resolved the issue.
In the Exit 54, when the JCL card is found, it just continue as normal with JES 2 operations without adding anything in the submitted JCL.

  • Command to display JES2 Exits usage: $D EXIT(*)
  • More details about JES2 Exits usage: IBM Reference


Other external references:

https://www.ibm.com/docs/en/zos/2.1.0?topic=sectio...

IBM JES2 Exits documentation