openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick Linskey (JIRA)" <>
Subject [jira] Commented: (OPENJPA-182) db2 update lock syntax WITH <isolation> USE AND KEEP UPDATE LOCKS
Date Thu, 05 Apr 2007 16:35:32 GMT


Patrick Linskey commented on OPENJPA-182:

> > Hopefully, this will be useful for applications where there are "hot" tables 
> > that require pessimistic locking even though the rest of the application 
> > does better with optimistic.
> That's what our lock levels and lock APIs are for. I'm still not clear on what this is

> adding to the mix for most DBs.

Not really -- the lock levels allow the user to configure how locking should happen, not what
the isolation level should be for the locks.

I don't know about what levels of support non-DB2 databases have for per-query isolation level
configuration. Does anyone have any experience with this in other databases?

Oh, and regardless, we should change the base DBDictionary to throw an exception if this FetchPlan
setting is set but not serviceable.

One thing that we should test: I'm not convinced that the lock level override in the DB2Dictionary
code is necessary. It's possible that the LockManager will already take into account the current
JDBCFetchConfiguration's lock level settings when specifying the forUpdate setting for the
toSelect() clause. Some test cases will make it easy to figure out the answer to this question.

> db2 update lock syntax  WITH <isolation> USE AND KEEP UPDATE LOCKS
> ------------------------------------------------------------------
>                 Key: OPENJPA-182
>                 URL:
>             Project: OpenJPA
>          Issue Type: New Feature
>          Components: jdbc
>         Environment: db2 database driver for zOS, AS400, Unix, Windows, Linux
>            Reporter: David Wisneski
>         Assigned To: David Wisneski
>         Attachments: OPENJPA-182.patch, openJPA182.patch
> A while back we changed the syntax of update locking from FOR UPDATE OF  to  WITH RS
USE AND KEEP UPDATE LOCKS.   Additional changes are required because 
> 1.  if isolation=serializable is configured, then the syntax should be  WITH RR USE AND
> 2.  when using DB2/400 on iSeries machines, the syntax is WITH RS USE AND KEEP EXCLUSIVE
LOCKS  or WITH RR USE AND KEEP EXCLUSIVE LOCKS because DB2/400 only supports read or exclusive
> 3.  DB2 supports both a FETCH FIRST  ROWS and update LOCKS clauses.
> So we change supportsLockingWithSelectRange = true in the AbstractDB2Dictionary class
and change the DB2Dictionary to append the correct LOCKS syntax depending on vendor, release
and isolation level.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message