The Microsoft OLEDB Provider for AS/400 and VSAM (SNAOLEDB) does not support pessimistic locking.
In the Microsoft SNA SDK documentation under the "ADO Recordset Object in the OLE DB Provider for AS/400 and VSAM" topic, it is mentioned under
LockType that SNAOLEDB supports all four lock types. Namely
adLockReadOnly,
adLockOptimistic,
adLockPessimistic, and
adLockBatchOptimistic. The preceding statement is not true and SNAOLEDB does not currently support
adLockPessimistic from an ADO recordset object.
The ADO Client side cursor does not support "pessimistic" locking. ADO server side cursor support "pessimistic" locking if the corresponding provider supports this property. SNAOLEDB does not support "pessimistic" locking. If an unsupported value is set, then no error occurs and the closest supported LockType is used instead. If from an ADO program you set the
LockType property to
adLockPessimistic, when you open an updateable recordset with server side cursor it automatically maps to either
adLockOptimistic or
adLockBatchOptimistic.
Microsoft has confirmed this to be a problem in the Microsoft SNA Server version 4.0 Service Pack 2 (SP2) and Service Pack 3 (SP3) SDK documentation.
The OLEDB Provider for AS/400 and VSAM (SNAOLEDB) comes with SNA Server/Client version 4.0 SP2 or SP3. It uses the DDM RLIO protocol to provide OLEDB consumers with access to VSAM and AS/400 record-level data. This provider complies with Level 4 of the IBM Distributed Data Management (DDM) architecture and the OLE DB architecture. It uses SNA Server, the reliable platform for host integration as the networking bridge between the SNA host and the Windows NT operating systems.
The Microsoft OLE DB Provider for AS/400 and VSAM supports the following features:
- Set attributes and a record description of a host file (column information).
- Position to the beginning record or the ending record in a file.
- Navigate to the previous or next record in a file.
- Seek to a record based on an index.
- Lock records.
- Change records in a file.
- Insert new records and delete records in a file.
- Preserve file and record attributes.
SNAOLEDB does not support "pessimistic" locking.
For more information, please refer to the following article in the Microsoft Knowledge Base:
190625Â
(http://kbalertz.com/Feedback.aspx?kbNumber=190625/EN-US/
)
FIX: ADO Client Cursors Report LockType = adLockPessimistic
SNA SDK Documentation