when we run an application we receive response code 21 and subcode 1 .
Actually we call a program where we issue a L3 command on an Adabas file which is a very huge file.It takes more than 6 hours to process that file and returns back to the calling program .From here we receive response code 21 and subcode 1. I assume this is a time issue and thus we lose command Id values and the program terminates.
Kindly give me a solution to rectify this error.
Thanks & Regards
this really sounds like a time out problem, normally the user will receive a rsp-9 in case of timeout - but as always in life - it depends :roll:
It depends whether you run your nucleus with OPENRQ=YES or NO and it depends what kind of user is doing the call (ETID user or not) and on which status the user is (ET status or non-ET status).
There are cases where a timeout will delete the UQE and if you run with OPENRQ=NO then the next call from this user will implicitly recreate a UQE but then the L3 command will not find the information about the sequential Read which is linked to the UQE.
First I would recommend to analyse the situation exactly, maybe with AOS to see if the UQE gets deleted. It also looks like the subprogram executes as a different user than the main program, otherwise it would not get a non-activity timeout. You have to know if this is wished or if this is new (maybe with the installation of a new version without considering the reusable ADARUN ?!)
Maybe it will also help if you turn on OPENRQ=YES and the program does check for rsp-9 (which should be programmed anyway).
Or you just increase your timeout limits and see what happens then.
I hope this helps,
If you have this
L3 on file 1
L3 sequence on file 2 taking 6 hours
L3 on file 1
then you will likely get rsp 21 on second L3 to file 1. Because CID is old and got overwritten. I don’t think timeout values will help.
READ FILE2 (taking 6 hours)
In this case if CID for file 1 gone then no rsp 21 and hist start from start aagain!
when it is all the same user which executes the L3 on both files and both files are on the same database then the CID for the access to file 1 will not get deleted.
It would be deleted if the files are on different databases (the UQE on the first database will get a timeout) or if there are different UQE´s generated.
User´s resources such as CID´s, ISNs in HOLD, TBI´s, TBLES elements are kept until
- they are explicitly released
- the user gives an ET or BT
- the user closed its session (CL) or implicit close via re-open (OP)
- the user gets backed out (timeout, or due to HOLD queue overflow, LP overflow etc)
- the user gets STOPPED with STOPx command (via AOS or operator command)
I cannot think of other reasons,