I use Grails' GORM for datastore (underlining db is HSQLDB). When I have a multi-thread program that writes object to db (not same row, but same table), sometimes, a few threads will never return. The last log entries for that thread show the following:
2009-10-22 10:54:09,406 [17502052@qtp1-0] DEBUG algorithm.AbstractConcurrentReadCache - get called (key=gr_lic_line.org.hibernate.cache.UpdateTimestampsCache) 2009-10-22 10:54:09,406 [17502052@qtp1-0] DEBUG algorithm.AbstractConcurrentReadCache - persistStore called (key=gr_lic_line.org.hibernate.cache.UpdateTimestampsCache) 2009-10-22 10:54:09,406 [17502052@qtp1-0] DEBUG algorithm.AbstractConcurrentReadCache - get called (key=gr_count_info.org.hibernate.cache.UpdateTimestampsCache) 2009-10-22 10:54:09,406 [17502052@qtp1-0] DEBUG algorithm.AbstractConcurrentReadCache - persistStore called (key=gr_count_info.org.hibernate.cache.UpdateTimestampsCache) 2009-10-22 10:54:09,406 [17502052@qtp1-0] DEBUG algorithm.AbstractConcurrentReadCache - get called (key=gr_expiry_info.org.hibernate.cache.UpdateTimestampsCache) 2009-10-22 10:54:09,406 [17502052@qtp1-0] DEBUG algorithm.AbstractConcurrentReadCache - persistStore called (key=gr_expiry_info.org.hibernate.cache.UpdateTimestampsCache)
It seems UpdateTimestampsCache is blocked somehow. Has anyone encountered this problem before? Any suggestion on how to solve this problem?
Appreciate your help,
Jane Jin
|