![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Our infrastructure consists of ABF applications which use pessimistic concurrency by means of table locking etc In the attempt of upgrading those applications some colleagues have opted for Openroad which makes the transition much easier but they reuse the same logic. I have opted for .NET and a complete redesign and what puzzles me is if in the same environment can abf/openroad applications which employ pessimistic concurrency co-exist with the disconnected model of ADO.net. I could, but want to avoid using ado.net with pessimistic concurrency. Most clients use old Ingres versions like II 2.0 or 2.6 and I don't know if there will be unpleasant surprises or problems by trying to use the .net provider on them plus I guess that will I have to built a bridge between the provider and ingres net vnode What is the group's opinion on it? thanks in advance |
#3
| |||
| |||
|
#4
| |||
| |||
|
#5
| |||
| |||
|
|
Judging by Roy's reply I suspect that neither of you are talking about logical / application level locking. |
#6
| |||
| |||
|
|
If I understand it right, Microsoft's "optimistic concurrency" control relies on read committed isolation and provides a way to detect (but not recover from) unrepeatable reads. I am pretty sure it doesn't commit prematurely when doing updates. The default isolation level is read committed and it handles updates |
#7
| |||
| |||
|
|
If I understand it right, Microsoft's "optimistic concurrency" control relies on read committed isolation and provides a way to detect (but not recover from) unrepeatable reads. I am pretty sure it doesn't commit prematurely when doing updates. The default isolation level is read committed and it handles updates by using events like RowUpdating which is fired for each row before the update is send to the server which allows you to check for violations of row based business rules and subsequently throw an exception. Furthermore for each row that does not get updated hence the optimistic concurrency is violated, it throws a DBConcurrencyException |
#8
| |||
| |||
|
|
nikosv wrote: If I understand it right, Microsoft's "optimistic concurrency" control relies on read committed isolation and provides a way to detect (but not recover from) unrepeatable reads. *I am pretty sure it doesn't commit prematurely when doing updates. The default isolation level is read committed and it handles updates by using events like RowUpdating which is fired for each row before the update is send to the server which allows you to check for violations of row based business rules and subsequently throw an exception. Furthermore for each row that does not get updated hence the optimistic concurrency is violated, it throws a DBConcurrencyException [OT] Just to be clear, the above is all client-side. *The server doesn't send any events or throw exceptions. *It just receives an UPDATE from the client WHERE the timestamp is T, and responds with "N rows affected". *If N is not the intended value, the client deals with it. * --jkl |
![]() |
| Thread Tools | |
| Display Modes | |
| |