I have an OVRDBF WAITRCD(*IMMED) on a logical file just prior to calling my program. It still takes 30 seconds to display the error when the record is in use by another user. Why won't this work? I'm on V5R2M0.
It could be the scope of the override and/or the SECURE method. If your override is going to be for this activation group, you can use SECURE(*YES) and OVRSCOPE(*ACTGRPDFN). If you need it for all subsequent opens of the file, you can use SECURE(*YES) and OVRSCOPE(*JOB). Just remember that the DLTOVR must use the same scoping parameter to delete the override. I would use a numeric value, rather than the *IMMED and modify your OVRDBF from:
OVRDBF FILE(FILE) TOFILE(TOLIB/TOFILE) WAITRCD(*IMMED)
OVRDBF FILE(FILE) TOFILE(TOLIB/TOFILE) WAITFILE(1) WAITRCD(1) SECURE(*YES) OVRSCOPE(*ACTGRPDFN)
DLTOVR FILE(FILE) LVL(*ACTGRPDFN)
This will allow you to override the job to allocate the object within one second and the record in one more second giving you a total of two seconds wait time for the first record, and one second wait time for all subsequent records. I would also search for a PTF, and/or report it to IBM.
MORE INFORMATION ON THIS TOPIC
Check out this Search400.com Featured Topic: Database issues resolved
Search400.com's targeted search engine: Get relevant information on DB2/400.
The Best Web Links: Tips, tutorials and more.