Running a batch Datacom SQL query using utility DBSQLPR fails with the following error message;
SQLCODE = -137, SQLSTATE=57S03, DB RETURN CODE = 91(112)
MESSAGE = PLAN OPTION CBSIO EXCEEDED
The following parameter has been added to the job to turn off CBSIO limit but it does not resolve the problem:
//OPTIONS DD *
CBSIO=0
/*
Release : 15.1
The -137 message text is a little misleading. While the -137 could be due to the CBSIO exceeded, look at the Datacom return code 91(112) for the real reason.
The internal return code 112 documentation states:
SELECT ENDED, EXCESSIVE FAILURES
During the execution of the SELFR command, the number of data records rejected exceeded the limit
set by the MUF startup option CBS optional parameter maxstio.Choose a different selection (Ideal for Datacom WHERE clause) that locates records more directly,
builds a new key to access the records directly, or increases the limit set in the MUF startup option CBS
and restarts the Multi-User Facility.
To resolve the problem either increase the value for maxstio or set it to 0 for no limit.
Maxstio is the 4th parameter in the CBS startup option:
CBS 6,2M,0,0,16,1006 CBS DBID,BFR(TSKS*1K),MXST EN,MXSTIO,
* MAXAGE,CBS-HEURISTIC DBID
Alternatively, use the console command CBS_MAXSTIO to change it temporarily.
The command can be executed as a z/OS console command:
f mufjob,CBS_MAXSTIO 0
Or by running DBUTLTY with the COMM OPTION=CONSOLE function:
//SYSIN DD *
COMM OPTION=CONSOLE,OPTION2='CBS_MAXSTIO 0'
/*