STATUS()=137 I'm not sure about. It's not in SYS.MESSAGES. Or ERRMSG,
for that matter. It's always 137?
The 20 minute wait makes me think it is a lock problem.
How about this:
- You are attempting top write without first EXPLICITLY locking the
record.
- Another user is holding a lock on that record.
- Behind the scenes, the WIRTE statement implicitly attempts to lock the
record before actually writing it.
- It tries for 20 minutes, then errors out. The 20 minutes is hardcoded.
- Fix: explicitly lock the record first (via READU, READVU, RECORDLOCK,
FILELOCK) and include a LOCKED clause to handle the case where you can't
get it.
If anyone has a different explanation, I'd like to know.
We have a case where the programmer cannot figure out and will not
believe that he does not own the lock when he executes the WRITE. But
this is the only explanation I know. In my case the error numbe that
shows up in uv/errlog is 040019.
From: Donnie Jacobs
Sent: Wednesday, April 05, 2006 8:46 AM
Universe Version 10.1.12
Unix SunOS 5.8
WRITE REC ON FLX,ID ON ERROR
ERROR.NUMBER = STATUS()
Blah.
END ELSE
*This code got executed...
ERROR.NUMBER = STATUS()
Blah.
END
It was the ELSE clause that actually got executed. We have
different verbiage in the ON ERROR and ELSE clauses so that
we can differentiate between the two.
FLX is a file variable referencing a Type 30 file. The error
number that came back was 137.
Is there an include file or a header file somewhere that
would tell me what an error 137 means?
One other thing to note is that the error occurred after
stalling for ~20 minutes. The program that was executing
normally completes within a few minutes. Our log files show
where the process started, and then ~20 minutes later is when
we logged the write failure.
As always, thanks for the assistance!
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/