On Jun 1, 2012, at 7:44 PM, Steve Ebersole wrote: > > On Fri 01 Jun 2012 05:27:12 AM CDT, Strong Liu wrote: >> Hi there, >> >> I'm working on this >> org.hibernate.ejb.test.lock.LockTest#testFindWithPessimisticWriteLockTimeoutException >> test, it failed on lots of DBs >> >> for now, I found: >> >> sql server : supports nowait, but not other lock timeout value >> DB2 : doesn't support either >> sybase: doesn't support either >> >> by "doesn't support" I mean, can't set this timeout from sql statement >> level, but they do support set it as a DB global config. > > Sybase at least supports it as a connection-level setting as well. Do the > rest? The idea being that we could set and reset that connection setting as > the means to specify lock timeout. Practically though that means they would > also have to expose a way to read the current setting value so that we knew > what to reset to.
does this useful? when using connection pool or datasource, there is not a way to set the connection level settings for each query, is it? > >> >> so, I'm wondering if we could choose this way: >> >> 1. if DB supports both, then good >> 2. if DB supports nowait only, and lock timeout is set to nowait, then good >> 2.1 if lock timeout is set to 5 milliseconds, for example, then we >> setQueryTimeout(1) // (locktimeout +500)/1000+1 > > I think with your 2.1 we just need to be careful when the user has specified > a query timeout already. > correct >> 3. if DB doesn't supports either, then same as 2.1, use >> java.sql.Statement#setQueryTimeout > > Set to what? Just some really low number? (lock timeout + 500) / 1000 + 1 since 0 in timeout means no wait, but in setQueryTimeout(), it means no limits > > >> does this acceptable? or we just ignore lock timeout if the underlying Db >> doesn't support it? > > The only possible outcomes if we cannot apply the requested lock timeout in > any manner is to (a) error or (b) ignore. Ignoring makes lock timeout more > of a hint than a requirement. Thats the fundamental question we need to > answer here. Don't know the answer, just re-stating the question. it is a hint as defined in JPA spec, so if we choose this way, I would suggest (b) > > -- > st...@hibernate.org > http://hibernate.org ------------------------- Best Regards, Strong Liu <stliu at hibernate.org> http://about.me/stliu/bio _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev