First off, cool project.

When running the database in process we are getting explicit
System.gc() 's about every 1 - 2 hours. These GCs are taking 1 - 6
seconds even when the application is idle.
I understand the cause because of:
--
Memory mapped files: the system property h2.nioCleanerHack is now
disabled by default because it was not always working as expected. Now
System.gc() is used in a loop until the buffer is garbage collected.
This of course is also not a nice solution, but the only one known to
work. See also http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4724038
--

We have worked around this by adding the DisableExplicitGC JVM option
for now.   We can also run the DB as an external process using the TCP
JDBC driver.

We are running H2 1.2.147 using Java 1.6.24 under Red Had Linux.

My questions:

1.  Will using DisableExplicitGC cause any issues with the DB?  I am
assuming the normal GC's will cleanup the MemoryMapped handles
correctly, or is this a bad assumption?

2.  Are there other work arounds that allow use of the inprocess
database but reduce the System.gc()'s?

3.  Could this issue have been addressed in 1.6?

Thanks

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to h2-database@googlegroups.com.
To unsubscribe from this group, send email to 
h2-database+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.

Reply via email to