![]() | |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
I have a report that builds a work file by passing through a large number of invoices. The build program pauses and beeps often due to group locks. I am not doing any record locks. Is there anyway to suppress this behaviour of d3 or at least make it quieter? |
#3
| |||
| |||
|
#4
| |||
| |||
|
#5
| |||
| |||
|
|
Alan, Would not the READ have to be a READU, MATREADU, or READVU in order to invoke the LOCKED clause? See <http://www.weaver-consulting.com/tip012.htm Dave Weaver, Weaver Consulting |
#6
| |||
| |||
|
|
The OP refers to "Group" locks... I'm no expert on D3, but I thought that most MV variants had moved to Record locking rather than group locking. I do seem to recall in the depths of my memory, that a group lock effectively locked that complete group for *all* reads and writes (though my memory could be mistaken). I seem to remember "problems" caused by READU'ing one item from a file, and then before writing back, READing another record from the same frame (normally caused by 1 frame files with lots of overflow!).. This would cause a deadly handshake... It may just have been a bug in the OS (we used Mentor at the time - and I'm thinking mid-1980's here!) but I'm sure we used to be very careful to avoid this sort of behaviour. Having said that, on jBASE with record locks, you can't lock yourself at all. It will allow you to READU the same record twice without complaint (I think it's controllable by an environment variable). Either way, the OP problem sounds strange... READ's should always pass because no record lock is being taken. Sounds like a bug, either in D3 or possibly his program is actually doing a READU somewhere else in the code??? Regards Simon "Dave Weaver" <weaver22 (AT) pacbell (DOT) net> wrote in message news:1138126974.905399.126170 (AT) z14g2000cwz (DOT) googlegroups.com... Alan, Would not the READ have to be a READU, MATREADU, or READVU in order to invoke the LOCKED clause? See <http://www.weaver-consulting.com/tip012.htm Dave Weaver, Weaver Consulting |
#7
| |||
| |||
|
|
I may be wrong, in which case hopefully Mark or Tony will correct me, but I think that both D3 and UV set a group lock before every write, and probably before every read as well, to insure the stability of the group being read. On UV, this can cause a heavily overflowed group to remain locked if a retreiVe statement pauses for a page break in the middle of a group - there is actually a uvconfig parameter to set the timeout for this (the default is, like 1/2 hour). On some of my busy D3 systems, this causes large batch processes to sometimes "beep" occasionally (sometimes even frequently) even though all the readu statements use a locked clause and the files are reasonably sized. I assumed this was because there is some size limitation on the group lock table. I have never noticed this batch-beeping-syndrome on UV. /Scott Ballinger Pareto Corporation Edmonds WA USA 206 713 6006 Simon Verona wrote: The OP refers to "Group" locks... I'm no expert on D3, but I thought that most MV variants had moved to Record locking rather than group locking. I do seem to recall in the depths of my memory, that a group lock effectively locked that complete group for *all* reads and writes (though my memory could be mistaken). I seem to remember "problems" caused by READU'ing one item from a file, and then before writing back, READing another record from the same frame (normally caused by 1 frame files with lots of overflow!).. This would cause a deadly handshake... It may just have been a bug in the OS (we used Mentor at the time - and I'm thinking mid-1980's here!) but I'm sure we used to be very careful to avoid this sort of behaviour. Having said that, on jBASE with record locks, you can't lock yourself at all. It will allow you to READU the same record twice without complaint (I think it's controllable by an environment variable). Either way, the OP problem sounds strange... READ's should always pass because no record lock is being taken. Sounds like a bug, either in D3 or possibly his program is actually doing a READU somewhere else in the code??? Regards Simon "Dave Weaver" <weaver22 (AT) pacbell (DOT) net> wrote in message news:1138126974.905399.126170 (AT) z14g2000cwz (DOT) googlegroups.com... Alan, Would not the READ have to be a READU, MATREADU, or READVU in order to invoke the LOCKED clause? See <http://www.weaver-consulting.com/tip012.htm Dave Weaver, Weaver Consulting |
#8
| |||
| |||
|
|
I may be wrong, in which case hopefully Mark or Tony will correct me, but I think that both D3 and UV set a group lock before every write, and probably before every read as well, to insure the stability of the group being read. On UV, this can cause a heavily overflowed group to remain locked if a retreiVe statement pauses for a page break in the middle of a group - there is actually a uvconfig parameter to set the timeout for this (the default is, like 1/2 hour). On some of my busy D3 systems, this causes large batch processes to sometimes "beep" occasionally (sometimes even frequently) even though all the readu statements use a locked clause and the files are reasonably sized. I assumed this was because there is some size limitation on the group lock table. I have never noticed this batch-beeping-syndrome on UV. /Scott Ballinger Pareto Corporation Edmonds WA USA 206 713 6006 Simon Verona wrote: The OP refers to "Group" locks... I'm no expert on D3, but I thought that most MV variants had moved to Record locking rather than group locking. I do seem to recall in the depths of my memory, that a group lock effectively locked that complete group for *all* reads and writes (though my memory could be mistaken). I seem to remember "problems" caused by READU'ing one item from a file, and then before writing back, READing another record from the same frame (normally caused by 1 frame files with lots of overflow!).. This would cause a deadly handshake... It may just have been a bug in the OS (we used Mentor at the time - and I'm thinking mid-1980's here!) but I'm sure we used to be very careful to avoid this sort of behaviour. Having said that, on jBASE with record locks, you can't lock yourself at all. It will allow you to READU the same record twice without complaint (I think it's controllable by an environment variable). Either way, the OP problem sounds strange... READ's should always pass because no record lock is being taken. Sounds like a bug, either in D3 or possibly his program is actually doing a READU somewhere else in the code??? Regards Simon "Dave Weaver" <weaver22 (AT) pacbell (DOT) net> wrote in message news:1138126974.905399.126170 (AT) z14g2000cwz (DOT) googlegroups.com... Alan, Would not the READ have to be a READU, MATREADU, or READVU in order to invoke the LOCKED clause? See <http://www.weaver-consulting.com/tip012.htm Dave Weaver, Weaver Consulting |
#9
| |||
| |||
|
#10
| |||
| |||
|
![]() |
| Thread Tools | |
| Display Modes | |
| |