Exlusive lock issue

mohanty

New Member
Hi Friends,

I'm using Progress 9.1D DB through ODBC from web applications. The same DB is also used in 4GL Applications(ERP Symix). We are frequently facing the following error. I'm aware of the reason of the following error. It's the ERP is putting exlusive lock to the table while the screen is opened. I have no authority to change the ERP program. Same time i want to solve this issue. Can anybody help to resolve this issue.

ERROR [HY000] [DataDirect-Technologies][ODBC PROGRESS driver][PROGRESS]Failure getting record lock on a record from table <tablename>.

Rgds,

Debajyoti Mohanty
40/1A, Lavelle Road, Bangalore
 
Disclaimer: I am unfamiliar with ODBC/SQL, but I would guess the following.

You are trying to place a lock on a record already EXCLUSIVE-LOCKed (as you say).

You cannot do this (and cannot change the ERP program - so presumably cannot add an index to the DB), so either:

1. Don't include the record in your selection criteria, or

2: Read the record with NO-LOCK. I don't know how you do this in SQL, but according to Progress knowledgebase KB P2988:
'Use READ UNCOMMITTED Transaction Isolation Level instead.'
I presume this means you set the transaction level, then issue the SELECT statement.


From MSDN:
A transaction under Read Uncommitted isolation neither issues any locks nor respects locks other transactions hold. In this case, it's possible for your transaction to read another transaction's uncommitted changes (dirty reads). ... Note: You need to provide robust error handling when working at the Read Uncommitted level.

See also Progress KB 20255
Title: "Transaction Isolation Level: Proper Syntax and Definitions"

http://tinyurl.com/c3dot

HTH
 
Back
Top