ENF can fail at startup with a U0203 abend after issuing messages similar to the following:
CAS9214I - CA-ENF Command: DCM(DCMNAME)
CAS9312E - Load failed for DCM object "DCMNAME" - X'00000806'/X'00000004'
CAS9314E - DCM processing completed with error.
*CAS9203E - CA-ENF Initialization error - terminating
IEF450I jobname stepname - ABEND=S000 U0203 REASON=00000018
As evidenced by the X'00000806' return code, the failure is due to the fact that the DCM object named on the CAS9214I and CAS9312E messages cannot be found.
Beginning with CA Common Services for z/OS r12.0, the DCM statements are no longer stored in the ENF database. Due to this change, the DCM object names themselves are listed in the ENFPARM member found in your current cai.CAW0OPTN dataset listed on the //ENFPARM DD of the ENF proc.
The format of the parm is:
and the default format is
In order to access the DCMs needed for various CA Products and Solutions, a new DD statement //CAIDCM DD was added to the ENF proc and is now used to point to the DCM objects.
The CAS9312E message and subsequent S806 is commonly attributed to, and corrected by, one of the following reasons and corrective actions. The CROSS-PLATFORM SCHEDULER FEEDBACK DCM, CAL2DCM2 will be used as an example:
The required DCM is not found in the default dataset CAI.CAW0DCM defined on the //CAIDCM DDName.
Either add the required DCM to the CAI.CAW0DCM library or concatenate the library where it is found to the //CAIDCM DDName. This would be used with the default form of the DCM parameter as listed above.
The required DCM is found in a dataset that is either linklisted or named on the JOBLIB/STEPLIB card of your ENF procedure.
If the required DCM is found in a linklisted library or one named named on the JOBLIB/STEPLIB card of your ENF procedure, you need to change the format of the DCM parm to DCM(CAL2DCM2,*). The ",*" will trigger ENF to look in the JOBLIB/STEPLIB concatenation and if not found there, search z/OS LNKLST/LPALST concatenation.
The required DCM is found in a dataset that is not referenced in the ENF procedure, linklist, joblib or steplib.
If the library is not referenced you can either copy the DCM or concatenate the library to the //CAIDCM DD as stated above. Another method is to add a unique DD name to the ENF proc to point to the necessary loadlib and change the format of the DCM parm by adding the DDName to the JCL. For example, you wish to use a DDName of XPSFBK. Change the parm to read DCM(CAL2DCM2,XPSFBK) and add the //XPSFBK DDName to the ENF procedure.