Question Lock Flags

ron

Member
Most of what promon displays is pretty obvious, but there are certain things that I have to admit to being rather hazy about - even though I've worked with Progress quite a while. Maybe someone can help me to understand the following:

D = "downgrade"

As I understand it - when a transaction ends, EXCL locks get downgraded to SHR. Are these the lock entries that get a flag of "D"?

L = "limbo"

Progress says it's a record "released" before the end of the transaction. I can see EXCL entries with an "L". What is the effect of such entries in the lock table? Are they only created by using RELEASE within a transaction?

P / PURG

Progress says (as I understand it) that these entries "do nothing". So why do they exist?
 

TomBascom

Curmudgeon
http://knowledgebase.progress.com/articles/Article/21639

Where do you see "D"?

Limbo locks are what you get when a record is out of scope (or RELEASED) but the transaction has not yet committed (so TRX scope is wider than lock scope). It is not safe for the db to let anyone else obtain an exclusive lock on that record until the trx commits.

I forget what purge locks are all about. There was once a bug related to them that rose to some prominence but it was a long, long time ago.
 

ron

Member
"D" like this ...

Record Locking Table:
Usr Name Chain # Rowid Table Lock Flags Tran State Tran ID
279 hzv7fz REC 1692 464967448 1271 SHR D None 1698744435
381 w66f391a REC 2658 464416137 1271 SHR D None 1688554313
291 W66F401A REC 2716 464416195 1271 SHR D None 1688940589
235 W65E431A REC 2762 464165206 1271 SHR D None 1681934443
372 W65E361A REC 2763 464165207 1271 SHR D None 1682720961
346 W65E421A REC 2806 464165250 1271 SHR D None 1681981514
362 W65E371A REC 2874 464165318 1271 SHR D None 1682697078
350 w65e471a REC 2875 464165319 1271 SHR D None 1682697431
200 szc8yw REC 2895 446945376 233 SHR None 0
324 aovqad REC 2896 446945377 233 SHR None 0
 
Top