Tips, Tricks, and Techniques
Last update: 30 April 2004
NAT3021 - Response Code 21
Problem:
About a month ago I poseted a request for help on a 3021 error as
well. I got a lot of 'try this' and possible reasons but nothing
that I could point our systems people (we have no full time DBA)
toward. We finally called SAG and they suggested an increase in a
parameter on Adabas, I believe it was TNAE, from 30 minutes to about
1 hour. We tried this and the occurrences of 3021's went down from
10-12 a day to 1 or 2 on some days with none on most days. Due to
the continued problem we just only yesterday increased the
parameter's time to 1 1/2 hours. Really though, I'm an applications
programmer with no previous Adabas systems type experience and our
systems guys are trying to learn on the job due to the recent
departure of our former guru.
I hesitate to ask that this parm be increased as high as it is now or
any more in the future if the 3021's keep happening. We have zeroed
in on Construct (v 3.3.2) browse-select programs as being the
programs that the error is saying was in control at the time of the
error.
We would welcome anyone with other ideas of possible solutions.
Solution:
It sounds like it could be as simple as users sitting on a browse screen
and leaving their terminal. Then, upon return, continuing the browse
after their user queue has timed out, thus receiving a 3021. I have had
the same occurrence. This may explain the reduction of the problem as
you increase TNAE (less users waiting that long). It may possible to
code around this (on certain browses) by restarting the browse during
each page down, but it may not be practical. However, all the previous
suggestions may also play a part.
-
If these are being received online and you're doing something like a
READ LOGICAL and it's active in say, a scrolling screen--
-
a. derive the *ISN of the last record on the screen
-
b. put an ON ERROR routine into your program to check for 3021s and
in it reposition yourself in the READ by displaying *ISN + 1 forward
-
If it's in batch then the most likely cause is that it's awaiting a resource
of some kind, most likely a tape mount. If this is the case then you can
either rattle Operations' cage (if you choose to do this do it gently--they
can react in really weird ways) or open the tape first (READ WORK or whatever)
and then get into the logical read process.