Error in Control Statement using DBOCTRL

Document ID : KB000050400
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

I'm overriding my SSID using DBOCTRL.

//****************************************************************   
//* BUILDING THE SECONDARY INDEXES BASED ON THE PREVIOUS STRUCTURE   
//* WORK FILE IN PREVIOUS STEP IS USED AS INPUT TO THIS STEP.   
//****************************************************************   
//KKSIULD EXEC KKSIULD   
//*TEPLIB DD DSN=MST.Z1KK.DBULIB.R14,DISP=SHR   
//* OCTRL DD DSN=MST.Z1KK.IDI.PARMLIB.CA,DISP=SHR   
//DBOCTRL DD *   
  SSID=JOBNAME  
//DFSVSAMP DD DSN=SYSC.P.CTLLIB(DFSVSAML),DISP=(SHR)   
//DFSURWF1 DD DSN=MST.Z1KK.WORK0100,DISP=(OLD,DELETE,DELETE)   
//YEA419I0 DD DSN=ONL.Z1KK.YE10D9I0,UNIT=SYSDA,DISP=(SHR)   
//YEA4S9I0 DD DSN=VSAMTEST.Z1KK.Z1CJS9I0,DISP=(SHR)   
//YEA4T9I0 DD DSN=VSAMTEST.Z1KK.Z1CJT9I0,DISP=(SHR)   
//PLUSIN DD *   
  BUILDALL DBD(YEA4D9I0) INDD(DFSURWF1)  

but am getting

IDI1108E A COMMAND WAS NOT FOUND.   
DBO0602I CONTROL STATEMENT ANALYSIS COMPLETED.   
DBO0004E ERROR IN CONTROL STATEMENTS.   
IDI7602I CUMULATIVE RETURN CODE = 0012.   
DBO0005I END OF THE SECONDARY INDEX BUILDER  

Solution:

You are using CA's job control "compatibility mode", which enables customers to stay with the existing BMC job control, just using our IMS tools loadlib instead of BMC's in the steplib concatenation.

With the BMC job control, execution options will be provided by using DD statement "PLUSIN", whereas CA's native SIB job control would use DD statement "DBOCTRL" instead.

In your SIB execution you are using BOTH DD statements, PLUSIN as well as DBOCTRL. Actually SIB can handle this also, options from both DD statements will be accepted and passed on to the SIB execution -

BUT (and this is the reason for your abend) when using DD statement DBOCTRL specific rules must be followed, e.g the "FUNCTION" option must be present, and the "DBDNAME" option also. In your execution only option SSID has been used in DBOCTRL, so because the FUNCTION option is missing, you're getting error message IDI1108E A COMMAND WAS NOT FOUND

How to solve this ?
You could add FUNCTION=INDEXCREATE and DBDNAME=dbdname to your DBOCTRL DD statement, but the better choice is just to use only ONE
DD statement to provide the execution options. Because your jcl is in compatibility mode, you should stay with PLUSIN and remove DBOCTRL. And option "SSID=JOBNAME" which so far has been used in DBOCTRL just needs to be added to PLUSIN DD using format SSID(JOBNAME)

(instead of SSID=JOBNAME).
So your PLUSIN DD statement should read:

//PLUSIN DD *    
BUILDALL DBD(YEA4D9I0) INDD(DFSURWF1) SSID(JOBNAME)