Problem COBOL - CICS Program gives ABEND AEIP - INVREQ
Posted: Tue Jul 31, 2018 11:04 pm
Mainframe Technical Support Forums
https://www.ibmmainframeforum.com/
You obviously are not looking at the right reference material. Learn to use the IBM manuals in their Knowledge Center as these manuals will be your single BEST source of information.16 INVREQ
RESP2 values:
20 Browse operations are not allowed according to the resource definition.
25 The KEYLENGTH and GENERIC options are specified, and the length defined for the data set to which this file refers in the KEYLENGTH option is greater than or equal to the length of a full key.
26 The KEYLENGTH option is specified (but the GENERIC option is not specified), and the specified length does not equal the length defined for the data set to which this file refers.
33 An attempt is made to start a browse with a REQID already in use for another browse.
42 The KEYLENGTH and GENERIC options are specified, and the length specified in the KEYLENGTH option is less than zero.
44 The specified file is a user-maintained or coupling facility data table and the command does not conform to the format of STARTBR for such a data table (for example, RBA is specified).
51 A STARTBR command to a KSDS file that is being accessed in RLS mode specifies the RBA keyword. RLS mode does not support RBA access to KSDS files.
59 XRBA was specified, but the data set is not an extended ESDS.
Default action: terminate the task abnormally.
You don't have INVREQ in a read operation, you have INVREQ in a start browse operation -- read and start browse are NOT the same thing. And the way to fix it is either to write a record to the VSAM data set before attempting to read it, or don't attempt to read it in your code.I was just reading, so my questions are why I have INVREQ in a read operation, and how to solve this problem ?
This makes no sense at all -- are you trying to say that the low-level qualifier of the data set is ESDS? If so, be aware that the data set name can be ANYTHING you want and as long as the CEDA DEFINE has the right name in it, the CICS commands in your program will work. The CICS name is the DEF FILE(????????) -- CARSDD in your case; there is no ESDS involved here. The data set name is placed in the DSNAME field on the CEDA DEFINE. The actual physical name does not matter to your program -- you could call it A.B.C if you wanted to, and as long as the definitions are correct there will be no problems in CICS with using the data set.But the name of the ESDS is ESDS.