Progress
DataServer for
Microsoft SQL Server
Guide


Data Source Record Locking

In a DataServer application, SQL Server™ handles all of its own locking issues. The Progress 4GL locking rules are modified when you access information from an MSS data source. As a result, the Progress phrases NO–LOCK and SHARE–LOCK have isolation-level dependencies. The EXCLUSIVE-LOCK behaves the same in SQL Server™ as in Progress.

Table 2–4 provides data source specific comparisons.

Table 2–4: Progress and Data Source Locking 
Progress
Data Source
NO–LOCK
Can support the NO–LOCK option in a manner consistent with Progress when transaction isolation level is set to read uncommitted.
SHARE–LOCK
May support shared locks at the table, page, and record level. However, the scope and duration of Progress vs. SQL Server™ shared locks may differ depending on how data source cursors behave at a transaction boundary and how isolation levels are set. The repeatable read isolation level emulates Progress SHARE-LOCK behavior most closely. For more information, see your SQL Server™ documentation.
EXCLUSIVE–LOCK
Can support the EXCLUSIVE-LOCK option in a manner consistent with Progress using any available isolation level. However, the SQL Server™ optimizer might produce locks at either the table, page, and/or the record level.

The Merant drivers provide for transaction isolation levels. In a multi-user configuration, you can isolate users from each other in your data source by setting the isolation level. In your Progress schema holder, use the –Dsrv TXN_ISOLATION,n connection parameter (where n = 1, 2, 4, or 8) to set the isolation level in ODBC. See the Microsoft ODBC Programmer’s Reference and the SQL Server™ documentation for more information.

NOTE: SQL Server™ might use page-level or table-level locking rather than record-level locking, if its optimizer determines this is the best choice. This can affect data access when two or more users attempt to read or update different records that are on the same page. See your SQL Server™ documentation for details.

Table 2–5: N Values in the –Dsrv Parameter
Value
Meaning
1
Read uncommitted
2
Read committed
4
Repeatable read
8
Serializable

Table 2–5 shows the possible –Dsrv TXN_ISOLATION,n values with the respective meaning.


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095