TODESKING
技術ブログ

H2 Database、マルチスレッドでアクセスするとLock Timeoutが頻発する件の解決法について

h2 1.3.176で確認。

jdbc:h2:file:....でローカルのDBを開いて、マルチスレッドでクエリ発行してるとテーブルのlock timeoutでエラーになる。

1
Caused by: org.h2.jdbc.JdbcSQLException: Timeout trying to lock table "USER";

みたいなやつ。

同時アクセスを相当制限しても低確率で発生するし、タイムアウト長くしても発生するし、何らかのバグがある気がする……。

接続時のjdbc文字列に、MVCC=TRUEオプションを指定したら解決しました。

http://stackoverflow.com/questions/4162557/timeout-error-trying-to-lock-table-in-h2

Comments